Commit Graph

378 Commits

Author SHA1 Message Date
Boris Chiou
3032cd0a1d Bug 1746528 - Remove aspect-ratio preference. r=emilio
We shipped this in Firefox 89, one year ago. It should be okay to drop
this preference now.

Differential Revision: https://phabricator.services.mozilla.com/D153680
2022-08-04 17:58:03 +00:00
Boris Chiou
a737fb6158 Bug 1293490 - Part 1: Implement CSS animation-composition longhand in style system. r=emilio
This patch introduces animation-composition longhand but we don't
accept it in @keyframe rule for now. I will support this for @keyframe
in the patch series.

Besides, the shorthand of animation doesn't include animation-composition.
The spec issue is: https://github.com/w3c/csswg-drafts/issues/6946.
We could fix the shorthand once this spec issue gets updated.

Differential Revision: https://phabricator.services.mozilla.com/D150299
2022-07-12 19:02:03 +00:00
Emilio Cobos Álvarez
41415528ae Bug 1778396 - Add color-mix to DevTools autocomplete. r=nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D151180
2022-07-07 10:29:59 +00:00
Ziran Sun
aba2e26071 Bug 1778062 - Add support for parsing the contain-intrinsic-size property from the CSS-sizing specification. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D151001
2022-07-06 11:47:51 +00:00
Martin Robinson
797bb26bc0 Bug 1463600 - Implement CSS 'contain: style' r=emilio
Add an implementation of CSS `contain: style`. This introduces two new
data structures, the ContainStyleScope and ContainStyleScopeManager.

ContainStyleScope manages one `contain: style` "world" which has its own
counter and quote lists. The contents of these lists depend on their
parent scopes, but are not affected by their children.
ContainStyleScopeManager manages a tree of scopes starting at a root
scope which is outside of any `contain: style` element.

Scopes are stored in a hash table that is keyed off of the nsIContent
which establishes the `contain: style` scope. When modifying quote or
content lists, the ContainStyleScopeManager is responsible for finding
the appropriate `contain: style` scope to modify.

Perhaps the most complex part of this is that counters and quotes have
read access to the state of counters and quotes that are in ancestor
`contain: style` scopes. In the case of counters, USE nodes that are at
the beginning of counter lists might have a counter scope that starts in
an ancestor `contain: style` scope. When nsCounterNode::SetScope() is
called, the code may look upward in the `contain: style` scope tree to
find the start of the counter scope. In the case of quotes, the first
node in the quote list must look for the state of quotes in ancestor
`contain: style` scopes.

Differential Revision: https://phabricator.services.mozilla.com/D149508
2022-06-22 16:16:59 +00:00
Boris Chiou
58820b2c98 Bug 1754897 - Part 3: Support scroll-timeline shorthand in style system. r=emilio
Implement
"scroll-timeline: <'scroll-timeline-axis'> || <'scroll-timeline-name'>".

Differential Revision: https://phabricator.services.mozilla.com/D146020
2022-06-13 20:26:45 +00:00
Boris Chiou
8950553d8b Bug 1754897 - Part 2: Support scroll-timeline-axis longhand in style system. r=emilio
Implement "scroll-timeline-axis: block | inline | vertical | horizontal".

Differential Revision: https://phabricator.services.mozilla.com/D146019
2022-06-13 20:26:45 +00:00
Boris Chiou
56b24a3676 Bug 1754897 - Part 1: Support scroll-timeline-name longhand in style system. r=emilio
Implement "scroll-timeline-name: none | <custom-ident>".

Differential Revision: https://phabricator.services.mozilla.com/D146018
2022-06-13 20:26:44 +00:00
Glenn Watson
052abaae8c Bug 1578503 - Enable backdrop-filter by default r=gfx-reviewers,jrmuizel
There are still a few remaining issues with the updated backdrop
filter implementation, specifically:

- We don't use reflectMode yet for blurs (quality issue in some cases)
- Performance may not be optimal in all use cases

However, we can try enabling by default now and work on these as
follow ups.

Differential Revision: https://phabricator.services.mozilla.com/D148684
2022-06-09 02:58:55 +00:00
Emilio Cobos Álvarez
a8dc2384cb Bug 1771792 - Remove some dead vibrancy code. r=mstange
Drive-by cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D147698
2022-05-31 10:43:29 +00:00
Hiroyuki Ikezoe
5e685d5724 Bug 1312165 - Parse scroll-snap-stop style and propagate it to APZ side. r=emilio,botond
Depends on D146147

