Commit Graph

778 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
c55e7313e9 Bug 1655983 - Fix pre-existing include guard now that we also use it in non-DEBUG builds.
MANUAL PUSH: Bustage fix
CLOSED TREE
2020-09-09 20:37:42 +02:00
Emilio Cobos Álvarez
a3cb6a6071 Bug 1655983 - Notify the accessibility service directly when detaching a shadow root. r=eeejay
See the comment for different things that we could do here, this being
the simplest one IMO.

Differential Revision: https://phabricator.services.mozilla.com/D89639
2020-09-09 17:57:05 +00:00
Brad Werth
131e653257 Bug 1661283 Part 1: Add a ChromeOnly method to Element for getting scrollbar visibility. r=emilio
This will be used to support the display of "scroll" badges in devtools.

Differential Revision: https://phabricator.services.mozilla.com/D88504
2020-08-28 22:17:56 +00:00
Emilio Cobos Álvarez
2d739930c3 Bug 1658470 - Remove layout.css.shadow-parts.enabled. r=heycam
Shipped since 72 (bug 1559074).

Differential Revision: https://phabricator.services.mozilla.com/D86661
2020-08-11 05:54:17 +00:00
John Dai
91aab0897a Bug 1556342 - Implement customElements.define's form-associated; r=edgar,smaug
Differential Revision: https://phabricator.services.mozilla.com/D85734
2020-08-05 09:35:56 +00:00
Emilio Cobos Álvarez
301fc8c85a Bug 1655741 - Don't assert that there's a primary frame as long as there's a scroll frame for the root scroll frame. r=mats
There's no correctness issue here, but the assertion is just wrong. For
the scrolling element we may get the root scrollable frame even though
the primary frame is null.

Differential Revision: https://phabricator.services.mozilla.com/D85160
2020-07-29 17:28:09 +00:00
Brad Werth
d3fa8a78b4 Bug 1228985 Part 1: Extend HTMLStyleElement to allow devtools to become the triggering principal. r=ckerschb,emilio
Differential Revision: https://phabricator.services.mozilla.com/D77557
2020-07-28 15:45:35 +00:00
Emilio Cobos Álvarez
783b79630a Bug 1655398 - Don't move the client area rect for the root scroll frame. r=mats
The spec really asks us to put the rect at GetUsedBorder().{top,left} in
this case, but I don't think that really makes sense, see
https://github.com/w3c/csswg-drafts/issues/5363.

Differential Revision: https://phabricator.services.mozilla.com/D84959
2020-07-28 11:17:36 +00:00
Narcis Beleuzu
ccd0e80053 Backed out changeset 31ebee098292 (bug 1655398) for wpt failure on client-props-root.html . CLOSED TREE 2020-07-28 03:49:28 +03:00
Emilio Cobos Álvarez
5ca94840ad Bug 1655398 - Don't move the client area rect for the root scroll frame. r=mats
The spec really asks us to put the rect at GetUsedBorder().{top,left} in
this case, but I don't think that really makes sense, see
https://github.com/w3c/csswg-drafts/issues/5363.

Differential Revision: https://phabricator.services.mozilla.com/D84959
2020-07-27 20:07:19 +00:00
Emilio Cobos Álvarez
cfd545b1a1 Bug 1654769 - Make clientRect offsets relative to the primary frame of the element. r=mats
We're returning offsets relative to the scroll target frame, which for
inputs and such is not the primary frame, and thus they never have
border or padding or what not.

Offsets should be relative to the primary frame however, so move the
rect appropriately.

Differential Revision: https://phabricator.services.mozilla.com/D84919
2020-07-26 18:56:37 +00:00
Emilio Cobos Álvarez
af37b13df9 Bug 1652618 - Ensure UA widgets are attached and detached synchronously. r=smaug
This changes the UA widget setup (again). What is going on in this
test-case is that we have a marquee inside a video, two things that have
their own UA widget. Given how the code is currently written, the
runnable to attach and set up the marquee's widget is posted before than
the video one (which is potentially reasonable).

However that means that the marquee one runs before and flushes layout,
and catches the video in an inconsistent state (in the composed doc, but
without a shadow root). That in turn messes up reflow because
nsVideoFrame assumes stuff.

Rather than putting the attach / detach logic in script runners, just
run that bit synchronously, and post only the event async. I audited the
consumers of those events and it seems fine to me, they either already
deal with the possibility of the shadow root being already detached or
they don't care.

