The main challenge here is to still support persist-logs feature of the netmonitor.
When this feature is enabled we have to keep around all the Network Events as before this patch.
Fission refactoring and the migration to server side NETWORK_EVENT watchers made
this fix significantly easier as we can now more easily reach out the parent process
code which is keeping things allocated.
Differential Revision: https://phabricator.services.mozilla.com/D124318
This new method allows to do some kind of diff between two allocation sites records.
It will ignore/substract the allocation sites from the first record when processing the second.
As this can sometime return only allocations without stacks,
the old view, showing all the allocations is still helpful.
Also both views can't work at the same time.
So, DEVTOOLS_DEBUG_ALLOCATIONS env variable is used to enable one of the two views.
DEVTOOLS_DEBUG_ALLOCATIONS=allocations will display all the allocation log (which may display allocations which have been freed)
DEVTOOLS_DEBUG_ALLOCATIONS=leaks will display only the allocation which are still allocated at the end of the test. So it should only display leaks.
Differential Revision: https://phabricator.services.mozilla.com/D123833
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
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
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
We used to destroy any existing target when creating a new one, but this was
causing remote frames to be destroyed on document where there was multiple remote
iframe sharing the same origin.
This patch changes the function that we use to retrieve an existing target given
a watcher actor id and a browserId, by allowing to pass a specific browsing context id.
A couple tests are added that are failing without the fix in this patch.
Differential Revision: https://phabricator.services.mozilla.com/D122230
The test was failing because we were getting cached messages
from a worker that were emitted late.
To fix this, we create a dedicated document with workers
only when we need them and remove workers from fission_document.html.
This allows us to cleanup a few tests that were already working
around the worker logs issue.
Differential Revision: https://phabricator.services.mozilla.com/D122326
With the patch above, some devtools tests failed because we were trying
to call getComputedStyle(node, ":marker") (read: one colon rather than
two).
Using two colons for pseudo-elements is the right thing to do and fixes
it / removes some weird special-cases.
Differential Revision: https://phabricator.services.mozilla.com/D121858
With the patch above, some devtools tests failed because we were trying
to call getComputedStyle(node, ":marker") (read: one colon rather than
two).
Using two colons for pseudo-elements is the right thing to do and fixes
it / removes some weird special-cases.
Differential Revision: https://phabricator.services.mozilla.com/D121858
break-before/after: page|column seem harder because you need to deal
with nested breaks, I think, but this should be straight-forward.
Differential Revision: https://phabricator.services.mozilla.com/D121206
break-before/after: page|column seem harder because you need to deal
with nested breaks, I think, but this should be straight-forward.
Differential Revision: https://phabricator.services.mozilla.com/D121206
it could happen that the page wasn't loaded yet, which would
make the call to gBrowser.goBack() a no-op and messing up
the rest of the test.
Differential Revision: https://phabricator.services.mozilla.com/D121347
These assertion fails quite frequently with fission and even more with server side targets.
We should investigate that in bug 1722709 before re-enabling this.
Differential Revision: https://phabricator.services.mozilla.com/D121089
WebExtension reload command is still broken with target switching.
Enabling server targets would break this on all reloads.
So prevent enabling server targets until this is fixed.
Differential Revision: https://phabricator.services.mozilla.com/D120982