Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

QtWebEngine/Rebase on New Chromium

From Qt Wiki
Jump to navigation Jump to search

Qt WebEngine keeps its branch of Chromium in the src/3rdparty/chromium submodule.

The submodule is a flattened and trimmed version of chromium where all the submodules of Chromium have been imported into a single module, and many large parts we don't need have been removed to save overhead.

The qtwebengine-chromium submodule has multiple branches.

  • upstream-master is the pure snapshotted Chromum upstream
  • xx-based are patched branches of Chromium xx with our patches applied to it.

In tools/scripts are a few scripts meant to help with the rebasing.

Rebase on new patch release

When updating to a new patch release of Chromium.

  • Update tools/scripts/version_resolver.py with the new version
  • Run "tools/scripts/init-repository.py --baseline-upstream" this will create src/3rdparty_upstream directory with Chromium from the given version
  • Make sure src/3rdparty is checked out to 'upstream-master', and you have no files or changes there you want to preserve.
  • Run "tools/script/take-snapshot.py" this will copy a trimmed version of src/3rdparty_upstream to src/3rdparty
  • Stage all changes (new files and deleted files "git add -A") in src/3rdparty
  • Commit and push to upstream-master
  • Switch to latest xx-based branch
  • Call "git merge upstream-master" and push the merge change to gerrit.
  • Create commit in the main qtwebengine module where you include the update update version_resolver.py and the src/3rdparty SHA1 at the same time.

These steps can also be used if you need to use a new Chromium component that was previously trimmed away, or other files we trimmed away. Instead of changing version_resolver.py, you update take_snapshot.py so it includes the wanted files, but perform the same steps.

Cherry-picking patches

Rebase on new major version