For teardown, none of the destructors of the UA widgets rely on the
shadow root being still attached to the element.

Differential Revision: https://phabricator.services.mozilla.com/D84487
2020-07-24 15:43:20 +00:00
Narcis Beleuzu
338c569e68 Backed out changeset 8323b7bb5e1a (bug 1652618) for mochitest failures on test_audiocontrols_dimensions.html . CLOSED TREE 2020-07-23 00:49:31 +03:00
Emilio Cobos Álvarez
581585395d Bug 1652618 - Ensure UA widgets are attached and detached synchronously. r=smaug
This changes the UA widget setup (again). What is going on in this
test-case is that we have a marquee inside a video, two things that have
their own UA widget. Given how the code is currently written, the
runnable to attach and set up the marquee's widget is posted before than
the video one (which is potentially reasonable).

However that means that the marquee one runs before and flushes layout,
and catches the video in an inconsistent state (in the composed doc, but
without a shadow root). That in turn messes up reflow because
nsVideoFrame assumes stuff.

Rather than putting the attach / detach logic in script runners, just
run that bit synchronously, and post only the event async. I audited the
consumers of those events and it seems fine to me, they either already
deal with the possibility of the shadow root being already detached or
they don't care.

For teardown, none of the destructors of the UA widgets rely on the
shadow root being still attached to the element.

Differential Revision: https://phabricator.services.mozilla.com/D84487
2020-07-22 19:42:37 +00:00
longsonr
ba1943ecf8 Bug 1259861 - Move everything else into the mozilla namespace in layout/svg r=dholbert
Also: adjust include paths to be consistent for usages of various SVG headers,
and remove unused SVG includes (mostly for "utils" classes),
and drop stray "ns" from already-renamed SVG classes in various code comments.

Differential Revision: https://phabricator.services.mozilla.com/D83140
2020-07-11 02:20:20 +00:00
Simon Giesecke
a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Emilio Cobos Álvarez
12c0ddfdee Bug 1643798 - Fix feature policy check for fullscreen so that it gets reflected properly in document.fullscreenEnabled. r=baku
See bug 1606660 comment 8 as to why checking it only in
Element.requestFullscreen is wrong.

Do you know how to test this? I'm not very familiar with feature-policy.

Differential Revision: https://phabricator.services.mozilla.com/D78567
2020-06-25 13:17:04 +00:00
Kagami Sascha Rosylight
413c249077 Bug 1643464 - Part 1: Rename eLeft/eRight to ePrimary/eSecondary r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D80331
2020-06-19 18:02:41 +00:00
Narcis Beleuzu
8987c9a01a Backed out changeset 2ff0e5800b2f (bug 1643798) for mochitest failures on test_fullscreen-api.html . CLOSED TREE 2020-06-22 23:38:38 +03:00
Emilio Cobos Álvarez
d3e4d544ec Bug 1643798 - Fix feature policy check for fullscreen so that it gets reflected properly in document.fullscreenEnabled. r=baku
See bug 1606660 comment 8 as to why checking it only in
Element.requestFullscreen is wrong.

Do you know how to test this? I'm not very familiar with feature-policy.

Differential Revision: https://phabricator.services.mozilla.com/D78567
2020-06-22 18:25:06 +00:00
Emilio Cobos Álvarez
f998ecc386 Bug 1640623 - Use enum classes for LookAndFeel int and float IDs. r=jmathies,geckoview-reviewers,esawin
Differential Revision: https://phabricator.services.mozilla.com/D76694
2020-06-11 11:27:43 +00:00
Kartikaya Gupta
ca520b1c17 Bug 1643042 - Turn the scroll origin parameter into a strongly-typed enum. r=tnikkel
This patch is a fairly mechanical conversion. The old `nullptr` gets converted
to ScrollOrigin::NotSpecified, and all the other possible values get corresponding
values in the new ScrollOrigin enum. A few switch statements are introduced to
clean up big if statements, but other than that, additional cleanups will happen
in later patches.

Differential Revision: https://phabricator.services.mozilla.com/D78438
2020-06-05 09:37:51 +00:00
Emilio Cobos Álvarez
6350eead9d Bug 1640917 - Remove XBL mentions in layout. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D76846
2020-05-26 16:16:32 +00:00
Emilio Cobos Álvarez
b1fc84a629 Bug 1640605 - Remove IsInAnonymousSubtree / IsRootOfAnonymousSubtree. r=edgar
In favor of the NativeAnonymous versions which they forward to.

