Pages that come from the BFCache are already laid out and so a
main-thread paint is not guaranteed to happen.
Before the Fission+BFCache implementation, browser_readerMode.js didn't
trigger the bfcache codepath, so we were getting a paint fast enough
when leaving reader mode.
Differential Revision: https://phabricator.services.mozilla.com/D112527
Currently when resuing the leftmost leaf's buffer we have duplicate code to run
the traversal up until we reach the leftmost rope, because the left child has
been already been processed as a sepcial case. This removes this and checks a
flag in the main traversal code to handle this situation.
Differential Revision: https://phabricator.services.mozilla.com/D112391
I found it confusing using |this| in a method that operated on a many different
nodes. This makes it static and passes the root as a named parameter so it's
clearer what's going on.
Differential Revision: https://phabricator.services.mozilla.com/D112389
update-module-request-mode.https.html depends on Sec-Fetch which is only enabled
in Nightly (behind preference dom.security.secFetch.enabled added bug 1508292).
Shipping Sec-Fetch-* is tracked by bug 1695911. The test got added in
bug 1702610.
Differential Revision: https://phabricator.services.mozilla.com/D112395
promiseApzFlushedRepaints() and waitUntilApzStable() only flush the layer
that makes the request and also parent-process layer tree. And since test tries
to dispatch mouse events to oop iframe, so call promiseApzFlushedRepaints()
in oop iframe to flush its layer and wait it done as well.
Differential Revision: https://phabricator.services.mozilla.com/D112049
The iterator is based on Shape::Range, but is a bit more ergonomic and doesn't expose
the property's Shape. This means when we change the shape's property representation
later on we only have to change the iterator implementation.
Also start using `shape()` instead of `lastProperty()` because `lastProperty` will
either be removed or changed in the future, to decouple shapes and properties more.
The code generated by Clang for some of these functions looks good: the compiler
is able to optimize away the iterator and ShapePropertyWithKey code.
Differential Revision: https://phabricator.services.mozilla.com/D112329
The test was using netmonitor to be able to check request headers.
This feels quite heavy and we can avoid involving the toolbox by
doing additional work in the sjs document: store the user-agent header
value for the request that triggers a redirect and then put that
value in the document global so we can check it from the test.
This way the test should be fastest to run.
Depends on D111989
Differential Revision: https://phabricator.services.mozilla.com/D112362
This also fixes a bug where root content xul docs had zoom constraints that allowed them to be zoomed. This would cause a crash because we would ask for a repaint request and it would get routed to APZCCallbackHelper::UpdateRootFrame (because it has the id of the document element), which assumes the existance of a root scroll frame.
Differential Revision: https://phabricator.services.mozilla.com/D112486
Also rename IsAsyncZoomContainer to GetAsyncZoomContainerId, since it returns a maybe this serves both purposes.
We need this for the next patches.
Differential Revision: https://phabricator.services.mozilla.com/D112484
This adds a new @media query -moz-toolbar-prefers-color-scheme which works like
prefers-color-scheme but is set based on the browser theme rather than the OS
theme. The background colour of the toolbar is used to determine the theme
dark/light preference. This will be used for in-content common.css pages and
other UI elements that include that stylesheet in the browser-chrome through
shadow DOM.
The end result is that about: pages, infobars, and modals will now "match" the
browser theme (just light/dark mode, not LWT theming support).
Differential Revision: https://phabricator.services.mozilla.com/D111486
This is not strictly necessary (but a later patch would need to be modified slightly to get the presshellid).
But we can potentially pull zoom constraints from the apzc map, which is presshellid ignoring, so it seems better to have them in-sync, and I couldn't find a reason why zoom constraints needs to be presshellid respecting.
Depends on D112315
Differential Revision: https://phabricator.services.mozilla.com/D112316
This is a bit subtler than needed (ideally we'd just need one pref)
because android enables the support for the type even if it only creates
a textbox.
Co-Authored-By: Fernando García <fernando.garciagomez.01@telefonica.com>
Differential Revision: https://phabricator.services.mozilla.com/D112488