Differential Revision: https://phabricator.services.mozilla.com/D145850
2022-05-31 00:45:11 +00:00
Emilio Cobos Álvarez
86c3ed6655 Bug 1769512 - Implement overflow-clip-margin: <length>. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D146432
2022-05-23 07:21:43 +00:00
Boris Chiou
bd42e7a068 Bug 1737918 - Part 1: Add scroll() to animation-timeline for style system. r=emilio
scroll() is defined in the spec proposal, and there is a temporary spec:
https://drafts.csswg.org/scroll-animations-1/rewrite#scroll-notation.

The spec is still under development, so we don't drop the orignal
scroll-timeline at rule. Instead, we add a new scroll() notation to
animation-timeline, and support both syntax for now.

Differential Revision: https://phabricator.services.mozilla.com/D143417
2022-04-21 17:05:17 +00:00
Noemi Erli
7fc820a55c Backed out 4 changesets (bug 1737918) for causing bustages in ScrollTimeline.cpp CLOSED TREE
Backed out changeset cecdd071c1aa (bug 1737918)
Backed out changeset fcc5ecd364e4 (bug 1737918)
Backed out changeset f7bf3143e4a7 (bug 1737918)
Backed out changeset a143d2e54fb9 (bug 1737918)
2022-04-21 01:21:14 +03:00
Boris Chiou
7bde8f7c47 Bug 1737918 - Part 1: Add scroll() to animation-timeline for style system. r=emilio
scroll() is defined in the spec proposal, and there is a temporary spec:
https://drafts.csswg.org/scroll-animations-1/rewrite#scroll-notation.

The spec is still under development, so we don't drop the orignal
scroll-timeline at rule. Instead, we add a new scroll() notation to
animation-timeline, and support both syntax for now.

Differential Revision: https://phabricator.services.mozilla.com/D143417
2022-04-20 20:28:52 +00:00
Emilio Cobos Álvarez
a7977e5e52 Bug 1765550 - Move transitions and animations to nsStyleUIReset. r=dshin
This mostly just moves code around, to minimize potential behavior
changes. There are some cleanups that we should try to do long term
(this "have an array with n different counts" is pretty weird).

But for now this should unblock people.

The destination struct (nsStyleUIReset) was chosen mainly because it's
small and non-inherited, and it doesn't seem like a worse place than
nsStyleDisplay.

Differential Revision: https://phabricator.services.mozilla.com/D144183
2022-04-20 15:13:54 +00:00
David Shin
fa30ed0b4a Bug 1755565 - Implement contain: inline-size. r=emilio,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D143501
2022-04-19 17:44:16 +00:00
David Shin
212d8b9c35 Bug 1759621 - Migrate <th> text-align behaviour from presentation hint to UA CSS. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D142494
2022-04-01 22:57:05 +00:00
Emilio Cobos Álvarez
f1d6e24e61 Bug 1762088 - Implement parsing / serialization for container{,-type,-name} CSS properties. r=firefox-style-system-reviewers,layout-reviewers,boris
Two noteworthy details that may seem random otherwise:

 * Moving values around in nsStyleDisplay is needed so that the struct
   remains under the size limit that we have to avoid jumping allocator
   buckets.

 * All the test expectation churn is because tests depend on
   `container-type: size` parsing to run, and now they run. Tests for
   the relevant bits I implemented are passing, with the only exception
   of some `container-name-computed.html` failures which are
   https://github.com/w3c/csswg-drafts/issues/7181. Safari agrees with
   us there.

Other notes when looking at the spec and seeing how it matches the
implementation:

 * `container` syntax doesn't match spec, but matches tests and sanity:
   https://github.com/w3c/csswg-drafts/issues/7180

 * `container-type` syntax doesn't _quite_ match spec, but matches tests
   and I think it's a spec bug since the definition for the missing
   keyword is gone:
   https://github.com/w3c/csswg-drafts/issues/7179

Differential Revision: https://phabricator.services.mozilla.com/D142419
2022-03-31 22:56:20 +00:00
Emilio Cobos Álvarez
d159e502ee Bug 1760734 - Put overflow: -moz-hidden-unscrollable behind a pref on Nightly. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D141759
2022-03-23 08:41:51 +00:00
Martin Robinson
65bfb5ab36 Bug 1759130 - Add support for parsing the content-visibility property from the CSS Contain specification r=emilio
Add initial parsing support for the CSS `content-visibility` attribute.
Currently these parsed values have no effect.

Differential Revision: https://phabricator.services.mozilla.com/D140834
2022-03-14 12:33:55 +00:00
Emilio Cobos Álvarez
836062858b Bug 1746248 - Style system and plumbing for mix-blend-mode: plus-lighter. r=jrmuizel,layout-reviewers,boris
Differential Revision: https://phabricator.services.mozilla.com/D137951
2022-02-09 03:15:52 +00:00
Emilio Cobos Álvarez
faa98ed83f Bug 1748174 - Remove touch-action pref. r=hiro
It's been enabled by default since ~forever.

