Despite the comment saying not to use the "handle" except as an opaque
identifier, it is being used to pass the handle to other OS APIs. Direct
access to the handle needs to be controlled to make sure freezing is
safe, so this patch replaces that with interfaces that are more explicit
about ownership and lifetime.
Depends on D26739
Differential Revision: https://phabricator.services.mozilla.com/D26740
--HG--
extra : moz-landing-system : lando
This scrolls the document containing the OOPIF and ensures that
hit-testing still works. Some of the fission hit-testing machinery is
still WR-only, so we have to restrict the subtest to only run when WR
is enabled.
Differential Revision: https://phabricator.services.mozilla.com/D35204
--HG--
extra : moz-landing-system : lando
The case being fixed by this bug is currently relatively rare, in that
it requires the scrolling of a frame that contains OOP content. This
patch adds a bit of optimization to ensure that we only send the
affected transforms (i.e. for the scrolled OOP layers subtrees) in this
scenario, so that we don't cause unnecessary IPC overhead.
Differential Revision: https://phabricator.services.mozilla.com/D35202
--HG--
extra : moz-landing-system : lando
In cases such as APZ scrolling with paint-skipping, there is an
additional transform component that needs to be included in the
transforms that APZ sends to the main thread for the purposes of
tracking OOP iframe positions. This patch includes the missing transform
component in the calculated matrices. This component updates more
frequently, generally on each call to RequestContentRepaint, as
mExpectedGeckoMetrics is updated, so we also need to send the frame
transform matrices over with this frequency.
Differential Revision: https://phabricator.services.mozilla.com/D35201
--HG--
extra : moz-landing-system : lando
The APZCTreeManager already knows its root layers id, so we don't need
to be passing it all over the place. I previously verified via a try
push with an assertion that the incoming aRootLayersId is always equal
to mRootLayersId.
Differential Revision: https://phabricator.services.mozilla.com/D35200
--HG--
extra : moz-landing-system : lando
On android, android's nsWindow creates LayerManaer only in nsWindow::Create(). When WebRender error happened, gecko just stopped rendering by disabling Webrender.
The nsWindow needs to re-create LayerManager during disabling Webrender. Further, during disabling WebRender, All GeckoSurfaceTextures should not be attached to GLContext. It is for preventing a conflict with AttachToGLContext() call in SurfaceTextureHost::EnsureAttached().
Differential Revision: https://phabricator.services.mozilla.com/D26687
--HG--
extra : moz-landing-system : lando
This scrolls the document containing the OOPIF and ensures that
hit-testing still works. Some of the fission hit-testing machinery is
still WR-only, so we have to restrict the subtest to only run when WR
is enabled.
Differential Revision: https://phabricator.services.mozilla.com/D35204
--HG--
extra : moz-landing-system : lando
The case being fixed by this bug is currently relatively rare, in that
it requires the scrolling of a frame that contains OOP content. This
patch adds a bit of optimization to ensure that we only send the
affected transforms (i.e. for the scrolled OOP layers subtrees) in this
scenario, so that we don't cause unnecessary IPC overhead.
Differential Revision: https://phabricator.services.mozilla.com/D35202
--HG--
extra : moz-landing-system : lando
In cases such as APZ scrolling with paint-skipping, there is an
additional transform component that needs to be included in the
transforms that APZ sends to the main thread for the purposes of
tracking OOP iframe positions. This patch includes the missing transform
component in the calculated matrices. This component updates more
frequently, generally on each call to RequestContentRepaint, as
mExpectedGeckoMetrics is updated, so we also need to send the frame
transform matrices over with this frequency.
Differential Revision: https://phabricator.services.mozilla.com/D35201
--HG--
extra : moz-landing-system : lando
The APZCTreeManager already knows its root layers id, so we don't need
to be passing it all over the place. I previously verified via a try
push with an assertion that the incoming aRootLayersId is always equal
to mRootLayersId.
Differential Revision: https://phabricator.services.mozilla.com/D35200
--HG--
extra : moz-landing-system : lando
DOMMatrix now internally uses double instead of float. This only fixes DOMMatrix internals so we still have to work on Servo CSS Parser to pass doubles instead of floats.
Differential Revision: https://phabricator.services.mozilla.com/D35284
--HG--
extra : moz-landing-system : lando
In future, picture cache tiles will support different sizes, depending
on the size of the content slice being cached, and how frequently
parts of the slice are changing.
Although currently unused, this patch adds support for specifying
multiple different tile sizes for the picture cache texture array.
Differential Revision: https://phabricator.services.mozilla.com/D34989
--HG--
extra : moz-landing-system : lando
In future, picture cache tiles will support different sizes, depending
on the size of the content slice being cached, and how frequently
parts of the slice are changing.
Although currently unused, this patch adds support for specifying
multiple different tile sizes for the picture cache texture array.
Differential Revision: https://phabricator.services.mozilla.com/D34989
--HG--
extra : moz-landing-system : lando
Fixes an edge case where splitting the top level primitive list
for picture caching may result in a mismatched push/pop clip
pair.
This is not a particularly efficient fix, but it's a rare enough
edge case for now that this fix will be good enough until we work
out the long term solution for the push/pop clip chain instances.
Differential Revision: https://phabricator.services.mozilla.com/D35139
--HG--
extra : moz-landing-system : lando
StaticPrefs are fully initialized with Preferences, which is instantiated via XPCOM. It is required as such to initialize xpcom first.
Depends on D35263
Differential Revision: https://phabricator.services.mozilla.com/D35264
--HG--
extra : moz-landing-system : lando
I wasn't able to produce a situation in which this change matters, so
I'm not certain that it's necessary, but it seems to be the correct
thing to do given the problem fixed in nsGfxScrollFrame.cpp.
Differential Revision: https://phabricator.services.mozilla.com/D31864
--HG--
extra : moz-landing-system : lando
The work for the antecedent patch led me to stumble on a problem where
we were not correctly stopping autoscroll. This was also due to a
renderroot mismatch, which this patch addresses. The call comes through
nsBaseWidget no matter what, it seems, so using mWrRootId.mRenderRoot
seems to be incorrect. I couldn't see a more elegant fix than this.
Differential Revision: https://phabricator.services.mozilla.com/D31863
--HG--
extra : moz-landing-system : lando
There's two things going on here. 1) nsGfxScrollFrame is getting the
wrong renderroot, because it's not correctly recursing up the frame
tree. 2) Hiding behind that problem is that if we do correctly assign
the renderroot, we end up blocking on both render roots updating if
we don't, say, have a horizontal scroll option, because that leaves
us with a wr::RenderRoot::Default. 2.1) We then still end up blocking
on the default renderroot because we initialize the selector with
WebRenderBridgeParent's mRenderRoot.
Differential Revision: https://phabricator.services.mozilla.com/D31858
--HG--
extra : moz-landing-system : lando
This patch fixes two issues with blob images + new picture caching.
1) The logic that determines a conservative set of visible tiles
for tiled / blob images was no longer correct. It was relying
on the bounds of a single tile to build the conservative rect.
Instead, take the overall primitive world bounds and derive a
conservative set of visible tiles from this.
2) The logic to detect if an image was dirty was incorrect, and
somewhat error prone. It now maintains a set of dirty images
that have been requested. The image key dependencies are then
checked during the tile cache post_update step.
Differential Revision: https://phabricator.services.mozilla.com/D35126
--HG--
extra : moz-landing-system : lando
The test still fails frequently on non-WR; we must still be missing something.
Differential Revision: https://phabricator.services.mozilla.com/D35155
--HG--
extra : moz-landing-system : lando
These now work on actual devices now, but must remain disabled on the
emulator until bug 1555002 is fixed.
Differential Revision: https://phabricator.services.mozilla.com/D34619
--HG--
extra : moz-landing-system : lando
There appears to be a driver bug on android 8 and older where it does
not render correctly.
Differential Revision: https://phabricator.services.mozilla.com/D34618
--HG--
extra : moz-landing-system : lando
When using an advanced blend equation, fragment shader output must be
marked with a matching layout qualifier. Not doing so was causing
subsequent glDraw* operations to fail.
This patch adds a new shader feature, WR_FEATURE_ADVANCED_BLEND, which
requires the necessary extension and adds the qualifier. Variants of
the brush_image shaders are created with this feature, and are used
whenever a brush_image shader is requested for BlendMode::Advanced.
Differential Revision: https://phabricator.services.mozilla.com/D34617
--HG--
extra : moz-landing-system : lando
clang's -Wmissing-prototypes option identifies global functions that can be made static (because they're only called from one compilation unit) or removed (if they're never called).
gfx/gl/GfxTexturesReporter.cpp:22:13 [-Wmissing-prototypes] no previous prototype for function 'FormatBytes'
gfx/gl/GLContextFeatures.cpp:534:6 [-Wmissing-prototypes] no previous prototype for function 'IsFeaturePartOfProfileVersion'
Depends on D20263
Differential Revision: https://phabricator.services.mozilla.com/D20264
--HG--
extra : moz-landing-system : lando