SVG_WRAPPER should be handled by the blob invalidation code. Let's ensure
that's true.
Differential Revision: https://phabricator.services.mozilla.com/D35712
--HG--
extra : moz-landing-system : lando
Gecko layouts typically produce a picture cache where the origin
of the picture rect is an integer. However, it can occasionally
be a fractional origin.
In these cases, we need to ensure the content origin is floored,
to maintain consistent snapping. When this case occurs, the UV
rect for the tile also needs adjusting, to ensure the exact
1:1 texel:pixel mapping when drawing the tile.
Differential Revision: https://phabricator.services.mozilla.com/D35761
--HG--
extra : moz-landing-system : lando
Static VarCache prefs have setters. These are dangerous because they can
violate the primary invariant of VarCache prefs, which is that the global
variable always matches the pref value in the table.
Fortunately they are only used in tests, and we can use vanilla pref setters
instead, and get rid of the VarCache setters.
Differential Revision: https://phabricator.services.mozilla.com/D35632
--HG--
extra : moz-landing-system : lando
Some pages from Gecko produce a display list for the main content
tile cache that has a transparent background. Detect these cases
and disable subpixel text rendering to ensure correct blending.
Differential Revision: https://phabricator.services.mozilla.com/D35627
--HG--
extra : moz-landing-system : lando
This is a simple mach command that imports a PR from a whitelisted set
of github repositories into the local m-c clone. It works by downloading
the .patch file from github, splitting the different commits, and
applying those commits to the local repo via the `patch` tool and git/hg
commit. It optionally allows filing a bug or providing a bug number, and
specifying a reviewer.
This is one part of a larger workflow that facilitates landing
contributor patches into m-c when those patches are submitted as PRs.
Other components of the workflow (to be added in the future) will make
it easier to actually test and land the patch.
Differential Revision: https://phabricator.services.mozilla.com/D35206
--HG--
extra : moz-landing-system : lando
This changes CreateClippedDrawTarget so that instead of taking
a max size and a transform it just takes a user space rect of
the desired bounds.
This change allows the caller to not worry about the computing
a max size based on the current clip. Instead this responsibility
is lowered into the specific backends.
The main motivation for this work is to allow blob recoordination
to create recordings that don't depend on the current clip.
Some additional benefits are that the API is easier to use and
as can be seen simplifies the SVG masking code because it doesn't
need to track surface offsets manually.
It's also an important step towards removing all the uses of
gfxContext::GetClipExtents which will let us get rid of the separate
clipping stack in gfxContext and help us move off of gfxContext
completely.
Most backend implementations of CreateClippedDrawTarget are relatively
simple. DrawTargetCapture is modified to track the current clip rect
so that it can create a new DrawTargetCapture of the appropriate size
without needing to worry about lazy resolution.
Differential Revision: https://phabricator.services.mozilla.com/D33363
--HG--
extra : moz-landing-system : lando
There are a number of places where we look at a source surface's type
and then cast it to get inner information. Wrapping surfaces with offset
surfaces breaks this. Adding GetUnderlyingSurface will let us see
inside. We use this in the D2D backend to make sure we do
unintentionally convert to datasurfaces.
Differential Revision: https://phabricator.services.mozilla.com/D35559
--HG--
extra : moz-landing-system : lando
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
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