Refactor several occurences of `setTimeout()` to avoid triggering the `eval()` assertion.
Differential Revision: https://phabricator.services.mozilla.com/D28851
--HG--
extra : moz-landing-system : lando
Turns out removing the pseudo-class and such ends up not being quite as trivial
as I initially thought, or possible at all, since the fact that the <symbol> is
a <symbol> is observable via selectors, added a test for that.
Differential Revision: https://phabricator.services.mozilla.com/D29131
--HG--
extra : moz-landing-system : lando
ComputeRebuildRegion sets ForceDescendIntoIfVisible on all modified frames and their ancestors,
so we can use this to detect if a display list might have modified children by looking for this
flag on the container item.
We still need to run PreProcessDisplayList on the list, so that we can remove items that belong
to a deleted frame, and build the old items array (including placeholders for the deleted items)
so that it matches our DAG.
If we wanted to skip serialization to the old items array, then we'd need to remove the deleted
item entries from the DAG too, including connecting predecessors of the deleted entry to entries
that have that deleted entry as their predecessor. That's hard to do in-place, so we leave
the empty entries in the old items list to act as placeholders until we next merge this list
properly.
Differential Revision: https://phabricator.services.mozilla.com/D27822
--HG--
extra : moz-landing-system : lando
import.log and reftest.list are generated automatically.
I run import-test.py on Linux, and the filenames in import.log are not
sorted properly, so I make them sort case-insensitively to reproduce the
exact same order in import.log.
Differential Revision: https://phabricator.services.mozilla.com/D29064
--HG--
extra : moz-landing-system : lando
We don't need to flush layout in the parent document if the parent and child
documents can't observe each other.
This will also match our behavior in a Fission world.
I'm not attached to the name of the function, better ideas welcome.
Differential Revision: https://phabricator.services.mozilla.com/D28217
Just make the iframe to test cloning same-origin using srcdoc, instead of using
SpecialPowers to access cross-origin objects.
Differential Revision: https://phabricator.services.mozilla.com/D28301
Since now most CSS transform related bugs are fixed, it's clear that the
purpose of nsSVGUtils::GetTransformMatrixInUserSpace() should solely be to
replace SVGElement::PrependLocalTransformsTo(eUserSpaceToParent).
After fixing Bug 972041, the only other usecase (Bug 1247218) no longer exists.
OTOH, there is a problem when the parent has a viewbox transform, in that case,
SVGElement::PrependLocalTransformsTo() doesn't include it, but
nsLayoutUtils::GetTransformToAncestor() does.
In fact, it's much easier to compute the transform matrix directly based on
the implementation of nsDisplayTransform::GetResultingTransformMatrixInternal(),
which is also the function internally called by nsLayoutUtils::GetTransformToAncestor().
In particular, we don't need to look at 3D stuff since our matrix is inherently 2D.
Differential Revision: https://phabricator.services.mozilla.com/D28970
--HG--
extra : moz-landing-system : lando
We need to do this separately in the WR and non-WR codepaths for picking up
scroll updates for skipped paints.
Differential Revision: https://phabricator.services.mozilla.com/D29061
--HG--
extra : moz-landing-system : lando
ContentVerifier has been dead code since bug 1355166 (which, incidentally, means
it has no tests). Its presence is preventing improvements to
ContentSignatureVerifier (see e.g. bug 1534600), so this patch removes it.
As a result, the nsILoadInfo attributes verifySignedContent and enforceSRI are
also unused, so this patch removes those as well.
Differential Revision: https://phabricator.services.mozilla.com/D28885
--HG--
extra : moz-landing-system : lando
Spec quote from https://drafts.csswg.org/css-contain/#containment-size :
"Replaced elements must be treated as having an intrinsic width and height of 0"
To achieve that, we just need to:
(a) make all of these frame classes' GetPrefISize and GetMinISize methods return 0 if they're styled with contain:size.
(b) make all of these frame classes' GetIntrinsicSize() and GetIntrinsicRatio() methods return 0,0.
In some cases, these methods are implemented in terms of common helper methods
(and sometimes member variables). For those cases, this patch adjusts the
helper methods (and variables) rather than the getters themselves.
Also: in one case (nsHTMLCanvasFrame), I needed to update its ComputeSize
method to remove a dependency on the "real" intrinsic size & ratio. I believe
the other classes' ComputeSize implementations do the right thing automatically
by sharing code & data with their intrinsic-size codepaths.
Differential Revision: https://phabricator.services.mozilla.com/D28159
--HG--
rename : testing/web-platform/tests/media/white.webm => testing/web-platform/tests/css/css-contain/support/white.webm
extra : moz-landing-system : lando
Because adjusting position in the Wayland does not work
(because of unknown absolute position of the window), do not try
to adjust popup position under Wayland.
Differential Revision: https://phabricator.services.mozilla.com/D28480
--HG--
extra : moz-landing-system : lando
The fixes a latent bug with WebRender where we would clear it after reading it
in ComputeScrollMetadata, but WR would sometimes call ComputeScrollMetadata a
second time for the same scroll frame in the same transaction, resulting in
the update sometimes not making it into the transaction.
Differential Revision: https://phabricator.services.mozilla.com/D28776
--HG--
extra : moz-landing-system : lando
Geometry box was implemented long ago in Bug 1289011. But during some
refactoring, the existence of geometry box was overlooked. We add back
its support.
Differential Revision: https://phabricator.services.mozilla.com/D28815
--HG--
extra : moz-landing-system : lando
Per the discussion in:
https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ
They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.
For the ones that already used `e` or `k` prefixes, I've mostly done:
for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done
For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.
Depends on D28680
Differential Revision: https://phabricator.services.mozilla.com/D28681
--HG--
extra : moz-landing-system : lando
It looked a bit weird when mixed up with the other enum classes I'm about to
rename.
Depends on D28679
Differential Revision: https://phabricator.services.mozilla.com/D28680
--HG--
extra : moz-landing-system : lando
We have a better type to represent "a coord or nothing", and that's Maybe.
This code is shorter, and I think reads generally better / is less easy to
misuse.
I wrote this on top of bug 1547126 so there shouldn't be conflicts.
Differential Revision: https://phabricator.services.mozilla.com/D28921
--HG--
extra : moz-landing-system : lando
This patch shouldn't affect behavior; it's just simplifying existing code with
a new convenience constructor.
Differential Revision: https://phabricator.services.mozilla.com/D28918
--HG--
extra : moz-landing-system : lando