This is a repository containing a snapshot of the built Firefox Desktop newtab
code at hg
revision f6630453da0e
. This was a revision that landed soon after
the Firefox 138 merge to beta, and was the first change to the code under
browser/extensions/newtab
. This bug tracked that landing. That change is simply an increase of the New Tab built-in addon
version number.
This repository exists for one reason: to help us perform a test in May of
2025 during the Firefox 138 release cycle, where we will update the built-in
New Tab to using the code from this repository out-of-band. Since this
repository only contains a single change (the increased version), there should
be no discernable user-facing difference when we perform this update, save for
the version increase (viewable in about:support
).
This experiment will prove that we can successfully deploy updates to the New Tab code base using this mechanism.
Notably, however, this repository will only be used during the first experiment.
The release engineering team is working on changes that will allow us to
ship directly from mozilla-central
, rather than requiring us to mirror the
code to GitHub.
So after the May 2025 train-hop experiment, we expect to archive this repository.
It is important that we ensure that what is deployed using this mechanism is what we intend to deploy, and that it is what was reviewed. The following is a set of instructions for verifying that this GitHub repository does indeed contain the same set of files for the newtab addon as the intended revision.
- Check out revision
f6630453da0ee648aba71f89dc2ccede5017295d
from mozilla-central (if you're usinggit
andgit-cinnabar
, this is revisiond0347cc9c18ea6903a8dddf6e46b3dc3ed34e129
, which you can verify usinggit cinnabar hg2git f6630453da0e
:
$ git cinnabar hg2git f6630453da0e
d0347cc9c18ea6903a8dddf6e46b3dc3ed34e129
$ git checkout d0347cc9c18ea6903a8dddf6e46b3dc3ed34e129
- Perform a clobber build. If you want to save time, use an artifact build.
$ ./mach clobber
$ ./mach build # This verification will work with an artifact build, if you want to save time.
- Verify that the built artifacts match the contents of the
extension
directory via SHA hashes
# Replace obj-artifact with whatever you use for your objdir directory
$ cd obj-artifact/dist/xpi-stage/newtab
$ find -L . -type f -print0 | sort -z | xargs -0 sha256sum | sha256sum
14182e307acc76f119bf10d7b98e1da236e0dc4545910b570db66ffab5610a02 -
# Now ensure this matches what is in this repository's `extension` directory.
$ cd ~/newtab-trainhop # or wherever you put your clone
$ cd extension
$ find -L . -type f -print0 | sort -z | xargs -0 sha256sum | sha256sum
14182e307acc76f119bf10d7b98e1da236e0dc4545910b570db66ffab5610a02 -
Both directories are expected to SHA to 14182e307acc76f119bf10d7b98e1da236e0dc4545910b570db66ffab5610a02
.
After doing an artifact build of the intended revision, rsync
was used to
clone the files (and follow symlinks) in the extension
folder:
$ rsync -avL obj-artifact/dist/xpi-stage/newtab/ ~/newtab-trainhop/extension/