This branch contains modifications to the mozilla:release branch for compiling the Record Replay gecko based browser.
MacOS
If you are using Apple Silicone you should start by making sure you have a Rosetta terminal:
Then you should basically be able to follow the rest of the steps normally (with a couple of caveats called out down below - read carefully).
cp mozconfig.macsample mozconfig
MacOSX11.1.sdk.tar.xz
from https://github.com/phracker/MacOSX-SDKs/releasesMacOSX11.1.sdk.tar.xz
in the repo root to create a MacOSX11.1.sdk
directorynode build
RUSTC_BOOTSTRAP=qcms node build
to build successfully../mach run
MacOS with Apple Silicone
Linux
cp mozconfig.linuxsample mozconfig
./mach bootstrap
and select (2) Firefox Desktopnode build
./mach run
If you change your PATH to point to a different version of say Python or Rust you need to rerun ./mach bootstrap
to get the build system to pick up the change.
If you are seeing this error:
ERROR!!!!!! Could not find artifacts for a toolchain build named macosx64-dump-syms
Try cloning the latest mozilla-central (context: https://discord.com/channels/779097926135054346/801228428115312671/938567563644915713):
brew install hg
)cd .. && hg clone https://hg.mozilla.org/mozilla-central/
) ./mach bootstrap
within it and select (2) Firefox Desktop
when prompted. Come back to this repo and try building again../mach bootstrap
fails with the above error, the build step might still work, so you can also try building without necessarily getting ./mach bootstrap
to complete everything successfully.You can also find some conversation of these steps at https://github.com/RecordReplay/gecko-dev/issues/745
release
branch, pull from upstream release
branch:git checkout release
git pull https://github.com/mozilla/gecko-dev.git release
release
branch.git checkout webreplay-release
git checkout -b replay-merge
git merge release
replay
and not firefox
.webreplay-release
branch.git checkout webreplay-release
git merge replay-merge
git push
CurrentFirefoxVersion()
in toolkit/recordreplay/ProcessRecordReplay.cpp
noupdate
file for the build in S3, then launch the browser, open "About Replay" and see if it updates.Tips for debugging:
app.update.log
browser config when running, and then check console output.*** AUS:SVC readStatusFile - status: failed: 23, path: /path/to/update.status
, this is produced by the C++ updater which can be found in UpdateThreadFunc
in updater.cpp
. Building a local browser with instrumentation is likely needed to investigate.Speeding up oh-my-zsh
git config --add oh-my-zsh.hide-status 1
git config --add oh-my-zsh.hide-dirty 1