Development branch of Chromium for Wayland
Clone or download
Pull request Compare This branch is 87168 commits ahead of mirror:master.
msisov Merge pull request #518 from msisov/ozone-wayland-dev
fixup! Implement filter to run browser tests with Linux/Ozone
Latest commit 21f4a33 Jan 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android_webview AW: Trick to Bill constant for targetsAtLeastQ Jan 11, 2019
apps [Extensions] Remove most references to LazyBackgroundTaskQueue. Jan 11, 2019
ash Reland "Add Skip Ad button to Picture-in-Picture window." Jan 14, 2019
base Reenable nocompile tests after clang roll. Jan 14, 2019
build Weston is added to the build dependencies, and is now run by xvfb.py. Jan 15, 2019
build_overrides Tell shaderc where to find SPIRV-Cross. Dec 14, 2018
cc cc: Cleanup callback types (part 1). Jan 11, 2019
chrome Add inital support for a tab drag window. Jan 15, 2019
chrome_elf Remove arraysize. Jan 10, 2019
chromecast Reland "Add Skip Ad button to Picture-in-Picture window." Jan 14, 2019
chromeos Add PluginVmLicenseKey device policy Jan 14, 2019
cloud_print Add owners for xtb files Dec 18, 2018
components Add PluginVmLicenseKey device policy Jan 14, 2019
content Include WebRTC's scoped_refptr from the new location. Jan 14, 2019
courgette Remove include of base/containers/hash_tables.h except base/ Jan 8, 2019
crypto Remove no_size_t_to_int_warning in //crypto Jan 2, 2019
dbus Use base::size rather than arraysize in dbus/. Dec 25, 2018
device Make //chromeos/dbus a separate component. (Take 2) Jan 11, 2019
docs VSCode: add documentation to setup Git on Windows. Jan 14, 2019
extensions Get autolock delay from policy Jan 14, 2019
gin v8: Remove obsolete V8 extras flag Jan 10, 2019
google_apis Fix ChromeOSOAuth2TokenServiceDelegate invariants Jan 10, 2019
google_update Reland "Update Google Update COM interface definitions in google_upda… Mar 1, 2018
gpu gpu: Tune PaintCache budget for low-end devices. Jan 14, 2019
headless Force enable HTML Imports for HeadlessProtocolBrowserTest temporally. Jan 11, 2019
infra remove Goma GCE Staging builders Jan 11, 2019
ios [MDC roll] Roll Material Components to 556fe19d5ac744bf6cddce01b96779… Jan 13, 2019
ipc [doc] Extend legacy IPC to Mojo conversion guide Jan 11, 2019
jingle Remove rtc::SocketAddress from PreXmppAuth::StartPreXmppAuth. Jan 10, 2019
mash [SM] Generate C++ sources for all manifest targets Dec 26, 2018
media [ozone/wayland]: fix vaapi build. Jan 15, 2019
mojo [Mojo Lite] Fix Map for stringable kinds and add Closure Compiler test. Jan 14, 2019
native_client_sdk Remove PPB_Compositor Jan 10, 2019
net Roll Fuchsia SDK from 497d151e24e6 to 3b3374c29e5c Jan 13, 2019
pdf v8: Remove obsolete V8 extras flag Jan 10, 2019
ppapi Remove PPB_Compositor Jan 10, 2019
printing Print Preview: Add separate histogram bucket for print to Google Drive Dec 21, 2018
remoting Include WebRTC's scoped_refptr from the new location. Jan 14, 2019
rlz Make //chromeos/dbus a separate component. (Take 2) Jan 11, 2019
sandbox android: allow setsockopt with SO_PASSCRED Jan 9, 2019
services Implement remaining method from the AccountsMutator's API: AddOrUpdat… Jan 14, 2019
skia add flag for font-fields Jan 11, 2019
sql sql: Switch from custom macro to COMPONENT_EXPORT. Dec 27, 2018
storage Integrate RewriteDB() with service workers Jan 9, 2019
styleguide Add "Comment style" section to "C++ Dos and Don'ts" Jan 7, 2019
testing fixup! Implement filter to run browser tests with Linux/Ozone Jan 15, 2019
third_party Include WebRTC's scoped_refptr from the new location. Jan 14, 2019
tools Add PluginVmLicenseKey device policy Jan 14, 2019
ui [DoNotCarryForward] Fix ime linux export include. Jan 15, 2019
url Rename buildflag_headers for consistency Jan 10, 2019
webrunner Roll Fuchsia SDK from 497d151e24e6 to 3b3374c29e5c Jan 13, 2019
.clang-format Make .clang-format files smaller after clang-format roll Mar 15, 2017
.eslintrc.js Unify eslint brace-style/curly rules Jan 8, 2019
.git-blame-ignore-revs Add spelling-fix commits section to .git-blame-ignore-revs Jun 18, 2018
.gitattributes Update Git EOL policies for source files Jul 9, 2018
.gitignore Unit test to cross check serialized data against complete data. Jan 11, 2019
.gn Remove glslang-angle and spirv-tools-angle from .gitignore and .gn Dec 5, 2018
.vpython [flakiness_cli] Run using vpython Nov 2, 2018
AUTHORS v8: Remove obsolete V8 extras flag Jan 10, 2019
BUILD.gn [Mojo Lite] Fix Map for stringable kinds and add Closure Compiler test. Jan 14, 2019
CODE_OF_CONDUCT.md Updated Code of Conduct. Dec 1, 2017
DEPS Roll src-internal 52d8780f8391..6cab2d186797 (3 commits) Jan 14, 2019
ENG_REVIEW_OWNERS Remove brettw from owners files. Jan 29, 2018
LICENSE Happy (belated) New Year, 2015 edition! Jul 27, 2015
LICENSE.chromium_os Fix third-party license information for a number of projects Jul 27, 2012
OWNERS GN: Add "python_library" template for group()s that use ".pydeps" May 18, 2018
PRESUBMIT.py Remove arraysize. Jan 10, 2019
PRESUBMIT_test.py Add presubmit coverage for C++ service manifests Dec 21, 2018
PRESUBMIT_test_mocks.py Check parameter types in FilterSourceFile() mock Jul 31, 2018
README.md Add a README with newest development activities. Jan 15, 2019
WATCHLISTS Cleanup memory coordinator leftovers Jan 8, 2019
codereview.settings Clean up a stale line in codereview.settings. Sep 18, 2017

