Giter Club home page Giter Club logo

chromium's Introduction

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 via MUS on Linux Desktop for X11.

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.

The project's web site is https://www.chromium.org.

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 enable_package_mash_services=true use_xkbcommon=true is_debug=false"
ninja -C out/Ozone chrome
./out/Ozone/chrome --mus --ozone-platform=wayland

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

Most of the Chromium tests should pass although they are not regularly tested for now. One can run the MUS Demo as follows:

ninja -C out/Ozone mus_demo mash:all
./out/Ozone/mash --service=mus_demo --external-window-count=2

One can also run automated unit tests. For example to check the MUS demo and window server:

ninja -C out/Ozone mus_ws_unittests mus_demo_unittests
./out/Ozone/mus_demo_unittests
./out/Ozone/mus_ws_unittests

Note that --ozone-platform can be passed to all the programs above to select a specific Ozone backend.

Rebase Strategy

As mentioned above, the fork is rebased every week against Chromium ToT. The goal is to be as close as possible to the lastest Mus 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

compilation targets:

chrome mash:all  mus_ws_unittests  base_unittests services/ui/demo mus_*_unittests ozone_unittests mus_demo_unittests

... on LinuxOS and ChromeOS builds.

Pass mus_demo and mus_demo_unittests tests.

Run chrome --mash / --mus on the configurations above, and performance some sanity tests: basic mouse clicking / keyboard; basic navigation; multi window creation; etc.

chromium's People

Contributors

a1ph avatar agrieve avatar aslushnikov avatar chrishtr avatar danakj avatar danbeam avatar dgozman avatar dpranke avatar erikchen avatar fdoray avatar jbudorick avatar jeremyroman avatar krockot avatar leizleiz avatar nedn avatar nico avatar pavelfeldman avatar pkotwicz avatar progers avatar qyearsley avatar rdcronin avatar sdefresne avatar sgraham avatar sigbjornf avatar tfarina avatar tkent-google avatar wangxianzhu avatar xharaken avatar yosinch avatar zetafunction avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.