Done automatically with:

  rg -l 'IsInAnonymousSubtree' | xargs sed -i 's/IsInAnonymousSubtree/IsInNativeAnonymousSubtree/g'

And removing the function definitions afterwards.

Differential Revision: https://phabricator.services.mozilla.com/D76681
2020-05-25 11:43:51 +00:00
Emily McDonough
9fff759666 Bug 1564128 part 2 - Copy animations to static document clones r=emilio,hiro
This also requires changing the EffectCompositor to allow animations in print
and print preview, and setting up a document timeline for the cloned document

Differential Revision: https://phabricator.services.mozilla.com/D69069
2020-05-14 19:41:03 +00:00
Emilio Cobos Álvarez
30cc71cb06 Bug 312971 - Unprefix -moz-read-write / -moz-read-only. r=edgar
And remove some duplicated tests from WPT.

Differential Revision: https://phabricator.services.mozilla.com/D75231
2020-05-14 16:46:08 +00:00
Daniel Holbert
717fae8f70 Bug 1635941 followup: Drop some more debugging printfs. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D74342
2020-05-07 23:13:51 +00:00
sefeng
d2853d70b2 Bug 1636012 - Remove TYPES_OF_USER_CLICKS probe r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D74250
2020-05-07 22:12:52 +00:00
Hiroyuki Ikezoe
8d9bbe8251 Bug 1634943 - Move animation related stuff in nsDisplayList.cpp into AnimationInfo class. r=boris
Depends on D73573

Differential Revision: https://phabricator.services.mozilla.com/D73574
2020-05-06 01:42:05 +00:00
Botond Ballo
731c9522be Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-05-05 19:26:38 +00:00
Emilio Cobos Álvarez
9a8c41776d Bug 1635094 - Cleanup the ReferrerInfo code. r=ckerschb
The cast in InitWithNode is wrong. AsElement() asserts instead of
checking the flag, so we always pass an element (and if we didn't we'd
have type confusion problems). I audited the callers and we're fine.

Anyhow, always require an element, and add two convenience constructors
for C++ code.

Differential Revision: https://phabricator.services.mozilla.com/D73636
2020-05-04 18:50:20 +00:00
Cosmin Sabou
00d059a4c0 Backed out 2 changesets (bug 1635094) for build bustages on nsMacShellService.cpp. CLOSED TREE
Backed out changeset 0a2b0c6ea19a (bug 1635094)
Backed out changeset ead4f26f76ee (bug 1635094)
2020-05-04 20:04:06 +03:00
Emilio Cobos Álvarez
41fba10f7f Bug 1635094 - Cleanup the ReferrerInfo code. r=ckerschb
The cast in InitWithNode is wrong. AsElement() asserts instead of
checking the flag, so we always pass an element (and if we didn't we'd
have type confusion problems). I audited the callers and we're fine.

Anyhow, always require an element, and add two convenience constructors
for C++ code.

Differential Revision: https://phabricator.services.mozilla.com/D73636
2020-05-04 16:26:51 +00:00
Andi-Bogdan Postelnicu
8c26178c43 Bug 1626555 - Make dom/base buildable outside of unified-build environment. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D69183
2020-04-29 09:02:05 +00:00
Timothy Gu
ea6c1fcd3f Bug 1628500 - Remove aIgnoreTabindex argument from Element::IsInteractiveHTMLContent(). r=edgar
This argument is set to true everywhere, and soon HTML will no longer consider
tabindex for interactive content: https://github.com/whatwg/html/pull/5457.

Differential Revision: https://phabricator.services.mozilla.com/D72568
2020-04-28 11:22:32 +00:00
Csoregi Natalia
bdf8849001 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo
69b3b241f8 Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-04-28 01:40:35 +00:00
Edgar Chen
19f16698c7 Bug 1631251 - Fullsceen request should consume the transient user activation; r=smaug
Depends on D72199

Differential Revision: https://phabricator.services.mozilla.com/D72201
2020-04-27 11:28:06 +00:00
Brad Werth
05e2481f64 Bug 1631865: Add a layout flush to getGridFragments and getAsFlexContainer. r=emilio
This will correctly handle the case of "display:grid" or "display:flex" being
added or removed from the Element frame right before the call to
getGridFragments or getAsFlexContainer on the Element.

