* Disallow duplicate style sheets to unblock fuzzers until this is handled properly.
Differential Revision: https://phabricator.services.mozilla.com/D63739
--HG--
extra : moz-landing-system : lando
In some cases (such as the case from this bug) the display list contains a
"hoisted" scrollinfo display item, which indicates the presence of a scroller
inside an inactive layer subtree (e.g. a div with certain kinds of filters).
The scrollinfo display item is "hoisted" outside the display list subtree so
that it doesn't get flattened away inside the inactive subtree. That display
item then causes the compositor hit-test regions to updated appropriately so
that APZ knows about the scrollframe inside the flattened content. This in turn
allows APZ to request main-thread scrolling for that scrollframe when input
events are directed to it.
With the WebRender codepath, the information represented by the hoisted
scrollinfo display item was being lost instead of being propagated to the
compositor. This was because the mechanism used for information propagation is
different (WebRender commands vs layers EventRegions). This patch ensures that
the scrollinfo display items also generate appropriate WebRender commands so
that the information is not lost, and WR knows about the scrollframe inside
the flattened content.
The patch includes:
- A code movement in nsGfxScrolllFrame.cpp so that necessary information can
be provided to the nsDisplayScrollInfoLayer constructor
- Updates to nsDisplayScrollInfoLayer members to store the necessary information
- Addition of nsDisplayScrollInfoLayer::CreateWebRenderCommands which propagates
the information to the WR display list
- A test to exercise the changes.
Differential Revision: https://phabricator.services.mozilla.com/D63869
--HG--
extra : moz-landing-system : lando
In a somewhat easy way. There are better ways to do this (moving
text-decoration-style to be a proper cbindgen enum class or such), but this
does the job for now.
Depends on D63794
Differential Revision: https://phabricator.services.mozilla.com/D63795
--HG--
extra : moz-landing-system : lando
This also fixes some backwards logic in nsBlockFrame::ReflowDirtyLines, and adds
some static assertions to nsGenericHTMLElement that almost cause a very subtle
bug.
Depends on D63792
Differential Revision: https://phabricator.services.mozilla.com/D63793
--HG--
extra : moz-landing-system : lando
Use the more general mechanism to get a property value. We can't just remove
the getter because of the resist-fingerprinting check, but...
Depends on D63791
Differential Revision: https://phabricator.services.mozilla.com/D63792
--HG--
extra : moz-landing-system : lando
Remove some unused enums and some single-call function that also caused a copy
of two LengthPercentage values.
This is pretty drive-by, could be a different bug.
Differential Revision: https://phabricator.services.mozilla.com/D63791
--HG--
extra : moz-landing-system : lando
- Enable StyleSheet to resolve/reject a promise from Replace()
- Implement the StyleSheet::Replace() method.
- Remove use of `alternate` in WPTs, because it will soon be gone.
- Ensure that WPT test cases which modify document's style clean up after themselves.
- Modify WPT @import test cases to handle unhandled cases on promises.
- Modify WPT test case for failed imports to correctly check `NetworkError` as per the spec, rather than `NotAllowedError`.
Differential Revision: https://phabricator.services.mozilla.com/D62524
--HG--
extra : moz-landing-system : lando
The spec seems to want us to treat it like an inline, but that's not what other
browsers do (I added tests for this in bug 1196668, and they still pass in all
engines).
This is an oddly specific condition to put in
nsImageFrame::ShouldShowBrokenImageIcon(), but oh well, we're past all sanity
here I think...
Differential Revision: https://phabricator.services.mozilla.com/D63715
--HG--
extra : moz-landing-system : lando
In order for the test to pass the scroll event handler needs to run so that a scroll linked effect is detected and apz is disabled. It is triggered by the scrollTo call in the load handler. Which then removes reftest-wait off a setTimeout(..., 0). The scroll event is dispatched from the refresh driver so it can happen after this setTimeout runs. So the scroll handler runs too late to affect the test.
Differential Revision: https://phabricator.services.mozilla.com/D62387
--HG--
extra : moz-landing-system : lando
This patch assumes that only element node can have content node. I.e., we
won't hit the following `MOZ_ASSERT`:
```
Element* element = nullptr;
nsIContent* content = aContent;
while (content) {
if (content->IsElement()) {
element = content->AsElement();
break;
}
content = content->GetParent();
}
MOZ_ASSERT(!content || content == element || content->GetParent() == element);
```
Differential Revision: https://phabricator.services.mozilla.com/D63308
--HG--
extra : moz-landing-system : lando
::marker content gets handled like text from any other CSS pseudo-class.
Therefore, using HTMLListBulletAccessible ends up duplicating the content already exposed in the a11y tree.
Now, we only use HTMLListBulletAccessible for nsBulletFrames instead of all marker frames.
As part of this, remove nsContainerFrame::GetSpokenMarkerContent, since we no longer need it to retrieve ::marker content.
The bulk of its other work was done by nsBulletFrame::GetSpokenContent, which we now call directly.
It also handled producing a default bullet character for list-style-image, but it makes sense for this to live in the a11y code.
Differential Revision: https://phabricator.services.mozilla.com/D63443
--HG--
extra : moz-landing-system : lando
We need to check for terminal new-lines on ourselves before looking at our next
sibling frame.
Differential Revision: https://phabricator.services.mozilla.com/D62766
--HG--
extra : moz-landing-system : lando
With the new 'defaults' key being added, 'default-preferences' is now
redundant. This commit converts all existing uses of 'default-preferences' to
use 'defaults' instead.
Differential Revision: https://phabricator.services.mozilla.com/D63247
--HG--
extra : moz-landing-system : lando
This introduces a new 'defaults' key to reftest manifests. It works similarly
to the existing 'default-preferences' key except it can be used for any test
modifier (e.g, skip-if, fail-if, pref, etc.).
See the changes to README.txt in this commit for an explanation on how to use
it.
Differential Revision: https://phabricator.services.mozilla.com/D63246
--HG--
extra : moz-landing-system : lando