Add a /renderdoc-capture debug-server endpoint plus a wrshell `rd`
command and "Capture (RenderDoc)" GUI button. To produce a self-contained
capture, it clears the resource caches and forces a full invalidated
rebuild, so the captured frame re-rasterizes all picture-cache tiles,
glyphs and images in-frame (a single-frame RenderDoc capture can't replay
WebRender's persistent caches populated in earlier frames).
Includes a `mach wrshell` launcher (preloads librenderdoc, disables the
GPU process, starts wrshell) and a RenderDoc bootstrap script. Gated
behind --enable-webrender-debugger.
Differential Revision: https://phabricator.services.mozilla.com/D305080
Moves the strings for the "Homepage" and "Firefox Home" sections of
about:settings#home into newtab.ftl, so they ship in the newtab XPI
alongside AboutPreferences.sys.mjs.
Strings shared with the legacy settings renderer get "-srd" suffix
copies in newtab.ftl with the redesigned code rewired, so the two files
don't define the same IDs.
Differential Revision: https://phabricator.services.mozilla.com/D301718
Add a /renderdoc-capture debug-server endpoint plus a wrshell `rd`
command and "Capture (RenderDoc)" GUI button. To produce a self-contained
capture, it clears the resource caches and forces a full invalidated
rebuild, so the captured frame re-rasterizes all picture-cache tiles,
glyphs and images in-frame (a single-frame RenderDoc capture can't replay
WebRender's persistent caches populated in earlier frames).
Includes a `mach wrshell` launcher (preloads librenderdoc, disables the
GPU process, starts wrshell) and a RenderDoc bootstrap script. Gated
behind --enable-webrender-debugger.
Differential Revision: https://phabricator.services.mozilla.com/D305080
Moves the strings for the "Homepage" and "Firefox Home" sections of
about:settings#home into newtab.ftl, so they ship in the newtab XPI
alongside AboutPreferences.sys.mjs.
Strings shared with the legacy settings renderer get "-srd" suffix
copies in newtab.ftl with the redesigned code rewired, so the two files
don't define the same IDs.
Differential Revision: https://phabricator.services.mozilla.com/D301718
Some GN actions pass large lists of input files through a response file
rather than directly on the command line. We need to support this in
order to build ANGLE with moz.build files generated by gn_processor.py.
The only case we currently need to support is ANGLE's
angle_program_version_id action. The response_file_contents field in
this case is a list of relative paths from the GN gen dir to files in
the source tree, but the action is executed at build time with a cwd in
the objdir. At vendor time, gn_processor.py cannot know the eventual
source directory, object directory, or relative path between the two.
To handle this, gn_processor.py encodes those paths into a vendored
.rsp.in sidecar file using mozbuild-style path prefixes. At build time,
a new write_path_list.py action converts the .rsp.in file into a real
response file in the objdir, resolving those prefixes to absolute paths
and shell-quoting them as required by GN's response file format. A
second GeneratedFile invokes the original action via the existing
file_generate_wrapper.py entry point, substituting the
{{response_file_name}} placeholder in the action's args with the path of
the generated response file.
Since response file contents can vary between build configurations,
the .rsp.in filename includes a hash of its contents so that each
distinct variant has a unique name and all can coexist in-tree. Where
the .rsp.in differs between configurations, the moz.build writer emits
the GeneratedFile statements that generate the real response file
conditionally.
The `GeneratedFiles` context attr is now stored as a list so that a GN
action can produce both the response file and the action output. The
stale generated-file cleanup is also updated to retain these extra
sidecar files while still removing stale generated outputs.
Additionally, we must make the raw project.json path rewriting more
specific. The previous broad target_dir replacements could modify paths
in response_file_contents and make them point at files that do not
exist.
Note that a response file can technically contain arbitrary data, but
this currently only supports the case where it is a list of paths. If we
need to support arbitrary response file contents in the future then this
will need to be adapted.
Differential Revision: https://phabricator.services.mozilla.com/D300873
I doubt that this ever worked. At the time this code was written, `jj` 0.28.2 was the latest release. The [0.28.2 docs for `jj restore`] do not include a `-r` argument.
Comparing to the `git.py` sibling file, it seems the intent may have been to use `-f/--from`, i.e., "please discard anything in the current change at `$path`". Restoring the current change's contents to the parent change is the default behavior with no options, so all we need to do is provide the path to be cleared as a positional argument to narrow as desired.
Add an end-of-options sentinel (`--`) for good measure, to guard against file names with a leading `-`.
[0.28.2 docs for `jj restore`]: https://docs.jj-vcs.dev/v0.28.2/cli-reference/#jj-restore
Differential Revision: https://phabricator.services.mozilla.com/D292267
I doubt that this ever worked. At the time this code was written, `jj` 0.28.2 was the latest release. The [0.28.2 docs for `jj restore`] do not include a `-r` argument.
Comparing to the `git.py` sibling file, it seems the intent may have been to use `-f/--from`, i.e., "please discard anything in the current change at `$path`". Restoring the current change's contents to the parent change is the default behavior with no options, so all we need to do is provide the path to be cleared as a positional argument to narrow as desired.
Add an end-of-options sentinel (`--`) for good measure, to guard against file names with a leading `-`.
[0.28.2 docs for `jj restore`]: https://docs.jj-vcs.dev/v0.28.2/cli-reference/#jj-restore
Differential Revision: https://phabricator.services.mozilla.com/D292267
When running ./mach bootstrap, profile symbolication dependencies samply
and profiler-node-tools should be installed locally to the .mozbuild
folder from a level-3 CI branch (integration, release).
Differential Revision: https://phabricator.services.mozilla.com/D291837
Adds a "Firefox logo" toggle to the Firefox Home section in about:preferences#home,
letting users hide the logo on New Tab.
Differential Revision: https://phabricator.services.mozilla.com/D304314
Produce errors for
- Migrated strings that have differences beyond capitalization changes.
- Strings that are included in the recipe but don't appear in the migrated content.
- Attempts to migrate a string to the same ID in the same file.
Produce warnings/info for
- Strings missing from the migrated file, but not declared in the migration.
- Capitalization only differences.
Differential Revision: https://phabricator.services.mozilla.com/D303689
Linker inputs referenced only through `LDFLAGS` are
invisible to the build backend, so make can run the
link before those files exist. Add `EXTRA_LINK_DEPS`
to declare those inputs explicitly, and use it for
the macOS updater plist files.
Differential Revision: https://phabricator.services.mozilla.com/D302162
Some `GeneratedFile` scripts open additional files at runtime
(e.g. #include @TOPOBJDIR@/...), so backends need a way to
declare those as prerequisites without passing them as
positional args.
Also normalizes the `_target_per_file` key to an absolute
path so `GENERATED_FILES` dependencies that cross directory
boundaries actually resolve.
Differential Revision: https://phabricator.services.mozilla.com/D302161