Differential Revision: https://phabricator.services.mozilla.com/D71806
2020-04-22 23:45:22 +00:00
Emily McDonough
d5e4a14a87 Bug 1631644 - Add Element::HasGridFragments() and use it in appropriate locations in devtools r=bradwerth,emilio
This is cheaper than calling Element::GetGridFragments as it does not need to
to construct an entire array of results. Most uses of GetGridFragments in the
devtools are only testing for the existence of grid fragments, and can be
changed to this cheaper method instead.

Differential Revision: https://phabricator.services.mozilla.com/D71674
2020-04-21 18:46:35 +00:00
Edgar Chen
61ee2945c6 Bug 1629761 - Should not invoke attributeChangedCallback for the attribute that is changed during upgrading; r=smaug
In https://dom.spec.whatwg.org/#handle-attribute-changes, the attributeChangedCallback
reaction is enqueued only if the custom-element-state is customized.

And the assumption of "custom-element-definition is only available on the element whose
custom-element-state is customized" is no longer true after bug 1610054 along with the
spec changings in https://github.com/whatwg/html/pull/5126.

Differential Revision: https://phabricator.services.mozilla.com/D71027
2020-04-15 13:36:09 +00:00
Emilio Cobos Álvarez
e36413c4d7 Bug 1629096 - Always honor scroll-margin / scroll-padding from nsFocusManager. r=masayuki
We should always do this, otherwise stuff may not end up being visible which is
not acceptable for focus navigation.

Differential Revision: https://phabricator.services.mozilla.com/D70541
2020-04-13 11:34:48 +00:00
Edgar Chen
00e61c43c9 Bug 1128054 - Part 3: Invalid tabindex attribute should not make an element focusable; r=smaug
See https://html.spec.whatwg.org/#attr-tabindex.

Depends on D68209

Differential Revision: https://phabricator.services.mozilla.com/D68210
2020-04-04 20:03:09 +00:00
Tim Nguyen
d8fbb110a0 Bug 1626419 - Move FeaturePolicy check to GetFullscreenError after CallerType check. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D69401
2020-04-03 00:06:26 +00:00
Emily McDonough
154c0ea6ce Bug 1626133 - Separate the portion of Element::GetAnimation which needs script from the part that doesn't. r=birtles
Also update the existing caller which doesn't need the flush that was causing
the script requirement.

Differential Revision: https://phabricator.services.mozilla.com/D68944
2020-03-31 01:45:08 +00:00
Emilio Cobos Álvarez
52c2acaf72 Bug 1624359 - Remove Document::mVisibleContentHeuristic. r=smaug
We added it so the perf team could run some experiments, and they were done but
the code was left...

Differential Revision: https://phabricator.services.mozilla.com/D67897
2020-03-24 12:27:54 +00:00
Emilio Cobos Álvarez
3c744461ac Bug 1618260 - Fix number input so that it honors overflow-clip-box-block. r=mats
This never worked, but it's more visible with the new form controls which have
more padding.

Make the anonymous div and co a pseudo-element, so that they inherit from the
<input> properly in all cases. This works for non-number inputs because the
editor root is a direct child of the <input>, but it doesn't for number inputs
because there's a flex wrapper in between.

This way overflow-clip-box: inherit does what we want. Reset the padding in the
inline direction, as the padding for <input type=number> applies to the arrow
boxes as well, and thus we'd double-apply it.

Differential Revision: https://phabricator.services.mozilla.com/D65271
2020-03-18 09:21:44 +00:00
Sean Feng
d1ad0194c4 Bug 1377999 - Make DocumentFragment to adapt the DOMArena changes r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57707
2020-03-17 14:53:46 +00:00
Boris Chiou
1377970ec8 Bug 1610981 - Eliminate usage of CSSPseudoElement from KeyframeEffect. r=birtles,smaug
Replace ElementOrCSSPseudoElement with Element and add PseudoElement (which is
a DOMString) into KeyframeAnimationOptions and KeyframeEffect.

Differential Revision: https://phabricator.services.mozilla.com/D62667
2020-02-18 20:44:14 +00:00
Erik Nordin
57d2fd53ca Bug 1609288 - Apply styles from adopted stylesheets r=emilio
- Ensure that adopted styles are applied correctly to ShadowRoot
- Ensure that adopted styles are applied correctly to Document
- Add new WPT test cases to ensure the ordering of the styles.

Differential Revision: https://phabricator.services.mozilla.com/D60083
2020-02-15 01:16:46 +00:00