Differential Revision: https://phabricator.services.mozilla.com/D134935
2022-01-05 12:28:07 +00:00
Emilio Cobos Álvarez
9aa5997d7a Bug 1747595 - Make color-adjust an alias of print-color-adjust as per spec. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D134779
2021-12-29 21:52:25 +00:00
Emilio Cobos Álvarez
a5f282c7d6 Bug 1746683 - Remove hwba since it's not a thing (hwb function supports alpha).
Partially backs out the previous patch.

Differential Revision: https://phabricator.services.mozilla.com/D134256
2021-12-20 02:53:31 +00:00
Emilio Cobos Álvarez
3ab09ce011 Bug 1746683 - Add hwb/a to devtools autocomplete lists. r=dholbert
The changes to the devtools directory were written automatically via ./mach devtools-css-db

Differential Revision: https://phabricator.services.mozilla.com/D134197
2021-12-18 20:09:29 +00:00
Sandor Molnar
fc2d7108fc Backed out changeset e9782fd301cc (bug 1746683) for causing mochitest failures in layout/inspector/tests/test_bug877690.html CLOSED TREE 2021-12-18 05:58:39 +02:00
Emilio Cobos Álvarez
c85bd22f07 Bug 1746683 - Add hwb/a to devtools autocomplete lists. r=dholbert
The changes to the devtools directory were written automatically via ./mach devtools-css-db

Differential Revision: https://phabricator.services.mozilla.com/D134197
2021-12-18 01:09:00 +00:00
Jonathan Kew
4518577c5b Bug 1746187 - Add CSS support for the hyphenate-character property. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133889
2021-12-16 13:47:55 +00:00
Marian-Vasile Laza
f94b4ad3f5 Backed out 4 changesets (bug 1746187) for causing xpcshell failures on test_css-properties-db.js.
Backed out changeset fa4f889dd0d3 (bug 1746187)
Backed out changeset e3fce2273109 (bug 1746187)
Backed out changeset 6733677ad35d (bug 1746187)
Backed out changeset a4375ff93414 (bug 1746187)
2021-12-16 04:51:13 +02:00
Ting-Yu Lin
5d9b6546a0 Bug 1715112 Part 3 - Enable CSS scrollbar-gutter by default. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133696
2021-12-16 01:01:46 +00:00
Jonathan Kew
91093ac5ac Bug 1746187 - Add CSS support for the hyphenate-character property. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133889
2021-12-15 23:16:49 +00:00
Marian-Vasile Laza
3317b33377 Backed out 3 changesets (bug 1715112) for causing xpcshell failures on test_css-properties-db.js.
Backed out changeset 6b91412c20e3 (bug 1715112)
Backed out changeset b7cbd5b59fc5 (bug 1715112)
Backed out changeset 9b7d73b6d81e (bug 1715112)
2021-12-16 02:06:25 +02:00
Ting-Yu Lin
0ee3b58f18 Bug 1715112 Part 3 - Enable CSS scrollbar-gutter by default. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133696
2021-12-15 22:40:57 +00:00
Emilio Cobos Álvarez
8e5a6310b1 Bug 1699220 - Add support for the revert-layer keyword. r=boris
This patch looks bigger than it is, but it's mostly because
of plumbing.

To implement revert-layer we need not only the cascade origin of the
declaration, but the whole cascade level, plus also the layer order.

In order to do this, encapsulate these two things inside a 32-bit
`CascadePriority` struct and plumb it through the rule tree and so on.
This allows us to remove the packing and unpacking of CascadeLevel,
though I kept the ShadowCascadeOrder limit for now in case we need to
reintroduce it.

Fix `!important` behavior of layers while at it (implementing it in
`CascadeLevel::cmp`, spec quote included since it was tricky to find)
since some revert-layer tests were depending on it.

The style attribute test is failing now, but follow-up commit fixes
it, see spec issue.

In terms of the actual keyword implementation, it's sort of
straight-forward: We implement revert and revert-layer in a shared
way, by storing the cascade priority that reverted it.