README.md

Chromium for Wayland

The goal of this project is to enable Chromium browser to run on Wayland. Note that contrary to 01.org/ozone-wayland, the idea is to keep it very close to upstream developments as well as aligned on Google's own plans. In particular, this fork is rebased against Chromium ToT each week and patches are upstreamed as soon as possible.

The implementation also relies on actively developed Chromium technologies:

Notice that the effort done here is also useful to run Chromium with Ozone on Linux Desktop for X11/Wayland.

What is Chromium browser?

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the Web.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

Building Chromium

General information is provided by the upstream documentation for Chromium on Linux and Ozone. Here is the summary of commands to build and run Chrome for Wayland:

gn args out/Ozone --args="use_ozone=true use_xkbcommon=true use_system_minigbm=true"
ninja -C out/Ozone chrome
./out/Ozone/chrome --ozone-platform=wayland

Please note that Ozone/Wayland also supports GpuMemoryBuffers and in order to enable them, the --enable-native-gpu-buffers must be passed.

Note that GN defaults to debug builds, which naturally take longer to finish and produce slower binaries at runtime. The 'is_debug=false' GN arguments disables it.

Also note that some touch oriented Web pages like Google Maps, work better when the Touch Event API is explicitly enabled
in chrome://flags or a command line argument --touch-events=enabled is passed.

It is also possible to enable proprietary codecs (so that mp4, h264 medias play) with the following GN args: 'proprietary_codecs=true ffmpeg_branding=\"Chrome\"'.

By default, the headless, x11 and wayland Ozone backends are compiled and X11 is selected when --ozone-platform is not specified. Please refer to the GN Configuration notes for details on how to change that behavior.

Running Tests

To be added.

Rebase Strategy

The fork is rebased every week against Chromium ToT. The goal is to be as close as possible to the latest code, which is constantly receiving performance and stability fixes.

Here is the current process:

  • Every week, a member of the Igalia Chromium team takes the rebase shift.

  • Commits that are complementary of each other, receive a "fixup!" prefix on the commit title, and keep the rest of original commit title unchanged.

For example:

$ git log --oneline
commit 1
commit 2
commit 3
fixup! commit 1
fixup! commit 2
commit 4
fixup! commit 2
(..)

This allows an easy identification of "fixup" commits, which should be squashed into their original counterpart commit as part of the next rebase cycle. That way we keep our Git history clean, and commits as atomic as possible, for when upstreaming.

Git has an optimized flow for this as well.

  • We always keep the 'ozone-wayland-dev' branch as our primarily development branch.

This means that force pushes will happen. So every time one of the team members rebases our branch, the developer should first back up the existing ozone-wayland-dev browser, with the following naming: ozone-wayland-dev-rXXXX, where XXXX is the respective Chromium baseline of the branch.

  • Branch acceptance criteria

Make sure that the patches meet the coding style criteria.