- Get the version of crashpad that we're going to use.
libcc/src/third_party/crashpad/README.chromium
will have a lineRevision:
with a checksum- We need to check out the corresponding branch.
- Clone Google's crashpad (https://chromium.googlesource.com/crashpad/crashpad)
git clone https://chromium.googlesource.com/crashpad/crashpad
- Check out the branch with the revision checksum:
git checkout <revision checksum>
- Add electron's crashpad fork as a remote
git remote add electron https://github.com/electron/crashpad
- Check out a new branch for the update
git checkout -b electron-crashpad-vA.B.C.D
A.B.C.D
is the Chromium version found inlibcc/VERSION
and will be something like62.0.3202.94
-
Make a checklist of the Electron patches that need to be applied with
git log --oneline
-
For each patch:
- In
electron-crashpad-vA.B.C.D
, cherry-pick the patch's checksumgit cherry-pick <checksum>
- Resolve any conflicts
- Make sure it builds then add, commit, and push work to electron's crashpad fork
git push electron electron-crashpad-vA.B.C.D
- Update Electron to build the new crashpad:
cd vendor/crashpad
git fetch
git checkout electron-crashpad-v62.0.3202.94
- Regenerate Ninja files against both targets
- From Electron root's root, run
script/update.py
script/build.py -c D --target=crashpad_client
script/build.py -c D --target=crashpad_handler
- Both should build with no errors
- Push changes to submodule reference
- (From electron root)
git add vendor/crashpad
git push origin upgrade-to-chromium-62