* add event listener and update list when a tab is closed
* add additional styling, favicon element and keyboard navigation support
* add tests
Differential Revision: https://phabricator.services.mozilla.com/D145906
mutation.target is HTMLDocument, which doesn't have closest function.
This patch uses mutation.target.documentElement instead.
Differential Revision: https://phabricator.services.mozilla.com/D147294
After bug 1730284 we don't use it for throttling iframes, so the only
remaining use the test-only nsIDOMWindowUtils.paintCount. None of the
tests using it rely on the empty transaction case, so we should be able
to just remove this.
Differential Revision: https://phabricator.services.mozilla.com/D146589
This is more likely to be understandable by developers, matches other
browsers more closely (see bug comments), and seems more in-line with
what we do for OOP iframes.
Add a pref to not do this throttling at all (which would match Chrome),
though this is probably good enough for now.
Differential Revision: https://phabricator.services.mozilla.com/D146574
Accessing control via `label.control` requires a call to native HTMLLabelElement::GetLabeledElement.
And for unmapped label case, we call
`this._unmappedLabels.filter(label => label.control == element);`
for every input element in the form. This means if a form has 10 labels
and 10 elements, a `identifyAutofillFields` call to the form may invoke up to 100 (10x10)
HTMLLabelElement::GetLabeledElement call.
This patch fixes this issue by storing the reference of the control elements in
`this._unmappedLabelControls` to reduce the number of HTMLLabelElement::GetLabeledElement calls
(10 HTMLLabelElement::GetLabeledElement calls in the foregoing example).
Differential Revision: https://phabricator.services.mozilla.com/D146669
It seems we don't allow it generally...
I couldn't reproduce the bad effect on standalone pages (so there's
something about the YouTube markup or how they setup the event listeners
or some other interaction going on), but:
* This fixes the issue and is extremely simple.
* It doesn't prevent users from selecting around videos and pasting
them into rich text editors.
* We already apply user-select: none to top-level video documents.
So over-all it should be pretty safe.
Differential Revision: https://phabricator.services.mozilla.com/D147301
mutation.target is HTMLDocument, which doesn't have closest function.
This patch uses mutation.target.documentElement instead.
Differential Revision: https://phabricator.services.mozilla.com/D147294
* add event listener and update list when a tab is closed
* add additional styling, favicon element and keyboard navigation support
* add tests
Differential Revision: https://phabricator.services.mozilla.com/D145906
When we want to present with an OffscreenCanvas using a Canvas2D context
that is backed by a WebGL context via DrawTargetWebgl, we need to ensure
that any readbacks are done on the owning thread. As such, we need to
map in the surfaces before passing them to ImageBridge.
There are likely optimizations we can do here that don't involve
readback if the canvas doesn't fallback to software but for now this
patch focuses on making it work.
Differential Revision: https://phabricator.services.mozilla.com/D147297
Previously, we ignored cut-and-paste operations, similar to some other applications, but most ctrl-keys do something in the browser that makes hiding the cursor pointless or distracting (like ctrl-j opening the download window).
Differential Revision: https://phabricator.services.mozilla.com/D146506
The comment about running code is no longer relevant after bug 1277278, see
patch part 1 in bug 1277278.
Depends on D144012
Differential Revision: https://phabricator.services.mozilla.com/D144013
The ArgumentsObject for inlined arguments was always allocated through a VM-call,
which made it slower when compared to non-inlined arguments.
Differential Revision: https://phabricator.services.mozilla.com/D144012
This removes the API and skips the tests. The implementation in
mozJSComponentLoader is not removed.
This patch will be backed out after the next merge.
Differential Revision: https://phabricator.services.mozilla.com/D147278
There are some Android devices which support GLES 2 but do not support
the vertex_array_object extension, and we therefore do not give them
WebGL 1.
This requirement was added in bug 1322746. as part of some changes to
GLBlitHelper which required VAOs. However, in bug 1396704 a fallback
path was added to GLBlitHelper which does not require VAOs. The WebGL
implementation can make use of the WebGLVertexArrayFake fallback path
on devices without VAO support, meaning this requirement can be
dropped.
Differential Revision: https://phabricator.services.mozilla.com/D145422