Also, more directly go from StyleImageRendering to wr::ImageRendering.
* image-rendering: smooth the non-deprecated version of
OptimizeQuality, which maps to SamplingFilter::LINEAR /
wr::ImageRendering::Auto (which uses gl::LINEAR).
* image-rendering: pixelated maps to wr::ImageRendering::Pixelated /
SamplingFilter::POINT which is the same crisp-edges does.
Note that this uncovers that we were mapping image-rendering:
crisp-edges to wr::ImageRendering::Pixelated.
I'm going to preserve behavior on this patch but we should consider
switching that to map to wr::ImageRendering::CrispEdges on a
follow-up (filed bug 1728831 for this).
Differential Revision: https://phabricator.services.mozilla.com/D124378
Depends on D124188
A few tests outside of the netmonitor also used tab.linkedBrowser.reload, let's migrate them at the same time.
Differential Revision: https://phabricator.services.mozilla.com/D124190
This is important to disable flags.testing for many reasons:
* it helps using the production code that is being used by end users. So we are closer to a real usage of our tools.
* it prevents enabling debug code which are leaking or are explicitely doing stuff that hit performance and might allocate more objects.
We especially want to disable redux's store history feature which record all the actions,
and leads to leak tons of objects.
Differential Revision: https://phabricator.services.mozilla.com/D123832
It was tracking the special sandbox we spawn for builtin-modules.js
as well as its internal sandbox used to fetch platform globals.
Differential Revision: https://phabricator.services.mozilla.com/D124174
Tweaked the recorded data a bit in order to record many values:
* objects being leaked with a known allocation site/original stack frame
* objects being leaked without any known allocation site
* memory being used in parent/content processes
Also build a framework to ease writing more allocation tests.
And document everything around this.
Differential Revision: https://phabricator.services.mozilla.com/D123658
This is important to disable flags.testing for many reasons:
* it helps using the production code that is being used by end users. So we are closer to a real usage of our tools.
* it prevents enabling debug code which are leaking or are explicitely doing stuff that hit performance and might allocate more objects.
We especially want to disable redux's store history feature which record all the actions,
and leads to leak tons of objects.
Differential Revision: https://phabricator.services.mozilla.com/D123832
It was tracking the special sandbox we spawn for builtin-modules.js
as well as its internal sandbox used to fetch platform globals.
Differential Revision: https://phabricator.services.mozilla.com/D124174
Tweaked the recorded data a bit in order to record many values:
* objects being leaked with a known allocation site/original stack frame
* objects being leaked without any known allocation site
* memory being used in parent/content processes
Also build a framework to ease writing more allocation tests.
And document everything around this.
Differential Revision: https://phabricator.services.mozilla.com/D123658
Inspector fronts initialization is still pending while we navigate away to another top target.
Leading to various possible exception in protocol.js.
I'm adding a set of new explicit exception in order to help debugging all these cases.
Differential Revision: https://phabricator.services.mozilla.com/D123441
We weren't applying the preference to the parent process NetworkEventWatcher
because we were only trying to update this via the WebConsole actor.
In addition, this was introducing intermittent failures in browser_toolbox_frames_list.js
because of the pending request made to the console actor.
Doing only one unique request to NetworkEventParent helps reducing the number of requests and intermittents.
Differential Revision: https://phabricator.services.mozilla.com/D123379
This lets us obtain symbols for macOS system libraries on macOS 11+
even if these symbols are not present on the Mozilla symbol server.
Some background for this is described in https://github.com/gimli-rs/object/issues/268 .
This patch makes use of the syntax `dyldcache:<dyldcachepath>:<librarypath>`.
There is some code in the profiler-get-symbols wasm integration which parses this syntax
and turns it into a `CandidatePathInfo::InDyldCache` enum value.
And profiler-get-symbols itself will then check the dyld shared cache for the requested
library, and parse it from there.
You can run the following pieces of code in the Firefox error console to
test whether this patch is working, on macOS 11 or above:
```
var { createLocalSymbolicationService } = ChromeUtils.import("resource://devtools/client/performance-new/symbolication.jsm.js");
var service = createLocalSymbolicationService(Services.profiler.sharedLibraries, []);
var appkit = Services.profiler.sharedLibraries.find(l => l.name == "AppKit");
var [addrs, index, buffer] = await service.getSymbolTable(appkit.debugName, appkit.breakpadId);
addrs.length
```
```
var { createLocalSymbolicationService } = ChromeUtils.import("resource://devtools/client/performance-new/symbolication.jsm.js");
var service = createLocalSymbolicationService(Services.profiler.sharedLibraries, []);
var appkit = Services.profiler.sharedLibraries.find(l => l.name == "AppKit");
JSON.parse(await service.querySymbolicationApi("/symbolicate/v5", JSON.stringify({memoryMap:[[appkit.name,appkit.breakpadId]],stacks:[[[0,0x12f00d]]]}))).results[0].stacks[0][0]
```
Before this patch, getSymbolTable would throw an error (file not found), and
querySymbolicationApi would return an object without a function name.
With this patch, getSymbolTable finds all the symbols in AppKit, and
querySymbolicationApi returns the correct function name.
Depends on D123815
Differential Revision: https://phabricator.services.mozilla.com/D123816
This update adds support for macOS 12 compatible dyld shared cache parsing.
It also improves symbolication performance for large PDB files, unrelated to this bug.
Differential Revision: https://phabricator.services.mozilla.com/D123815
depends on D123326
This changeset introduces a single `wait` function which should work for all DevTools setups.
For the provided browser, it will check if there is a Toolbox or a RDM UI opened. Then it will start watching for Toolbox-specific or RDM-specific navigation events (incl panels etc...), as well as for the reload of the corresponding Commands instances (toolbox and RDM UI might each have one). It also extracts the "target switching" check to a separate "watch" helper so that it doesn't get mixed with the rest of the logic.
Differential Revision: https://phabricator.services.mozilla.com/D123604
All these tests most likely have been fixed with the enabling of server targets.
Because bfcache in parent was introducing more cross process navigations,
being initiated from the server, having the support of server targets was uterly
important to support bfcacheInParent.
Differential Revision: https://phabricator.services.mozilla.com/D123448
We were having some race condition between calls using debounce and the other not using it.
The check verify if the state changed prevented from updating the component correctly.
So better always debounce and avoid doing any state check.
Differential Revision: https://phabricator.services.mozilla.com/D123362
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.
This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.
Differential Revision: https://phabricator.services.mozilla.com/D122345
This is most commonly as a result of CU.evalInSandbox which
allows an arbitrary filename but when omitted will default
to the filename of the test, which is a filesystem path
and thus is disallowed.
Differential Revision: https://phabricator.services.mozilla.com/D122246
This is most commonly as a result of CU.evalInSandbox which
allows an arbitrary filename but when omitted will default
to the filename of the test, which is a filesystem path
and thus is disallowed.
Differential Revision: https://phabricator.services.mozilla.com/D122246
The sheet in here is added as an user agent sheet so it matches also
anonymous content.
It can cause some invariants we rely on for scrollbar caching to break.
In particular, we assert that the style we cache and the style we get
match, but this rule causes it to not match.
Make sure to reset transition to the initial value so that scrollbar
styles don't change. This shouldn't change behavior since
transition-duration is zero anyways, but should avoid the assertion
firing.
An alternative would be to use something like
`:not(:-moz-native-anonymous)` or such instead.
Differential Revision: https://phabricator.services.mozilla.com/D123319