This is an initial step. In the future it may be nice to avoid loading remote
tabs within windows without `useRemoteTabs` in general.
Differential Revision: https://phabricator.services.mozilla.com/D72936
This variant was only used for service workers' openWindow method, which has
been changed to no longer behave in this way, meaning that the type can be
removed. The follow-up simplification of removing
'ContentChild::ProvideWindowCommon', and moving the logic directly into
'BrowserChild' is not done in this bug, and will be done in a follow-up instead.
Differential Revision: https://phabricator.services.mozilla.com/D72935
The 'Id' variant was only used with b2g for remote `mozbrowser`s, and is no
longer relevant. The new code instead uses `PBrowser` directly in all cases.
Differential Revision: https://phabricator.services.mozilla.com/D72933
This patch asserts in various places that our LoadContext value on
BrowsingContext is consistent. This is done in order to get better diagnostics
for crashes such as those in bug 1629527.
Differential Revision: https://phabricator.services.mozilla.com/D72931
Android API 29 or later has font matcher and system font API that is for
accessing font data from native code.
Although Android's Default fonts are installed `/system/fonts`, some vendors
also install some fonts in another directories.
Example, Pixel 2's fonts are installed in `/system/fonts` and `/product/fonts`.
Differential Revision: https://phabricator.services.mozilla.com/D70533
The defaults should serve our users. I did some profiling with mochitests
and the defaults weren't ideal. It would be nice if the profiler "just worked"
for most of the situations. It would be great to teach the environment variables
about presets, but for now this will make the profiler easier to use for our
users in the general case.
This patch adds both screenshots and updates the entries count. This causes
additional overhead, but people on low-end devices can still tweak the settings
to remove that overhead.
Differential Revision: https://phabricator.services.mozilla.com/D70091
Right now trying to dump a shutdown profile from our profiler tests results in failure,
which is confusing. We should guard against this and fail the test if this happens.
Differential Revision: https://phabricator.services.mozilla.com/D74286
`_onToolbarArrowKeypress` is only concerned with moving focus between tabs in the toolbar when the right/left arrow keys are pressed. This patch ensures the listener is only added to the container of the tab elements (.devtools-tabbar).
Depends on D70279
Differential Revision: https://phabricator.services.mozilla.com/D72227
The DebugTargetInfo component doesn't receive new target information when navigation occurs. This is because the ToolboxController doesn't seem to be aware of these changes. To trigger an update, we can force new props to be passed to DebugTargetInfo by setting the target's debug info on its local state.
Differential Revision: https://phabricator.services.mozilla.com/D70280
The brightness, contrast, and invert css filters are represented as component transfer filters when they required to be represented as an svg filter (ie when an element has a combination of CSS and SVG filters specified).
https://hg.mozilla.org/mozilla-central/rev/4f3360c4f104 (bug 1417699) used the value SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN for the function type in the G and B channels to specify that the R channel function should be used. As we know from https://hg.mozilla.org/mozilla-central/rev/a1ff0af83ad2 (bug 1605223) SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN is the value we get if the function is not specified, and by spec that is to be interpreted as the identity function.
To fix this use a special function type that is not exposed to content, SVG_FECOMPONENTTRANSFER_SAME_AS_R, when we want to do this optimization. And then teach the webrender filter code to understand it.
Differential Revision: https://phabricator.services.mozilla.com/D74189
The element.parentNode.nodeName approach also handled the error, but when I ran the updated model through the training, validation and testing samples, our false positive rate (FPR) went up from 2.2% to 4.5% (referencing the most recent update to NewPasswordModel.jsm in bug 1629132) with a confidence threshold of 0.75. Unfortunately, that is well above our target FPR of 2-3%.
* I am not surprised by this difference: the diff I had tested with `parentNode.nodeName` replaced `parentElement` with `parentNode` and `tagName` with `nodeName` everywhere in this rule. Since `Node.ELEMENT_NODE` is only one of [several other `Node.nodeType`](https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType)'s, I can imagine that for some of the sites in the corpus, `element.parentElement` was not the same node as `element.parentNode`. Therefore the downstream return value could also be different; i.e. the modified rule may then return `false` instead of `true` or vice versa for some or all of these affected pages, and the model would consequently reach a different (and potentially worse) optimization.
Returning `false` for this rule in these cases will leave the model's performance unchanged on pages that don't use the Shadow DOM at all or in this specific way.
Also add some existence checks further downstream in the same rule where the values could also be `null`.
Differential Revision: https://phabricator.services.mozilla.com/D74164
The second example, when copied and pasted, is completely borked since it
is not preceeded by the line that declares what follows to be a Mermaid
diagram. This change fixes that.
It also fixes the prose to read slightly less awkwardly in places.
Finally, this change also adds a link to the Mermaid Live Editor to make
readers aware of this useful tool.
Differential Revision: https://phabricator.services.mozilla.com/D74338
Without this, taskgraph calculates the digest based on just the files in these
directories that are in the sparse profile (I suspect this is just the
moz.build files), and will rebuild it when those files change. This changes
ensures that all files in those directories are used to calculate the digest.
Additionally, this will cause the same digest to be generted by developers
locally, since the files *are* present in the non-sparse checkout that most
developers have.
Differential Revision: https://phabricator.services.mozilla.com/D74113
LazyFC changes the way we initialize browsers in a subtle way which is
important for print preview and PiP.
When creating a print preview browser / PiP, we rely on getting the right
process via _sameProcessAsFrameLoader. This is set very early on the
lifetime of the browser element, after it's upgraded but before its
connectedCallback() calls.
What happens with LazyFC is that we append the browser to the document,
then set its sameProcessAsFrameLoader, then initialize the browser from
connectedCallback(). That calls resetFields() _after_ setting the
_sameProcessAsFrameLoader, which clears it out, not good.
Without LazyFC we initialize it via frame construction, as soon as the
browser is attached to the document, so all ends up working out.
Explicitly avoid clearing this field out if not initialized yet, instead
of the hasOwnProperty check which was for the very same thing, just
about XBL initialization.
Differential Revision: https://phabricator.services.mozilla.com/D74282
This diff adds a test using gczeal to trigger a GC crash caused by the BigInt/I64 conversion path in inlined Ion To Wasm calls.
The actual fixes for the crash are in bug 1633714.
Differential Revision: https://phabricator.services.mozilla.com/D73111
This variant was only used for service workers' openWindow method, which has
been changed to no longer behave in this way, meaning that the type can be
removed. The follow-up simplification of removing
'ContentChild::ProvideWindowCommon', and moving the logic directly into
'BrowserChild' is not done in this bug, and will be done in a follow-up instead.
Differential Revision: https://phabricator.services.mozilla.com/D72935
The 'Id' variant was only used with b2g for remote `mozbrowser`s, and is no
longer relevant. The new code instead uses `PBrowser` directly in all cases.
Differential Revision: https://phabricator.services.mozilla.com/D72933