Development branch of Chromium for Wayland
Switch branches/tags
Clone or download
Pull request Compare This branch is 64278 commits ahead of mirror:master.
msisov Merge pull request #499 from jkim-julie/ozone-wayland-dev-platformScr…

Ozone wayland dev platform screen x11
Latest commit 5ff151d Oct 19, 2018
Failed to load latest commit information.
android_webview [bundles] Add getter for whether build is a bundle, activate O split fix Oct 13, 2018
apps content: Replace uses of BrowserThread task posting with post_task.h API Sep 20, 2018
ash applist: Add fling to home launcher swipe to show/hide. Oct 13, 2018
base [bundles] Add getter for whether build is a bundle, activate O split fix Oct 13, 2018
blink Make run-webkit-tests and run_layout_tests not workable. Oct 3, 2018
build Roll Fuchsia SDK from 70f5fe6a9162 to 0369d2f34c95 Oct 13, 2018
build_overrides Roll SPIRV-Tools and add build_overrides/spirv_tools.gni Aug 7, 2018
cc BrowserControlsState updates CC and commits to Blink Oct 13, 2018
chrome Add inital support for a tab drag window. Oct 15, 2018
chrome_elf Fix one more -Wshorten-64-to-32 warning in chrome_elf Sep 8, 2018
chromecast Stop CMA backend when pause/seek/skipping Oct 12, 2018
chromeos Automated Commit: LKGM 11157.0.0 for chromeos. Oct 14, 2018
cloud_print win/32-bit: only copy pdbs if symbol_level > 0. Oct 13, 2018
components [DoNotCarryForward] Enable native gpu memory buffers support Oct 15, 2018
content BrowserControlsState updates CC and commits to Blink Oct 13, 2018
courgette win/32-bit: only copy pdbs if symbol_level > 0. Oct 13, 2018
crypto Move crypto/wincrypt_shim.h to remove build dependency on crypto Oct 5, 2018
dbus [TaskScheduler]: Use ScopedBlockingCall to mark blocking tasks. Sep 21, 2018
device Remove CR_DEFINE_STATIC_LOCAL. Oct 12, 2018
docs Remove the round-robin list for third-party additions Oct 12, 2018
extensions Rename "pattern" to "scope" in ServiceWorker code Oct 13, 2018
gin Revert "[gin] Allow posting non-nestable tasks through V8" Oct 11, 2018
google_apis Rename method in token service diagnostic observer for clarity Oct 12, 2018
google_update Reland "Update Google Update COM interface definitions in google_upda… Mar 1, 2018
gpu Refactor direct composition swap chain and visual logic Oct 13, 2018
headless Fix headless screenshot tests on hidpi MacOSX desktops Oct 12, 2018
infra cq: explicitly mark chromium_presubmit tryjob as not re-usable in CQ. Oct 12, 2018
ios [MDC roll] Roll Material Components to 3544e402994d4fe5100e0ae2cdb6a1… Oct 13, 2018
ipc [Extensions + Apps] Move the MediaGalleriesPermission to platform_apps Oct 9, 2018
jingle Migrate notifier::Login to NetworkConnectionTracker Oct 2, 2018
mash Migrate example & mock call-sites off QuitCurrent*Deprecated(). Sep 21, 2018
media Add mmap via libv4l to generic_v4l2_device Oct 15, 2018
mojo [mojo JS bindings] Emit MIN_VALUE and MAX_VALUE for enums Oct 12, 2018
native_client_sdk native_client_sdk: doc: fix macOS & Chrome OS naming Sep 11, 2018
net Remove channel ID migration from Chrome OS signin Oct 12, 2018
pdf Remove redundant pdfium_fuzzer dependency. Oct 13, 2018
ppapi Fix PepperTCPSocketMessageFilter crashes. Oct 10, 2018
printing Make JNI array helpers take JavaRef parameters. Oct 12, 2018
remoting Updating XTBs based on .GRDs from branch master Oct 12, 2018
rlz cros: Convert access point rlz with dynamic brand code Oct 11, 2018
sandbox Modify AllocAndCopyName to return smart pointer Oct 10, 2018
services Temporarily disable separate URLLoaderFactories for extensions. Oct 13, 2018
skia remove guard for DAA bug Oct 12, 2018
sql Adding a const to a static char array Oct 12, 2018
storage //storage code cleanup Oct 10, 2018
styleguide [docs] Update ES2015 features allowed in Chromium code Oct 14, 2018
testing Revert "Updated AllowedUILocales to handle preferred languages." Oct 13, 2018
third_party BrowserControlsState updates CC and commits to Blink Oct 13, 2018
tools Revert "Updated AllowedUILocales to handle preferred languages." Oct 13, 2018
ui Merge pull request #499 from jkim-julie/ozone-wayland-dev-platformScr… Oct 19, 2018
url Add support for precursor origin to Blink's SecurityOrigin. Oct 10, 2018
webrunner [fuchsia] Restore healthy browser shutdown by adding platform teardow… Oct 8, 2018
.clang-format Make .clang-format files smaller after clang-format roll Mar 15, 2017
.eslintrc.js MD Extensions: Convert all usages of .bind(this) to use ES6 arrow fun… Jul 27, 2017
.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 Add EDO lib for EG2 testing Oct 12, 2018
.gn Enable "gn check" on //third_party/webrtc. Sep 10, 2018
.vpython Add mock to //.vpython. Sep 21, 2018
AUTHORS [ServiceWorker] Add WPT tests to check request header for update Oct 12, 2018 Create a unit test for the zip archiver. Oct 12, 2018 Updated Code of Conduct. Dec 1, 2017
DEPS Roll src-internal 2a4881c3734b..c0e867da1e21 (1 commits) Oct 14, 2018
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 [iOS] Disallow include of deprecated server Oct 8, 2018 Fix _CheckNoDISABLETypoInTests when test file is deleted. Sep 25, 2018 Check parameter types in FilterSourceFile() mock Jul 31, 2018 Add a README with newest development activities. Oct 15, 2018
WATCHLISTS Change browsing_data watchlist to cover ui as well Oct 11, 2018
codereview.settings Clean up a stale line in codereview.settings. Sep 18, 2017

Chromium for Wayland

The goal of this project is to enable Chromium browser to run on Wayland. Note that contrary to, 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/

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.