Differential Revision: https://phabricator.services.mozilla.com/D133372
2021-12-14 15:38:34 +00:00
Emily McDonough
94adce9789 Bug 1741973 - Implement parsing of the page property r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D131531
2021-12-07 22:11:53 +00:00
Alexandru Michis
ca938b29d7 Backed out changeset 66eb52e5da74 (bug 1741973) for causing mochitest failures in test_animation-type-longhand.html
CLOSED TREE
2021-12-07 00:01:55 +02:00
Emily McDonough
db73b5c5a0 Bug 1741973 - Implement parsing of the page property r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D131531
2021-12-06 19:34:43 +00:00
Sandor Molnar
3a48051da6 Backed out changeset 8fac157c354a (bug 1741973) for causing xpc failures in devtools/shared/tests/xpcshell/test_css-properties-db. CLOSED TREE 2021-12-03 04:17:36 +02:00
Emily McDonough
2761672451 Bug 1741973 - Implement parsing of the page property r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D131531
2021-12-02 23:37:28 +00:00
Emilio Cobos Álvarez
631dc380b7 Bug 1743803 - Regenerate devtools property-database.
MANUAL PUSH: Trivial orange fix CLOSED TREE
2021-12-01 16:13:09 +01:00
Ting-Yu Lin
5313c36cda Bug 1741774 - Support scrollbar-gutter in the style system. r=emilio
This patch adds `scrollbar-gutter` property in CSS Overflow level 3 [1] to the
style system.

`devtools/shared/css/generated/properties-db.js` is generated by
`./mach devtools-css-db`.

[1] https://drafts.csswg.org/css-overflow-3/#scrollbar-gutter-property

Differential Revision: https://phabricator.services.mozilla.com/D131460
2021-11-19 01:48:07 +00:00
Emilio Cobos Álvarez
7b6c954fcb Bug 1738616 - Enable color-scheme for nightly and early beta. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D129995
2021-11-01 10:53:36 +00:00
criss
7c1c9c2dcb Backed out 2 changesets (bug 1738616) for causing failures on system-color-compute.html. CLOSED TREE
Backed out changeset 4a5f291ac21e (bug 1738616)
Backed out changeset 900009f02d58 (bug 1738616)
2021-11-01 10:45:28 +02:00
Emilio Cobos Álvarez
8b90916c52 Bug 1738616 - Update property database.
MANUAL PUSH: Orange fix CLOSED TREE
2021-11-01 01:57:48 +01:00
Boris Chiou
33586c67a5 Bug 1676784 - Part 2: Add animation-timeline into animation shorthand. r=emilio
We use the same rule as blink: serialize the animation-timeline if
it is not the default value.

Differential Revision: https://phabricator.services.mozilla.com/D126451
2021-10-01 00:38:55 +00:00
Boris Chiou
d9f735a4b0 Bug 1676784 - Part 1: Add animation-timeline longhand property in style system. r=emilio
This patch adds the animation-timeline longhand property. For
shorthand, we will do that in the next patch.

This patch includes the aut-generated code in
devtools/shared/css/generated/properties-db.js, by `./mach devtools-css-db`.

Note:
1. we will use this property in Bug 1676791. For now, only make sure
   we parse it and serialize it correctly.
2. The syntax of animation-timeline may be updated, based on the spec
   issue: https://github.com/w3c/csswg-drafts/issues/6674.
   However, it's not a big problem to update it later, so we still can
   prototype this property based on the current version of spec.

Differential Revision: https://phabricator.services.mozilla.com/D126450
2021-10-01 00:38:54 +00:00
Emilio Cobos Álvarez
aee23c2a3f Bug 1733340 - Regenerate devtools db.
MANUAL PUSH: Bustage fix CLOSED TREE
2021-09-30 15:31:05 +02:00
Emily McDonough
34faf9c3b9 Bug 1733214 - Regenerate devtools CSS properties for page-size r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D126980
2021-09-29 20:05:46 +00:00
Emilio Cobos Álvarez
f4c013951c Bug 1732759 - Test updates. r=dholbert
Mostly progressions, as expected, but there are two bits that deserve
some attention:

 * First there are two table tests that regress (because we were
   treating fit-content like auto). However Chromium fails the
   non-tentative one also, just in a different way, so I think it's
   worth punting on changing table layout and go to the CSSWG to figure
   out if "auto" is the desired behavior here.

 * Second, there's another test that regresses
   (position-absolute-replaced-minmax.html) for the same reason, we used
   to treat the size as "auto".

   The test that regresses comes from a Chromium crash
   (https://bugs.chromium.org/p/chromium/issues/detail?id=1010798) and
   the relevant behavior different also affects other intrinsic
   keywords, so I don't think we should address it here, and is unlikely
   to be a common case in the wild if we hadn't hit this before with
   other unprefixed keywords IMO.

   In any case I filed
   https://bugzilla.mozilla.org/show_bug.cgi?id=1732780 for this
   behavior difference to investigate later.

 * Third, I removed fit-content from min-{width,height}-invalid. They
   are valid sizing keywords in css-sizing-5, and they apply to these
   properties. Other browsers also parse it.

Differential Revision: https://phabricator.services.mozilla.com/D126726
2021-09-28 11:44:33 +00:00