Now that the faster make backend is enabled by default avoiding
cross-jar.mn file conflicts, and now that individual files can't
overlap with wildcards in the same jar.mn files, which were two
main things that the "+" prefix was used for (apart from
cargo-culting), the "+" prefixes in the tree are not necessary
anymore.
Turns out the claim in bug 1234439 that the FasterMake backend knows
about all the chrome manifest entries is wrong, and there's still one
that is added "manually" with buildlist.py, and during mach build
faster, that can happen before or after the corresponding chrome
manifests are written out by install manifest processing.
While the real fix here would be to make the build system totally
aware of those "manifest interfaces.manifest" entries, for now, it's
simpler to add dependencies to work around the race condition.
generate_symbols_file only supports the global defines, and completely
ignores DEFINES from the same moz.build the SYMBOLS_FILE is defined.
This fixes this misfeature.
The result of running this backend is a json file containing an array with 3 elements:
a map from resource:// and chrome:// url prefixes to corresponding objdir directories,
a map of overrides, and a map from objdir files to srcdir files (with a flag for whether
the file was preprocessed) for js file in FinalTargetFiles. A subsequent commit implements
the procedure to find an replace based on the url mapping, subsistute based on overrides,
and find sourcedir files based on objdir files.
This commit makes CycleCollectedJSRuntime install a nursery collection callback
which traces nursery collections with a new `mozilla::TimelineMarker` subclass.
This commit adds the `js::gcstats::Statistics::{begin,end}NurseryCollection`
methods which calls the nursery collection callback, if present, and
additionally handles counting minor GCs (which used to be inline in
js::Nursery::collect).
This commit adds the relatively boring plumbing needed to expose methods to set
callbacks that get fired on nursery collection start and end, as well as storing
said callbacks internally.
Experience shows that we do not have enough profiler labels to make
BHR hang reports meaningful. This patch adds enough labels to let us
exploit hang reports matching the 25 topmost chrome hangs.
Head- and tail entries in manifest files are not mandatory on
local/desktop xpcshell tests, and they should not be on remote/B2G either.
This change makes remotexpcshelltests and runxpcshelltests agree on how
to get head- and tail files.
This patch avoids a crash when querying program info when gl_InstanceID is used.
ANGLE will return -1 from GetAttribLocation("gl_InstanceID") (this location is
hardcoded in the ANGLE source) but still includes gl_InstanceID in it's attribute list.
I'd like to make `PushService.init` fallible, but it's not obvious how
to act on failure. This patch at least allows each service to block
_startService until service-specific work initialization is complete.