Commit graph

10200 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
96360cdae3 Bug 1768905 - Move size of tests to compile-time tests in the style crate. r=dshin
Same reasoning as the previous commit.

Differential Revision: https://phabricator.services.mozilla.com/D146104
2022-05-11 19:02:58 +00:00
Emilio Cobos Álvarez
2cf5c869e6 Bug 1768905 - Convert specified value tests to compile-time tests. r=dshin
These were written at a time where std::mem::size_of wasn't a `const fn` in
Rust.

Now that it is, we can make these tests live in the style crate, and the build
not to compile if they fail.

Differential Revision: https://phabricator.services.mozilla.com/D146103
2022-05-11 19:02:57 +00:00
Emilio Cobos Álvarez
85f479d39b Bug 1767837 - Use debug_unreachable!() in matches_simple_selector. r=boris
This shrinks the function by avoiding generating rather noisy panic
code.

Depends on D145486

Differential Revision: https://phabricator.services.mozilla.com/D145487
2022-05-07 04:02:26 +00:00
Emilio Cobos Álvarez
d8af45934c Bug 1767837 - Reorder some variants. r=boris
This doesn't make a difference, I was hoping it would allow us to remove the
special-casey code we have here:

  https://searchfox.org/mozilla-central/rev/997a56b018662e2940c99bbaf57a6ac9d1aa5422/servo/components/selectors/matching.rs#610-632

But it doesn't. Still I think it doesn't hurt tho, shouldn't change behavior.

Depends on D145485

Differential Revision: https://phabricator.services.mozilla.com/D145486
2022-05-07 04:02:25 +00:00
Emilio Cobos Álvarez
6ccaf80d38 Bug 1767837 - Simplify a bit hot selector-matching loop. r=boris
Note that element.clone() is just copying a couple pointers.

Have a single place where we compute the next element and check for linky-ness.
This saves a couple checks (very very minor win in the micro-benchmark I've
been looking at, but consistent).

Depends on D145484

Differential Revision: https://phabricator.services.mozilla.com/D145485
2022-05-06 23:52:23 +00:00
Emilio Cobos Álvarez
57b3d45319 Bug 1767837 - Compute hover / active quirk state lazily. r=boris
This makes the inner function much smaller which improves selector-matching
performance very mildly for the benchmarks I've been looking at. Also, this
should help selector matching on quirks mode by only doing this when we
actually find :hover / :active pseudo-classes.

Differential Revision: https://phabricator.services.mozilla.com/D145484
2022-05-06 23:52:23 +00:00
David Shin
23aa8d22fb Bug 1764126 - Part 1: Implement piecewise linear function. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D145256
2022-05-06 11:49:53 +00:00
Emilio Cobos Álvarez
c71796d3cd Bug 1767307 - Fix layer statement rules with multiple layer names.
MANUAL PUSH: Trivial orange fix CLOSED TREE.
2022-05-06 13:57:08 +02:00
Emilio Cobos Álvarez
d5100d0cd4 Bug 1767307 - Track @container condition id in style rules. r=boris
Much like we track layer rules. Consolidate that "containing rule state
we pass down while building the cascade data" in a single struct that we
can easily restore.

For now, do nothing with it. I want to land this patch separately
because it touches the Rule struct and CascadeData rebuilds, which both
are performance sensitive.

Its layout shouldn't change because I also changed LayerId to be a u16
(this shouldn't matter in practice, since LayerOrder is already a u16).

Differential Revision: https://phabricator.services.mozilla.com/D145243
2022-05-06 10:30:01 +00:00
Emilio Cobos Álvarez
b15e2bd5ee Bug 1767625 - Simplify selector flags setup even more. r=boris
In my investigation for bug 1766439, I am digging into why selector
matching regressed.

It doesn't help that the selector-matching code is instantiated a
gazillion times (so there's a ton of copies of the relevant functions).

This was needed in the past because we had different ways of setting the
selector flags on elements, but I unified that recently and now we only
need to either set them or not. That is the kind of thing that
MatchingContext is really good for, so pass that instead on
MatchingContext creation.

Differential Revision: https://phabricator.services.mozilla.com/D145428
2022-05-06 08:17:20 +00:00
Emilio Cobos Álvarez
b73c08693f Bug 1768004 - Remove proton places tooltip code. r=dao
There's nobody working on it, and tooltips should hopefully be nice
enough after recent changes (bug 1765423).

Having it enabled causes artifacts like bug 1767815 comment 3. We can
always rescue this from hg history if needed.

Differential Revision: https://phabricator.services.mozilla.com/D145621
2022-05-05 16:18:17 +00:00
Emilio Cobos Álvarez
351616349b Bug 1469174 - Implement media feature expression multi-range syntax. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D145231
2022-05-03 15:50:13 +00:00
Emilio Cobos Álvarez
997a56b018 Bug 1759686 - Extend part 4 to resolve keyword sizes correctly, and reuse existing code to turning lengths into absolute pixels. r=jfkthame
I think it doesn't make sense to support em/percentages without
supporting smaller/bigger/other font-relative things.

I have many questions about how other units like viewport-units etc are
supposed to behave. Blink seems to resolve viewport units to zero:

  https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/css/resolver/font_style_resolver.cc;l=15-27;drc=5e62802ab420dc1743a1824ec4b537a730b2b24b

Which might be reasonable, but I think keeping a simple model consistent
with what other code like DOMMatrix does seems better for now.

Differential Revision: https://phabricator.services.mozilla.com/D144455
2022-05-03 12:39:10 +00:00
Emilio Cobos Álvarez
8417767d09 Bug 1469174 - Refactor media feature expression representation in preparation to support multi-range syntax. r=boris
No behavior change.

Depends on D145229

Differential Revision: https://phabricator.services.mozilla.com/D145230
2022-05-02 23:40:28 +00:00
Emilio Cobos Álvarez
46a3603363 Bug 1469174 - Factor out parsing the query feature name. r=boris
No behavior change.

Differential Revision: https://phabricator.services.mozilla.com/D145229
2022-05-02 20:27:55 +00:00
Emilio Cobos Álvarez
6a8d7ff269 Bug 1766889 - Fix insertRule with layer statements before imports. r=firefox-style-system-reviewers,layout-reviewers,boris
We need to do a bit more nuanced check because @layer statements might
go before imports.

Differential Revision: https://phabricator.services.mozilla.com/D144996
2022-04-29 11:29:37 +00:00
Emilio Cobos Álvarez
14f8cafbc3 Bug 1766655 - Introduce Optional<T> to represent optional values in the style system. r=dshin
cross-fade() was kinda doing this in its own way with PercentOrNone, but
since now we have more use-cases for this we should probably make this a
slightly more general solution.

I added some convenience APIs, but they're unused as of this patch so
let me know if you want them gone.

Differential Revision: https://phabricator.services.mozilla.com/D144831
2022-04-27 15:30:54 +00:00
Emilio Cobos Álvarez
0f45f078ef Bug 1766020 - Add support for parsing container-query-specific features. r=firefox-style-system-reviewers,layout-reviewers,boris
There are some mediaqueries-5 features that we still don't support and
explain the remaining failures in at-container-{parsing,serialization}.

Differential Revision: https://phabricator.services.mozilla.com/D144446
2022-04-27 10:52:32 +00:00
Narcis Beleuzu
fc786a2667 Backed out 1 changesets (bug 1766020) for bc failures on browser_modal_print.js . CLOSED TREE
Backed out changeset 10118450bd7f (bug 1766020)
2022-04-27 12:34:31 +03:00
Emilio Cobos Álvarez
490d5e355e Bug 1766020 - Add support for parsing container-query-specific features. r=firefox-style-system-reviewers,layout-reviewers,boris
There are some mediaqueries-5 features that we still don't support and
explain the remaining failures in at-container-{parsing,serialization}.

Differential Revision: https://phabricator.services.mozilla.com/D144446
2022-04-27 07:32:07 +00:00
Emilio Cobos Álvarez
7d2ab62323 Bug 1766046 - cleanup animation-name. r=boris
Make the representation the same between Gecko and Servo code. This will
enable further clean-ups in the future.

Make serialization be correct, serializing as identifier unless it's an
invalid one (in which case we serialize as a string).

This changes our stringification behavior in the specified style, but
now it will match the computed style and be more correct over-all.

Differential Revision: https://phabricator.services.mozilla.com/D144473
2022-04-25 08:23:51 +00:00
Butkovits Atila
206c96bde0 Backed out changeset dfec425c53fe (bug 1766046) for causing wpt failures at animation-timeline-computed.html. CLOSED TREE 2022-04-25 11:06:51 +03:00
Emilio Cobos Álvarez
e097b4be55 Bug 1765999 - Move some of the media query code to a more generic queries module. r=hiro
No behavior change, just moving and renaming files.

The code in the "queries" module will be shared between @media and
@container.

@media has some other code that container queries doesn't need like
MediaList / MediaType / etc. That remains in the media_queries module.

Differential Revision: https://phabricator.services.mozilla.com/D144435
2022-04-24 21:48:02 +00:00
Emilio Cobos Álvarez
63420746b0 Bug 1766046 - cleanup animation-name. r=boris
Make the representation the same between Gecko and Servo code. This will
enable further clean-ups in the future.

Make serialization be correct, serializing as identifier unless it's an
invalid one (in which case we serialize as a string).

This changes our stringification behavior in the specified style, but
now it will match the computed style and be more correct over-all.

Differential Revision: https://phabricator.services.mozilla.com/D144473
2022-04-24 21:47:31 +00:00
Emilio Cobos Álvarez
c42ed6e96e Bug 1765746 - Tweak contain bitflag definition order to avoid static constructors. r=dshin
This has no behavior change otherwise. The STRICT definition depended on
SIZE, which was defined later. That's fine in Rust, but in C++ it causes
the initialization to be dynamic because it doesn't have the definition
of SIZE yet (ugh).

This is the fix for the regression, though the following patch turns on
constexpr support in cbindgen, which would've caught this at build-time,
and guarantees that we don't have extra static constructors.

Differential Revision: https://phabricator.services.mozilla.com/D144316
2022-04-21 17:23:38 +00:00
Boris Chiou
b34f4349a7 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
560b5ccdb5 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
e8ad45ee42 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
Noemi Erli
276b91ca80 Backed out changeset 7985a1fa0789 (bug 1764768) for causing multiple failures CLOSED TREE 2022-04-20 22:25:02 +03:00
Emilio Cobos Álvarez
485bae6d11 Bug 1764768 - Don't truncate viewport units at computed value time. r=dholbert
Instead, make the behavior consistent across all <length-percentage>
values (by truncating instead of rounding). This is the already-existing
behavior for calc() and percentages, but with this patch we also apply
it to plain length-flavored <length-percentage> values (this is needed
to avoid regressing things like bug 989802).

Regular <length>s keep rounding, to preserve existing behavior. We can
consider changing that in a follow-up if need be.

Differential Revision: https://phabricator.services.mozilla.com/D143857
2022-04-20 17:22:36 +00:00
Emilio Cobos Álvarez
25f4c3b0e6 Bug 1765489 - Make media feature evaluation take a computed::Context. r=dshin
This has no behavior change right now, but will simplify sharing code
with container queries.

Container queries will have container information in the
computed::Context (this is necessary anyways for container-based units),
so this avoids having to have different code for media and container
queries.

Differential Revision: https://phabricator.services.mozilla.com/D144152
2022-04-20 15:30:02 +00:00
Emilio Cobos Álvarez
ee2dcf8fe6 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
Emilio Cobos Álvarez
086cb3d7f3 Bug 1765401 - Simplify media query evaluation code a bit. r=boris
This patch:

 * Removes generic <ident> support for media features. These were used
   for some privileged media features but are no longer used.

 * Simplifies media feature getters by shifting the responsibility of
   dealing with RangeOrOperator to the caller. This makes it easier to
   implement container-query / mediaqueries-4 syntax, and also cleans up
   the code a bunch.

There should be no change in behavior.

Differential Revision: https://phabricator.services.mozilla.com/D144051
2022-04-20 09:01:25 +00:00
Butkovits Atila
df73a7b008 Backed out changeset 3d29e3e5525b (bug 1765401) for causing reftest failures at mediaqueries. CLOSED TREE 2022-04-20 09:53:50 +03:00
Emilio Cobos Álvarez
ee81fcef78 Bug 1765401 - Simplify media query evaluation code a bit. r=firefox-style-system-reviewers,layout-reviewers,boris
This patch:

 * Removes generic <ident> support for media features. These were used
   for some privileged media features but are no longer used.

 * Simplifies media feature getters by shifting the responsibility of
   dealing with RangeOrOperator to the caller. This makes it easier to
   implement container-query / mediaqueries-4 syntax, and also cleans up
   the code a bunch.

There should be no change in behavior.

Differential Revision: https://phabricator.services.mozilla.com/D144051
2022-04-20 05:50:46 +00:00
David Shin
ec93876623 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
Emilio Cobos Álvarez
5d9aa3dd08 Bug 1764768 - Don't go through app-units-ratio to convert absolute lengths. r=dholbert
This doesn't change behavior on its own, but the current code introduces
some minor floating point error which we can avoid, and which would
cause failures with the other patch on the bug.

Differential Revision: https://phabricator.services.mozilla.com/D143942
2022-04-19 08:39:29 +00:00
Emilio Cobos Álvarez
8db82eda4b Bug 1765006 - Clean-up viewport unit resolution a bit. r=hiro
I should've caught this when reviewing the new viewport units but alas :-)

Differential Revision: https://phabricator.services.mozilla.com/D143856
2022-04-18 00:58:19 +00:00
Emilio Cobos Álvarez
19938e39bf Bug 1764217 - Fix visited handling after bug 1763750. r=hiro
Before bug 1763750, we unconditionally called compute_writing_mode,
which got the writing mode from the cascade mode for visited styles.

However after that bug we only do that if we apply any
writing-mode-related property.

We could just call compute_writing_mode unconditionally, but instead it
seems better to skip all that work for visited cascade and reuse the
mechanism introduced in that bug to only apply the visited-dependent
longhands.

We assert that all visited-dependent longhands are "late" longhands, so
as to also avoid applying the font group and such.

Differential Revision: https://phabricator.services.mozilla.com/D143490
2022-04-13 23:11:44 +00:00
Nika Layzell
584d8e8388 Bug 1713773 - Part 2: Join servo style threads during shutdown, r=emilio
I was unable to change the BLOOM_KEY field to no longer be leaked, as the TLS
is also accessed on the main thread, which is not exited before the leak
checker shuts down.

Differential Revision: https://phabricator.services.mozilla.com/D143529
2022-04-12 20:22:24 +00:00
Emilio Cobos Álvarez
39d7652297 Bug 1656363 - Implement prefers-contrast: custom and let prefers-contrast ride the trains. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D143198
2022-04-12 09:07:18 +00:00
Hiroyuki Ikezoe
9fad1de770 Bug 1610815 - Implement new *vi and *vb units. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D143253
2022-04-12 04:06:38 +00:00
Hiroyuki Ikezoe
64b87a50a6 Bug 1610815 - Implement new {small,large,dynamic} viewport units. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D143252
2022-04-12 04:06:38 +00:00
Emilio Cobos Álvarez
46b85a0f91 Bug 1763750 - Tweak cascade priority to split writing-mode and font properties. r=hiro
This makes the worst case for cascade performance slightly more
expensive (4 rather than three declaration walks), but my hope is that
it will make the average case faster, since the best case is now just
two walks instead of three, and writing mode properties are somewhat
rare.

This needs a test, but needs to wait until the writing-mode dependent
viewport units land (will wait to land with a test).

Differential Revision: https://phabricator.services.mozilla.com/D143261
2022-04-08 15:55:11 +00:00
Emilio Cobos Álvarez
37716ddbc3 Bug 1763644 - Add basic @container rule parsing and boilerplate. r=firefox-style-system-reviewers,layout-reviewers,boris
For now parse a MediaFeatureCondition. That needs being made more
specific, but that is probably worth its own patch.

Differential Revision: https://phabricator.services.mozilla.com/D143192
2022-04-08 04:15:40 +00:00
Butkovits Atila
3e31b63b4f Backed out 2 changesets (bug 1763644, bug 1762474)for causing failures at idlharness.html. CLOSED TREE
Backed out changeset 6c5ac0c99219 (bug 1762474)
Backed out changeset 8b625593255f (bug 1763644)
2022-04-08 07:01:01 +03:00
Emilio Cobos Álvarez
898b3335be Bug 1763644 - Add basic @container rule parsing and boilerplate. r=firefox-style-system-reviewers,layout-reviewers,boris
For now parse a MediaFeatureCondition. That needs being made more
specific, but that is probably worth its own patch.

Differential Revision: https://phabricator.services.mozilla.com/D143192
2022-04-08 00:01:26 +00:00
Butkovits Atila
c1d171544c Backed out 2 changesets (bug 1763644, bug 1762474) for causing failures at test_interfaces.html. CLOSED TREE
Backed out changeset 6a588f6d08f7 (bug 1762474)
Backed out changeset ff486de30883 (bug 1763644)
2022-04-08 02:26:22 +03:00
Emilio Cobos Álvarez
fc117ea85d Bug 1763644 - Add basic @container rule parsing and boilerplate. r=firefox-style-system-reviewers,layout-reviewers,boris
For now parse a MediaFeatureCondition. That needs being made more
specific, but that is probably worth its own patch.

Differential Revision: https://phabricator.services.mozilla.com/D143192
2022-04-07 22:06:15 +00:00
Emilio Cobos Álvarez
6553f27967 Bug 1762298 - Inherit used color-scheme from embedder <browser> elements. r=nika,dao,Gijs
This allows popups and sidebars to use the chrome preferred
color-scheme.

This moves the responsibility of setting the content-preferred color
scheme to the appropriate browsers to the front-end (via tabs.css).

We still return the PreferredColorSchemeForContent() when there's no
pres context (e.g., for display:none in-process iframes). We could
potentially move a bunch of the pres-context data to the document
instead, but that should be acceptable IMO as for general web content
there's no behavior change in any case.

Differential Revision: https://phabricator.services.mozilla.com/D142578
2022-04-04 18:22:04 +00:00
Emilio Cobos Álvarez
f5cdddf6ef Bug 1762796 - Deduplicate TokenList values faster. r=smaug
Remember whether we have already de-duplicated them once and avoid doing
that again.

This is an alternative approach that doesn't add overhead to attribute
setting in the general case.

Differential Revision: https://phabricator.services.mozilla.com/D142813
2022-04-04 14:23:23 +00:00
David Shin
1fc2ad0158 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
Molnar Sandor
8c2a7b41fb Backed out changeset caf3fd368a8e (bug 1759621) for causing xpc failures in /test_css-properties-db.js CLOSED TREE 2022-04-02 00:18:00 +03:00
David Shin
e75208ec5b 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 20:24:19 +00:00
Emilio Cobos Álvarez
f9cf190188 Bug 1762088 - Remove assert that doesn't hold for text-decorations because of presentation hints.
MANUAL PUSH: Orange fix CLOSED TREE
2022-04-01 02:27:35 +02:00
Emilio Cobos Álvarez
b9e7c7653c 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
bfde1cd835 Bug 1762088 - Allow to derive Parse/ToCss/SpecifiedValueInfo on bitflags. r=firefox-style-system-reviewers,layout-reviewers,boris
We keep getting this pattern of properties that have a set of joint and
disjoint flags, and copy-pasting or writing the same parsing and
serialization code in slightly different ways.

container-type is one such type, and I think we should have a single way
of dealing with this, thus implement deriving for various traits for
bitflags, with an attribute that says which flags are single vs mixed.

See docs and properties I ported. The remaining ones I left TODOs with,
they are a bit trickier but can be ported with some care.

Differential Revision: https://phabricator.services.mozilla.com/D142418
2022-03-31 22:05:02 +00:00
Hiroyuki Ikezoe
25d4e998dd Bug 1760222 - Ignore unchanged property for scroll-linked effect detector. r=hiro
I think this is cleaner.

Differential Revision: https://phabricator.services.mozilla.com/D141737
2022-03-27 23:40:24 +00:00
Emilio Cobos Álvarez
1162a3c578 Bug 1666059 - Really honor background-color: transparent in HCM even for form controls. r=morgan
I forgot we were doing this "revert-or-initial" shenanigans (which is needed
for stuff like link colors to be honored), so we need to early-return.

Use a more explicit test rather than a reftest for this.

Differential Revision: https://phabricator.services.mozilla.com/D142063
2022-03-25 18:15:43 +00:00
Emilio Cobos Álvarez
829400449f Bug 1760579 - layout.css.moz-locale-dir.content.enabled. r=dholbert
We successfully removed these from content in bug 1740230 (Firefox 96).

Differential Revision: https://phabricator.services.mozilla.com/D141727
2022-03-25 14:59:00 +00:00
Emilio Cobos Álvarez
dd020d602a Bug 1760342 - Remove :-moz-lwtheme-{brighttext,darktext}. r=dao,Gijs
They are just convenience for :root[lwthemetextcolor="light"] (and dark,
respectively), but they generally shouldn't be used for dark mode
theming. In the past it was the only way to do it but now we have
prefers-color-scheme.

While at it, change lwthemetextcolor to be "lwtheme-brighttext" for
consistency with similar code we have for popups etc, and move it to
_setDarkModeAttributes.

While at it, remove layout.css.moz-lwtheme.content.enabled (which is
false always, we unshipped these from content successfully).

Differential Revision: https://phabricator.services.mozilla.com/D141593
2022-03-25 14:58:59 +00:00
Brad Werth
99d39f2636 Bug 1751217 Part 1: Support media queries for dynamic-range and video-dynamic-range. r=emilio
This is a stub that only matches "standard" for all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D141053
2022-03-24 18:19:49 +00:00
Emilio Cobos Álvarez
80fa6eae2f Bug 1680285 - Simplify selector flag setting now that flag setting is atomic. r=nika,decoder
These bits are write-only, actually, and we don't even need to read
them.

Differential Revision: https://phabricator.services.mozilla.com/D141888
2022-03-24 15:09:47 +00:00
Emilio Cobos Álvarez
a801665d19 Bug 1758223 - Remove some no longer used use statements.
MANUAL PUSH: Bustage fix CLOSED TREE
2022-03-24 11:14:06 +01:00
Emilio Cobos Álvarez
597c2fe947 Bug 1758223 - Use atomic ops to read / write node flags from stylo. r=nika
The flags stylo cares about reading and writing potentially at the same
time are disjoint, so there's no need for any strong memory ordering.

Differential Revision: https://phabricator.services.mozilla.com/D141829
2022-03-24 10:03:12 +00:00
Cristian Tuns
f0ccbd470c Backed out 4 changesets (bug 1760222) for causing reftest failures on disable-apz-for-sle-pages.html CLOSED TREE
Backed out changeset 1bf5e1ca3746 (bug 1760222)
Backed out changeset aff6bf37365d (bug 1760222)
Backed out changeset e9b3e3f52aec (bug 1760222)
Backed out changeset f65d2d719277 (bug 1760222)
2022-03-24 02:36:42 -04:00
Butkovits Atila
004df17a21 Backed out changeset 8a3be63619de (bug 1758223) for causing bustages. CLOSED TREE 2022-03-24 06:31:29 +02:00
Emilio Cobos Álvarez
ec82ced641 Bug 1758223 - Use atomic ops to read / write node flags from stylo. r=nika
The flags stylo cares about reading and writing potentially at the same
time are disjoint, so there's no need for any strong memory ordering.

Differential Revision: https://phabricator.services.mozilla.com/D141829
2022-03-24 04:08:18 +00:00
Hiroyuki Ikezoe
da3af8126d Bug 1760222 - Ignore unchanged property for scroll-linked effect detector. r=hiro
I think this is cleaner.

Differential Revision: https://phabricator.services.mozilla.com/D141737
2022-03-24 02:20:46 +00:00
Butkovits Atila
fbd6ad4819 Backed out 5 changesets (bug 1751217) for causing failures at dynamic-range.html. CLOSED TREE
Backed out changeset f0a4879c9709 (bug 1751217)
Backed out changeset 50b6310935d4 (bug 1751217)
Backed out changeset bfa455b8bb1a (bug 1751217)
Backed out changeset 277064a1facb (bug 1751217)
Backed out changeset 21e1650b12db (bug 1751217)
2022-03-23 22:22:54 +02:00
Brad Werth
930a7aac22 Bug 1751217 Part 1: Support media queries for dynamic-range and video-dynamic-range. r=emilio
This is a stub that only matches "standard" for all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D141053
2022-03-23 18:23:00 +00:00
Marian-Vasile Laza
77029463ac Backed out 5 changesets (bug 1751217) for causing wpt(Screen-pixelDepth-Screen-colorDepth001.html) and mochitest(test_media_queries.html) failures. CLOSED TREE
Backed out changeset 60a4497fd1f5 (bug 1751217)
Backed out changeset 785f4c5f719d (bug 1751217)
Backed out changeset 81e41f7a1ee4 (bug 1751217)
Backed out changeset d35c5648c936 (bug 1751217)
Backed out changeset f16305c6ec83 (bug 1751217)
2022-03-23 10:11:53 -07:00
Brad Werth
2cd3c4b978 Bug 1751217 Part 1: Support media queries for dynamic-range and video-dynamic-range. r=emilio
This is a stub that only matches "standard" for all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D141053
2022-03-23 15:24:37 +00:00
Emilio Cobos Álvarez
b75c39ad35 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
Emilio Cobos Álvarez
6d5d698b6e Bug 1666059 - Honor background-color: transparent in forced colors mode. r=morgan
See comment as for why, and linked bugs, in particular:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1755713#c16

And the following screenshot for example.

Differential Revision: https://phabricator.services.mozilla.com/D141514
2022-03-21 22:36:13 +00:00
Cristian Tuns
416761cf78 Backed out changeset 1b1df0fb2320 (bug 1666059) for causing mochitest failures in test_dont_use_document_colors.html CLOSED TREE 2022-03-21 16:18:59 -04:00
Emilio Cobos Álvarez
eebea40065 Bug 1666059 - Honor background-color: transparent in forced colors mode. r=morgan
See comment as for why, and linked bugs, in particular:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1755713#c16

And the following screenshot for example.

Differential Revision: https://phabricator.services.mozilla.com/D141514
2022-03-21 17:54:03 +00:00
Martin Robinson
c7ed0eb07c 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
9399d71846 Bug 1758974 - Reuse inherited custom properties if they didn't change after resolution. r=jwatt
This should be cheap and gives us a lot of memory savings for the page
on the bug, by deduplicating the inherited properties between parent and
children.

WebKit implements a similar optimization.

Differential Revision: https://phabricator.services.mozilla.com/D140826
2022-03-11 18:12:56 +00:00
Emilio Cobos Álvarez
93e19dc4dd Bug 1758974 - Make custom-property substitution only traverse variables which could have references. r=jwatt
If a name is not in self.seen, it means we've inherited it from our
parent. That in turn means that it can't have any variable reference
(because we inherit the computed variables) and we can skip the work of
traversing it, as we'd hit the early-return in traverse() anyways.

This doesn't fix the memory usage issue of the page on the bug, which
has a giant list of properties on the root and then a custom property
specified on all elements, but should significantly reduce the time we
spend iterating over custom properties for all those elements.

Differential Revision: https://phabricator.services.mozilla.com/D140825
2022-03-11 18:12:55 +00:00
Emilio Cobos Álvarez
5fed8de04b Bug 1754547 - Generalize moz-os-version into moz-platform. r=dao,preferences-reviewers,Gijs
Allow differentiating non-windows platforms on it.

Differential Revision: https://phabricator.services.mozilla.com/D138431
2022-02-10 15:50:31 +00:00
Emilio Cobos Álvarez
4a152fdf3e 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
Mike Hommey
2239244615 Bug 1751331 - Use the mozbuild crate in servo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D136562
2022-01-25 21:29:51 +00:00
Mike Hommey
e7c54fc571 Bug 1751331 - Remove MOZ_DIST. r=firefox-build-system-reviewers,mhentges
As mentioned in bug 1747354, the location of the dist directory is
relied to be $topobjdir/dist, so just use that consistently rather
than getting it from a separate variable for rust build scripts.

Differential Revision: https://phabricator.services.mozilla.com/D136556
2022-01-25 21:29:49 +00:00
criss
592389ca2d Backed out 10 changesets (bug 1751331) for causing bustages. CLOSED TREE
Backed out changeset 5ce212465a26 (bug 1751331)
Backed out changeset 14d62b8ffa5a (bug 1751331)
Backed out changeset 76f46bd9afa1 (bug 1751331)
Backed out changeset 147faaad046f (bug 1751331)
Backed out changeset f85b049d12f9 (bug 1751331)
Backed out changeset 16d8d3f8378b (bug 1751331)
Backed out changeset 1cd9386a3927 (bug 1751331)
Backed out changeset 20faacba6db6 (bug 1751331)
Backed out changeset 7d17f75bcb38 (bug 1751331)
Backed out changeset 28b9aab1f174 (bug 1751331)
2022-01-25 13:00:25 +02:00
Mike Hommey
3269a65b4f Bug 1751331 - Use the mozbuild crate in servo. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D136562
2022-01-25 09:03:03 +00:00
Mike Hommey
5999e70213 Bug 1751331 - Remove MOZ_DIST. r=firefox-build-system-reviewers,mhentges
As mentioned in bug 1747354, the location of the dist directory is
relied to be $topobjdir/dist, so just use that consistently rather
than getting it from a separate variable for rust build scripts.

Differential Revision: https://phabricator.services.mozilla.com/D136556
2022-01-25 09:03:01 +00:00
Emily McDonough
7dade2da45 Bug 1750884 - Add style_traits::ToCss for AtomIdent r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D136290
2022-01-24 17:29:20 +00:00
Emily McDonough
8542878028 Bug 1740364 Part 1 - Implement basic @page-rule selector parsing r=emilio
This does not support any of the pseudo page types.

Differential Revision: https://phabricator.services.mozilla.com/D131532
2022-01-21 21:52:43 +00:00
Mike Hommey
56a7d24688 Bug 1751340 - Upgrade darling to 0.13.1. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D136568
2022-01-21 21:23:19 +00:00
Emilio Cobos Álvarez
edb8762a6e Bug 1751088 - Choose tabpanel background based on content preferred color-scheme. r=dao
If the theme is dark but user prefers light pages, the background of the
tabpanel should arguably be light, since it can be seen across some
navigations.

Expose a -moz-content-prefers-color-scheme media query to chrome pages
so that our UI can correctly query it (and remove the unused -moz-proton
atom while at it).

Differential Revision: https://phabricator.services.mozilla.com/D136437
2022-01-20 12:09:13 +00:00
Emilio Cobos Álvarez
096bfd3558 Bug 1747934 - Apply line-height to ::marker. r=layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D136313
2022-01-19 16:43:34 +00:00
Emilio Cobos Álvarez
4924555d6d Bug 1746084 - Avoid generating InterpolateMatrix operations if there are no size dependencies. r=hiro
The issue here is that we end up with a transition between mismatched
transform lists that ends up generating an InterpolateMatrix {}
operation. So far so good, but we end up interpolating that a lot of
times and generating an unboundedly-deep operation list.

This implementas an optimization that flattens them to a single matrix
when possible (when there's no dependencies on the containing box).

This is similar to:

  2b89cc4df4

We fix the to_pixel_length() behavior for LenghtPercentage to be
correct (and update callers to preserve behavior).

Differential Revision: https://phabricator.services.mozilla.com/D134784
2022-01-05 19:10:28 +00:00
Emilio Cobos Álvarez
24dc10c691 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
b975e781a1 Bug 1747922 - Rename StyleMathMLMathVariant -> StyleMathVariant.
MANUAL PUSH: Trivial rename.
2021-12-30 02:35:54 +01:00
Neia Finch
b205467245 Bug 1747922 - Replace MathML font constants with enum r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D134802
2021-12-30 00:34:27 +00:00
Emilio Cobos Álvarez
6b5a53d800 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
f4a133a1fd Bug 1747037 - Shrink maps if needed after stylist rebuilds. r=bholley
Hashbrown grows a lot sometimes making us waste a lot of memory. Shrink
some of these maps after CascadeData rebuild / stylesheet collection
invalidation.

Differential Revision: https://phabricator.services.mozilla.com/D134716
2021-12-28 17:19:31 +00:00
Emilio Cobos Álvarez
149bb0ed03 Bug 1747349 - Remove ThinBoxedSlice. r=xidorn
The only remaining consumers are ::-moz-tree pseudo-elements (we used to
use ThinBoxedSlice for other data structures in the past).

Those are not particularly performance sensitive so I think just
double-boxing is fine. In the future, if we wanted to avoid the double
indirection, we could probably use the "thin" crate
(https://docs.rs/thin) or similar, which stores the length of the slice
along with the allocation, making the pointer thin in all
configurations, much like "ThinArc" does:

  https://searchfox.org/mozilla-central/rev/1ce2eea39442190a71a1f8f650d098f286bf4a01/servo/components/servo_arc/lib.rs#891

In practice though, I don't think it's particularly worth it for this
specific case.

Differential Revision: https://phabricator.services.mozilla.com/D134672
2021-12-25 06:25:35 +00:00
Emilio Cobos Álvarez
2ac050afaa Bug 1746920 - Use ThreadPool::scope_fifo in style. r=TYLin
It does the same, but it saves an indentation level:

  https://searchfox.org/mozilla-central/rev/a11b63915bd7810a03635d733123448ab5bfcad3/third_party/rust/rayon-core/src/thread_pool/mod.rs#217

Differential Revision: https://phabricator.services.mozilla.com/D134321
2021-12-20 23:55:36 +00:00
Emilio Cobos Álvarez
461f89a0bb 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
61ea030cc4 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
Emilio Cobos Álvarez
be1a744435 Bug 1744102 - Remove servo/components/{hashglobe,fallible} in favor of try_reserve. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D134194
2021-12-18 09:54:24 +00:00
Sandor Molnar
e45ac2363d 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
bd470ae24f 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
Emilio Cobos Álvarez
8fdcc6a236 Bug 1746391 - Deal with layers and at-rules. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D134010
2021-12-17 12:58:32 +00:00
Jonathan Kew
20ec7ce89f 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
e3ec8630b1 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
Jonathan Kew
83df1246c1 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
Emilio Cobos Álvarez
b4eb3f9643 Bug 1745894 - Don't draw window decorations when painting headerbar on wayland. r=stransky
This is a better fix for the double decorations than clipping them using
CSS.

Differential Revision: https://phabricator.services.mozilla.com/D133871
2021-12-15 13:12:01 +00:00
Emilio Cobos Álvarez
f13595acc8 Bug 1745233 - Update CSSOM for layer rules to the spec. r=firefox-style-system-reviewers,layout-reviewers,boris
Pretty mechanical.

Tests are in https://wpt.live/css/css-cascade/layer-rules-cssom.html
which (with a fix for @import tests which I'll submit separately) we
pass.

Sync for that is bug 1743936.

Differential Revision: https://phabricator.services.mozilla.com/D133387
2021-12-14 15:39:38 +00:00
Emilio Cobos Álvarez
d84300e6e7 Bug 1699220 - Fix style attribute important and revert-layer behavior. r=firefox-style-system-reviewers,layout-reviewers,boris
By modeling it as a separate layer that behaves somewhat specially.

See https://github.com/w3c/csswg-drafts/issues/6872.

The remaining revert-layer tests that we fail are because either we
don't implement a feature (like @property) or because it's used in
keyframes (where revert is a bit unspecified and we have existing
issues with it).

Differential Revision: https://phabricator.services.mozilla.com/D133373
2021-12-14 15:38:34 +00:00
Emilio Cobos Álvarez
dae5c87696 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
Jonathan Kew
9477e32f16 Bug 1531223 - Add support for the 'ic' font-relative unit. r=emilio
This is a "simplified" implementation of 'ic', similar to what Safari Preview
currently supports: it only considers the advance of U+6C34 if found in the
first available font, and otherwise falls back to the default of 1em.

(The spec allows for this "in cases where it is impossible or impractical to
determine the ideographic advance measure".)

Differential Revision: https://phabricator.services.mozilla.com/D132818
2021-12-08 17:07:05 +00:00
Jonathan Kew
719dd66863 Bug 1702924 - Add support for the 'cap' font-relative unit. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D133101
2021-12-08 12:20:40 +00:00
Boris Chiou
1ce11d0155 Bug 1676791 - Part 10: Make source and scroll-offsets accept only default value. r=emilio
Based on our previous patches, we only support default behavior for
source and scroll-offsets:
1. source:auto
2. scroll-offsets: none
3. scroll-offsets: auto, auto, ...

So update the parser for them. We expect to remove whole
@scroll-timeline in Bug 1733260, so now only do a tiny update in parser.

Differential Revision: https://phabricator.services.mozilla.com/D132417
2021-12-08 01:16:31 +00:00
Boris Chiou
74f0bd8a0c Bug 1676791 - Part 8: Hook scroll-timeline rule into Cascade data and use it for CSS animations. r=emilio,hiro
We hook the rule into cascade data, and so we can look it up by timeline
name. Now we only use StyleScrollDirection from @scroll-timeline rule.
`source` and `scroll-offsets` are skipped now and use the default values
instead because I'm pretty sure the syntax will be changed in Bug 1733260,
and `scroll-offsets` may be obsolete because the spec proposal intents to
make it be always 0% ~ 100%.

Also, add some reftests for the default `source` and `scroll-offsets`,
and different `orientation`s.

Besides, we disable at-scroll-timeline-start-end.html in Gecko because
we don't support start/end descriptors, and there are too many
intermittents in it.

Differential Revision: https://phabricator.services.mozilla.com/D126452
2021-12-08 01:16:31 +00:00
Boris Chiou
470f574f58 Bug 1676791 - Part 1: Add ScrollTimeline class. r=hiro
Define a simple version of ScrollTimeline.

Differential Revision: https://phabricator.services.mozilla.com/D129099
2021-12-08 01:16:28 +00:00
Emily McDonough
c4d55a9374 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
40430b0cce 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
bd3b879775 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
Butkovits Atila
21676cf030 Backed out changeset 145c64b7ac17 (bug 1531223) for causing failures at gfxFontEntry.cpp. CLOSED TREE 2021-12-06 14:57:31 +02:00
Jonathan Kew
ed3fd395ba Bug 1531223 - Add support for the 'ic' and 'cap' font-relative units. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D132818
2021-12-06 12:22:09 +00:00
Sandor Molnar
0d095a62b5 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
1de10c57f2 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
2abc89c41e Bug 1509931 - Use titlebar radius on Linux and make titlebar set-up work for lightweight themes. r=stransky,dao
To do this, we always draw the native titlebar behind the toolbox, and
then make the toolbox adapt to it by using the titlebar radius. This
makes us preserve the shadow properly.

On Wayland we'd double-draw the shadow (see bug 1509931 comment 4) so
this fixes it by trimming it as well using border-radius.

Differential Revision: https://phabricator.services.mozilla.com/D128681
2021-12-01 18:15:12 +00:00
Emilio Cobos Álvarez
a9b6db8e3f Bug 1743803 - Remove unnecessary button-focus appearance value on Linux. r=dao
This always draws transparent. Only real thing it does is forcing 0px
padding.

Differential Revision: https://phabricator.services.mozilla.com/D132563
2021-12-01 13:33:02 +00:00
Emilio Cobos Álvarez
4354146592 Bug 1432090 - Honor GTK button layout. r=stransky,desktop-theme-reviewers,dao
This is based off work by smurfd. But this patch doesn't support buttons
both at the left and right, which simplifies a lot the implementation.

Also, clean-up the existing env variables while at it.

Co-authored-by: Nicklas Boman <smurfd@gmail.com>

Differential Revision: https://phabricator.services.mozilla.com/D132073
2021-11-26 11:37:52 +00:00
Emilio Cobos Álvarez
2dca36cb25 Bug 502258 - Add a Show Password button to <input type=password> controls. r=Gijs
It's controlled by the pref:
layout.forms.input-type-show-password-button.enabled

Differential Revision: https://phabricator.services.mozilla.com/D130407
2021-11-25 20:12:05 +00:00
Emilio Cobos Álvarez
24be48359c Bug 1742574 - Keep system fonts when prioritizing user fonts. r=jfkthame,layout-reviewers
This was a subtle behavior change in bug 1739464. The early-return here:

  https://hg.mozilla.org/mozilla-central/rev/2fb74c67b0c5#l11.40

Meant we also bailed out from user font prioritization for system fonts.

It's unclear whether that's really the best behavior but since the
intention of the regressing patch was not to change behavior, preserving
the old behavior seems better.

Differential Revision: https://phabricator.services.mozilla.com/D131899
2021-11-23 12:41:19 +00:00
Emilio Cobos Álvarez
e120f9b2b2 Bug 1742393 - Correctly report animation status of pseudo-elements that are not stored in the parent element. r=hiro
We allow animating pseudo-elements like ::-moz-progress-bar (and we
treat them like regular elements).

Ideally we should store animations for these in the parent element as
well, so they survive reframes and such. But treating them as regular
elements right now means that we do animate them, but we never update
animations for them correctly because wrapper.rs assumed them to be
non-animatable.

Since it seems reasonable to keep allowing the animations to happen,
let's just correct the update code and add a test.

Differential Revision: https://phabricator.services.mozilla.com/D131794
2021-11-23 12:36:22 +00:00
lamoure6
3478e8ae47 Bug 1719938 - Removed remaining (non-negated) -moz-proton media queries. r=mhowell,mtigley,emilio
Differential Revision: https://phabricator.services.mozilla.com/D125328
2021-11-22 22:10:33 +00:00
Emilio Cobos Álvarez
ff07ef7e17 Bug 1739464 - Simplify language-dependent font fallback code. r=jfkthame
.fallback is always the default font for the lang group unless we're a
system font (in which case it's "none").

The only reason we need that is because we need to react to
language changes (which affect the initial font).

Simplify the model a bit doing the language lookup in gfxTextRun (this
should avoid allocating a few nsStyleFont structs too.

Depends on D130732

Differential Revision: https://phabricator.services.mozilla.com/D131312
2021-11-19 16:11:55 +00:00
Emilio Cobos Álvarez
2f4e4df679 Bug 1739464 - Use first generic rather than only generic to determine fallback font family. r=jfkthame
This seems like more sensible behavior. We have another use of
only_generic(), but that affects font sizing and other browsers agree
with us there:

  <div style="font-family: monospace">Should be 13px</div>
  <div style="font-family: something, monospace">Should be 16px</div>

So not touching that one.

Differential Revision: https://phabricator.services.mozilla.com/D130732
2021-11-19 16:11:54 +00:00
Emilio Cobos Alvarez
eef21610c6 Bug 1725721 - Top layer elements that are display:contents should be display: block. r=hiro
As per https://fullscreen.spec.whatwg.org/#new-stacking-layer:

    If its specified display property is contents, it computes to block.

Differential Revision: https://phabricator.services.mozilla.com/D131585
2021-11-19 04:46:42 +00:00
Ting-Yu Lin
5d4998ecf4 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
Ting-Yu Lin
ca1b688007 Bug 1741990 - Run rustfmt on servo/components/style and servo/ports/geckolib. r=emilio,layout-reviewers
This patch is generated by running `cargo +nightly fmt` under
`servo/components/style/` and `servo/ports/geckolib` against mozilla-central
https://hg.mozilla.org/mozilla-central/rev/b193f2e7a6a5d1f042c957ea4acd5c89bf210512

My nightly version is: 1.58.0-nightly (c9c4b5d72 2021-11-17)

Manually remove the redundant braces in author_styles.rs to fix a warning.

Differential Revision: https://phabricator.services.mozilla.com/D131556
2021-11-19 00:14:27 +00:00
Norisz Fay
09cb6f5caa Backed out changeset 00651c04ba31 (bug 1741990) for causing build bustages CLOSED TREE 2021-11-19 01:03:56 +02:00
Ting-Yu Lin
6d43b0f7b8 Bug 1741990 - Run rustfmt on servo/components/style and servo/ports/geckolib. r=emilio,layout-reviewers
This patch is generated by running `cargo +nightly fmt` under
`servo/components/style/` and `servo/ports/geckolib` against mozilla-central
https://hg.mozilla.org/mozilla-central/rev/b193f2e7a6a5d1f042c957ea4acd5c89bf210512

My nightly version is: 1.58.0-nightly (c9c4b5d72 2021-11-17)

Differential Revision: https://phabricator.services.mozilla.com/D131556
2021-11-18 22:46:24 +00:00
Emilio Cobos Álvarez
1cc0113008 Bug 1740924 - Partially back out bug 1105364. r=morgan
Apparently using transparent borders and outlines is a common
accessibility technique to make those visible in HCM.

Bug 1740924 comment 9 seemed to indicate we were the only browser
rendering those browsers, but I just confirmed that Edge at least does
show them.

Keep respecting system colors as that's per spec.

Differential Revision: https://phabricator.services.mozilla.com/D131412
2021-11-18 21:20:49 +00:00
Emilio Cobos Álvarez
2d8ab09b73 Bug 1739699 - Use preferred color scheme when forcing colors with system colors (except windows HCM). r=morgan
This causes (among other things) pages to be dark when using regular
windows system colors and forcing colors to "always", which is nice.

Differential Revision: https://phabricator.services.mozilla.com/D131165
2021-11-16 22:30:26 +00:00
Mats Palmgren
a36baa4d58 Bug 1706346 part 3 - [css-lists] Remove the internal '-moz-list-reversed' CSS property that is no longer needed. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D129957
2021-11-14 03:49:36 +00:00
Mats Palmgren
2e0a36d04d Bug 1706346 part 1 - [css-lists] Style system changes to support 'reversed(<counter-name>)'. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D129955
2021-11-14 03:49:35 +00:00
Alexandru Michis
ef8f129df5 Backed out changeset 82c80c6c8090 (Bug 1739464) for causing mochitest plain failures in test_bug496275.html
CLOSED TREE
2021-11-12 03:45:59 +02:00
Emilio Cobos Álvarez
3b4c3ed152 Bug 1739464 - Use first generic rather than only generic to determine fallback font family. r=jfkthame
This seems like more sensible behavior. We have another use of
only_generic(), but that affects font sizing and other browsers agree
with us there:

  <div style="font-family: monospace">Should be 13px</div>
  <div style="font-family: something, monospace">Should be 16px</div>

So not touching that one.

Differential Revision: https://phabricator.services.mozilla.com/D130732
2021-11-11 17:48:55 +00:00
Emilio Cobos Álvarez
4d6ee249dc Bug 1739925 - Add a foreground color to attention selection. r=jfkthame
In some platforms (like macOS, windows dark mode, android, and some gtk
themes) the foreground selection color might be `currentcolor`, and that
doesn't generally guarantee enough contrast with the attention
background.

Remove HeadlessLookAndFeelGTK's handling of this color since it's
useless (always overridden by prefs in all.js)

Differential Revision: https://phabricator.services.mozilla.com/D130617
2021-11-11 11:14:13 +00:00
Marian-Vasile Laza
6d3bafd66a Backed out changeset 2ed757d5dd76 (bug 1739464) for causing reftest failures on brackets-3b-rtl.html. CLOSED TREE 2021-11-10 22:54:06 +02:00
Emilio Cobos Álvarez
4dabed3c51 Bug 1739464 - Use first generic rather than only generic to determine fallback font family. r=jfkthame
This seems like more sensible behavior. We have another use of
only_generic(), but that affects font sizing and other browsers agree
with us there:

  <div style="font-family: monospace">Should be 13px</div>
  <div style="font-family: something, monospace">Should be 16px</div>

So not touching that one.

Differential Revision: https://phabricator.services.mozilla.com/D130732
2021-11-10 17:58:18 +00:00
Emilio Cobos Álvarez
a5f66c95e1 Bug 1740230 - Remove some prefs for pseudo-classes that we have shipped/unshipped successfully. r=dholbert
And remove code for :-moz-submit-invalid completely.

Differential Revision: https://phabricator.services.mozilla.com/D130737
2021-11-10 13:27:47 +00:00
Emilio Cobos Álvarez
f2318b3299 Bug 1740230 - Unexpose :-moz-locale-dir and :-moz-lwtheme* from content. r=dholbert
Behind a pref for now. Given these selectors do nothing on non-chrome
documents (they just don't match) it seems worth trying.

A cursory search seems to indicate they're not used for UA detection or
something like that (or at least I haven't found such an usage).

Differential Revision: https://phabricator.services.mozilla.com/D130736
2021-11-10 13:00:17 +00:00
Emilio Cobos Álvarez
bd406d8841 Bug 1740230 - Allow matches() / querySelector() / etc on chrome docs to access chrome-only selectors. r=boris
Without this some tests fail with the previous patch because code like:

  https://searchfox.org/mozilla-central/rev/267682a8f45221bf0bfe999d4a0239706a43bc56/browser/base/content/browser-gestureSupport.js#651

starts throwing. Unfortunately I had missed that on my try run, because
the error message didn't include that exception (it seemed like an
intermittent browser-chrome failure instead).

We could expose a ChromeOnly API for this, but this seems better. This
fixes it trivially, and also removes the "no url data" situation from
the selector parser, which is nice.

Differential Revision: https://phabricator.services.mozilla.com/D130818
2021-11-10 12:56:35 +00:00
Butkovits Atila
3a33d047e8 Backed out 2 changesets (bug 1740230) for causing build bustages.
Backed out changeset ba8e644ee9d2 (bug 1740230)
Backed out changeset 180d03015fd1 (bug 1740230)
2021-11-10 02:12:26 +02:00
Emilio Cobos Álvarez
620bd78775 Bug 1740230 - Allow matches() / querySelector() / etc on Chrome docs to access chrome-only selectors. r=boris
Without this some tests fail with the previous patch because code like:

  https://searchfox.org/mozilla-central/rev/267682a8f45221bf0bfe999d4a0239706a43bc56/browser/base/content/browser-gestureSupport.js#651

starts throwing. Unfortunately I had missed that on my try run, because
the error message didn't include that exception (it seemed like an
intermittent browser-chrome failure instead).

We could expose a ChromeOnly API for this, but this seems better. This
fixes it trivially, and also removes the "no url data" situation from
the selector parser, which is nice.

Differential Revision: https://phabricator.services.mozilla.com/D130818
2021-11-09 23:28:48 +00:00
Emilio Cobos Álvarez
c11619252a Bug 1740230 - Unexpose :-moz-locale-dir and :-moz-lwtheme* from content. r=dholbert
Behind a pref for now. Given these selectors do nothing on non-chrome
documents (they just don't match) it seems worth trying.

A cursory search seems to indicate they're not used for UA detection or
something like that (or at least I haven't found such an usage).

Differential Revision: https://phabricator.services.mozilla.com/D130736
2021-11-09 22:51:05 +00:00
Emilio Cobos Álvarez
a3a1b27924 Bug 1740230 - Refactor :-moz-lwtheme pseudo-classes to get invalidated correctly. r=dholbert
Use the same document state mechanism we have for :moz-locale-dir. Also,
simplify the setup of the later to be the same as :dir(), allowing the
matching code to be less repetitive.

This should fix some flakiness in chrome mochitests, but we have no existing
tests for these pseudo-classes more generally and since they're just
chrome-only I'm not super-excited about adding more.

Differential Revision: https://phabricator.services.mozilla.com/D130735
2021-11-09 20:59:11 +00:00
Emilio Cobos Álvarez
9b27f32101 Bug 1740230 - Simplify :dir() implementation. r=dholbert
This I noticed while working on the following patches. Shouldn't have
any behavior change: the behavior does in fact match the element state
flag semantics correctly if we do this. We did split the dir flags into
two element bits a while ago.

:not(:dir()) still behaves correctly of course, and we have tests for that.

Differential Revision: https://phabricator.services.mozilla.com/D130734
2021-11-09 20:53:13 +00:00
Butkovits Atila
4af43f1399 Backed out changeset da181def7b07 (bug 1739464) for causing failures at test_dont_use_document_fonts.html. 2021-11-09 21:10:28 +02:00
Emilio Cobos Álvarez
4c24a1ca7d Bug 1739464 - Use first generic rather than only generic to determine fallback font family. r=jfkthame
This seems like more sensible behavior. We have another use of
only_generic(), but that affects font sizing and other browsers agree
with us there:

  <div style="font-family: monospace">Should be 13px</div>
  <div style="font-family: something, monospace">Should be 16px</div>

So not touching that one.

Differential Revision: https://phabricator.services.mozilla.com/D130732
2021-11-09 17:22:07 +00:00
Emilio Cobos Álvarez
890026f19b Bug 1739357 - Merge branches in some ComputedValues functions. r=boris
This should mitigate the code size impact. Also make get_resolved_value
non-generic to avoid monomorphizing it multiple times.

Differential Revision: https://phabricator.services.mozilla.com/D130354
2021-11-06 10:14:40 +00:00
Mats Palmgren
039e1146f4 Bug 1738520 - Make #[css(field_bound)] and #[css(iterable)] work properly. r=mats
For now, use IntoIterator to figure the right type to add the bound.

If we need this on types that are iterable but don't provide
IntoIterator, we can add another attribute field or something.

Differential Revision: https://phabricator.services.mozilla.com/D129962
2021-11-04 18:31:55 +00:00
Emilio Cobos Álvarez
c308704902 Bug 1738614 - Remove other Widget* colors. r=mstange
These are only used for frameset painting and the non-e10s <select>
dropdown focus codepath. We have other more appropriate standard
colors for this.

Differential Revision: https://phabricator.services.mozilla.com/D129992
2021-11-02 18:08:07 +00:00
Emilio Cobos Álvarez
923cf5df84 Bug 1738614 - Remove TextForeground/Background system colors. r=mstange
Same thing, there's nor reason these should be different from other
CSS-exposed colors.

Differential Revision: https://phabricator.services.mozilla.com/D129991
2021-11-02 18:08:07 +00:00
Emilio Cobos Álvarez
ac14d7e42d Bug 1738614 - Remove WindowBackground/Foreground system colors. r=mstange
There's no reason for these to be different to the CSS-exposed
Window/WindowText.

Differential Revision: https://phabricator.services.mozilla.com/D129990
2021-11-02 18:08:07 +00:00
Emilio Cobos Álvarez
7c1b2c19fd Bug 1738658 - Serialize text-decoration using Servo. r=layout-reviewers,mats
The code introduced in the preceding patch deals with currentColor correctly,
so we should be able to do this now.

This uncovers a bug in the existing serialization code when a non-auto
text-decoration-thickness was used, caught by
css/css-text-decor/parsing/text-decoration-computed.html.

Differential Revision: https://phabricator.services.mozilla.com/D130018
2021-11-02 14:21:38 +00:00
Emilio Cobos Álvarez
ac72dbe343 Bug 1738658 - Generalize resolved style code to deal with all shorthands. r=jwatt
This removes the various assumptions that the animation code does.

Code size might be a concern, we can optimize if it is a problem,
but let's do the obvious thing for now.

Differential Revision: https://phabricator.services.mozilla.com/D130017
2021-11-02 14:21:38 +00:00
Emilio Cobos Álvarez
e7fd7303e1 Bug 1738791 - Treat empty root margin as zero as per spec. r=AlaskanEmily
Differential Revision: https://phabricator.services.mozilla.com/D130131
2021-11-02 10:44:17 +00:00
Noemi Erli
d6a163adba Backed out changeset f8c0561be4db (bug 1738791) for causing failures in observer-attributes.html CLOSED TREE 2021-11-02 04:30:37 +02:00
Emilio Cobos Álvarez
7dc130a7a8 Bug 1738791 - Treat empty root margin as zero as per spec. r=AlaskanEmily
Differential Revision: https://phabricator.services.mozilla.com/D130131
2021-11-01 22:46:02 +00:00
Emilio Cobos Álvarez
69eeb9cb6c Bug 1738608 - Make autofill background configurable via system color prefs. r=mstange
And remove the autofill.background pref for 95 (or 96, depending on
when this lands) assuming nothing terrible causes us to turn it off on
94.

Differential Revision: https://phabricator.services.mozilla.com/D129988
2021-10-31 21:28:58 +00:00
Emilio Cobos Álvarez
1421e7f545 Bug 1525107 - Make Canvas/CanvasText and Link colors color-scheme-aware. r=dholbert
For that, add `.dark` version of the browser.display* prefs that control
the light version of these colors.

The default for background/foreground colors are taken from the
GenericDarkColors used in LookAndFeel.

The defaults for links are based on this discussion:

  https://github.com/whatwg/html/issues/5426#issuecomment-904021675

(So they effectively match Chrome).

Whether the dark colors should be exposed in about:preferences (like the
light colors are) is TBD.

With this patch, we pass all the tests in:

  /html/semantics/document-metadata/the-meta-element/color-scheme/

Use the colors to paint the default canvas background and the default
colors.

There are three "regressions", though they are really progressions: we
now render the reference as the test expects (before we rendered a light
canvas background even for the reference).

Apart of these iframe tests (which we should look into, I filed
https://bugzilla.mozilla.org/show_bug.cgi?id=1738380), there are three
remaining test failures.

Two of them are due to `color: initial` not changing based on the
color-scheme. Safari also fails these tests, and the thing they're
really testing is whether system colors are preserved at computed-value
time:

  https://github.com/w3c/csswg-drafts/issues/3847

Regarding that change, I'm not so sure the trade-offs there are worth
it, as that not only complicates interpolation (we wouldn't be able to
use system colors in color-mix among others, see
https://github.com/w3c/csswg-drafts/issues/5780) plus it changes
inheritance behavior in sorta unexpected ways, see:

  https://github.com/w3c/csswg-drafts/issues/6773

Which I just filed because apparently no browser implements this
correctly. So for now will punt on those (keep matching Safari).

There's an svg-as-image test:

  https://searchfox.org/mozilla-central/rev/f8576fec48d866c5f988baaf1fa8d2f8cce2a82f/testing/web-platform/tests/css/css-color-adjust/rendering/dark-color-scheme/svg-as-image.html

Which isn't using the feature at all and I'm not sure why is it supposed
to pass (why prefers-color-scheme: dark is supposed to match that SVG
image). This test fails in all browsers apparently:

  https://wpt.fyi/results/css/css-color-adjust/rendering/dark-color-scheme/svg-as-image.html?label=master&label=experimental&aligned

I sent https://github.com/web-platform-tests/wpt/pull/31407 to remove
it and hopefully get it reviewed by some Chromium folks.

Differential Revision: https://phabricator.services.mozilla.com/D129746
2021-10-29 19:58:25 +00:00
Emilio Cobos Álvarez
933c5ad884 Bug 1525107 - Move Canvas/Link color computation to C++-land. r=dholbert
This doesn't change behavior but will allow us to deduplicate some
logic given we compute the effective color-scheme in C++.

Differential Revision: https://phabricator.services.mozilla.com/D129744
2021-10-29 19:58:24 +00:00
Emilio Cobos Álvarez
f85c48f96d Bug 1525107 - Implement <meta name=color-scheme>. r=dholbert
There are still tests failing because
https://bugzilla.mozilla.org/show_bug.cgi?id=1736034 hasn't been synced
yet.

Once that lands, they will still fail because we don't change
Canvas/CanvasText based on color-scheme, but that I'm attaching
patches for after this one.

Differential Revision: https://phabricator.services.mozilla.com/D129743
2021-10-29 19:58:24 +00:00
Mats Palmgren
1169c0cdc1 Bug 1738296 - Fix broken 'list-style' serialization. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D129847
2021-10-28 17:06:53 +00:00
Emilio Cobos Álvarez
5b31eea4fd Bug 1737676 - Use GTK menu radius on native context menus and panels. r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D129439
2021-10-28 10:52:31 +00:00
Emilio Cobos Álvarez
f488c2d7b8 Bug 1737654 - Allow parsing layer statements inside nested rules. r=boris
This fixes https://wpt.live/css/css-cascade/layer-media-query.html once
it syncs.

Differential Revision: https://phabricator.services.mozilla.com/D129424
2021-10-26 23:03:19 +00:00
Emilio Cobos Álvarez
8b39ce0241 Bug 1734570 - Update layer ordering to follow the spec. r=boris
The bitfield approach worked when the layer order was in pre-order, but
the spec was changed to make it work like post-order and I don't think
there's a way to keep it working like that, so keep the layer order in a
separate data structure that we look up when going from Rule to
ApplicableDeclarationBlock.

This is just a vector index operation so hopefully shouldn't be too bad.

This patch intentionally regresses @keyframe handling to some extent,
since we need a bit more complicated approach and it seemed worth
implementing in a separate patch.

Depends on D129380

Differential Revision: https://phabricator.services.mozilla.com/D129381
2021-10-26 23:00:29 +00:00
Emilio Cobos Álvarez
aacd5cb566 Bug 1734570 - Store a LayerOrder in ApplicableDeclarationBlock. r=boris
This shouldn't change behavior jut yet.

Differential Revision: https://phabricator.services.mozilla.com/D129380
2021-10-26 23:00:29 +00:00
Emilio Cobos Álvarez
f317384568 Bug 1736518 - Make browser.tabs.drawInTitlebar a tri-state. r=stransky,Gijs
To more properly support Linux having a different default at runtime.

Expose the resolved value in appinfo for convenience, and use it in the
front-end as needed.

Differential Revision: https://phabricator.services.mozilla.com/D129004
2021-10-21 09:07:12 +00:00
stransky
aecdcaacb9 Bug 1736795 [Linux] Export titlebar radius as int from LookAndFeel, r=emilio
Titlebar radius is exported as integer from Gtk so there's no need to use floats here.

Differential Revision: https://phabricator.services.mozilla.com/D128993
2021-10-20 18:01:02 +00:00
Emilio Cobos Álvarez
9ec6b27649 Bug 1736848 - Don't use nsContentUtils::sNamespaceManager in servo. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D129030
2021-10-20 15:25:10 +00:00
Mike Hommey
4aa571147f Bug 1736477 - Remove unused import_rule::PendingSheet. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D128823
2021-10-19 23:31:04 +00:00
Emilio Cobos Álvarez
db97a652b6 Bug 1509931 - Fix rebase mistake.
MANUAL PUSH: Bustage fix CLOSED TREE
2021-10-18 21:16:07 +02:00
Emilio Cobos Álvarez
2cdb78d6a6 Bug 1509931 - Remove -moz-gtk-csd-transparent-background. r=stransky,desktop-theme-reviewers,dao
We always use alpha visual for WebRender, and appearance: none is
unnecessary (root element has no intrinsic appearance).

Differential Revision: https://phabricator.services.mozilla.com/D128682
2021-10-18 18:51:41 +00:00
Emilio Cobos Álvarez
b742f680db Bug 1509931 - Expose titlebar radius as a chrome-only CSS environment variable. r=stransky
Mostly plumbing.

Differential Revision: https://phabricator.services.mozilla.com/D128680
2021-10-18 16:22:13 +00:00
Emilio Cobos Álvarez
c676353b72 Bug 1509931 - Add support for chrome-only environment variables. r=stransky
This bit is taken straight from D73454 (I reviewed it but I guess
another pair of eyes is ok, it's really straight-forward).

Co-authored-by: Nicklas Boman <smurfd@gmail.com>

Differential Revision: https://phabricator.services.mozilla.com/D128679
2021-10-18 16:22:13 +00:00
Mats Palmgren
cce3f3a286 Bug 1736129 - Make #[css(represents_keyword)] convert underscore in the field name to dash. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D128668
2021-10-16 20:09:24 +00:00
Emilio Cobos Álvarez
c4b7109fac Bug 1736038 - Remove -moz-toolbar-prefers-color-scheme. r=dao
By making prefers-color-scheme return the ColorSchemeForChrome(), which
accounts for the Firefox theme.

Differential Revision: https://phabricator.services.mozilla.com/D128611
2021-10-15 16:53:08 +00:00
Emilio Cobos Álvarez
37660aa996 Bug 1730503 - Make anonymous scrollbar caching work on mac by default, and unify scrollbars.css across platforms. r=mstange,desktop-theme-reviewers,dao
We make it work on macOS by setting pointer-events: none + opacity: 0 rather
than visibility: hidden, and tweaking the caching setup to be Android-like.

Now that the scrollbars sheet is the same across platforms, move it to where
the rest of the UA sheets are. This way we guarantee that the RDM vs. Android
difference is less (just the ifdef at the top of the sheet).

Depends on D128084

Differential Revision: https://phabricator.services.mozilla.com/D128085
2021-10-12 09:21:18 +00:00
Emilio Cobos Álvarez
ca970e3818 Bug 1735083 - Clean up GTK titlebar colors. r=desktop-theme-reviewers,dao
Apparently ActiveCaption/CaptionText/InactiveCaption/InactiveCaptionText
are supposed to be used for titlebars, so implement them properly and
remove the GTK-specific colors.

Differential Revision: https://phabricator.services.mozilla.com/D128028
2021-10-11 22:16:58 +00:00
Boris Chiou
33ba1b4ed4 Bug 1734472 - Tweak the serialization of rotate property. r=emilio
The serialization of rotate should be updated to match the current spec.

1. If a rotation about the z axis (that is, in 2D) is specified, the property
   must serialize as just an <angle>.

2. If any other rotation is specified, the property must serialize with an axis
   specified. If the axis is parallel with the x or y axes, it must serialize
   as the appropriate keyword.

Also, we need to handle the zero length vector separately because it is
parallel to every other vector but different from x axis, y axis, or z axis.

Differential Revision: https://phabricator.services.mozilla.com/D127747
2021-10-07 20:05:10 +00:00
Emilio Cobos Álvarez
9fbc18ca4c Bug 1733384 - Make inert not modify the computed style. r=sefeng,layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D127422
2021-10-07 17:00:36 +00:00
Butkovits Atila
4d927c1fb4 Backed out 4 changesets (bug 1733384) for causing failures at browser_windowPrompt.js. CLOSED TREE
Backed out changeset fa609fadac26 (bug 1733384)
Backed out changeset dd1936d9fe17 (bug 1733384)
Backed out changeset 1a073e40ab1a (bug 1733384)
Backed out changeset 65708a4c708f (bug 1733384)
2021-10-07 17:52:51 +03:00
Emilio Cobos Álvarez
445c7b4297 Bug 1734455 - Remove support for -moz-system-color() as chrome code no longer uses it (in favor of color-scheme). r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D127802
2021-10-07 11:56:17 +00:00
Emilio Cobos Álvarez
bfdd0fcc77 Bug 1733384 - Make inert not modify the computed style. r=sefeng,layout-reviewers,jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D127422
2021-10-07 11:47:34 +00:00
Glenn Watson
a9ef6ad97d Bug 1734282 - Remove some unused scroll frame APIs and code r=gfx-reviewers,jrmuizel
ScrollSensitivity is not used by Gecko. Also remove some remnants
of the old code to combine scroll frames when display lists swap.

Differential Revision: https://phabricator.services.mozilla.com/D127609
2021-10-06 06:43:03 +00:00
Emilio Cobos Álvarez
e50c80851e Bug 1734115 - Add basic support for dark form controls to nsNativeBasicTheme. r=mstange
For that:

 * Tweak the standin system colors to match the non-native theme.

 * Use those system colors for button and field backgrounds.

 * Rename the "should use system colors" bit to "is high contrast",
   which is what it really is (specially now that we use system colors
   also in non-high-contrast).

Border colors and other colors like the <input type=range> and such
might need some extra tweaking perhaps, but this is a decent start and
looks good in https://crisal.io/tmp/form-controls.html afaict (dark mode
toggle needs the color-scheme pref enabled of course).

Differential Revision: https://phabricator.services.mozilla.com/D127533
2021-10-05 14:40:52 +00:00
Harry Twyford
5a88e54daf Bug 1732322 - Part 1 - Enable color-scheme CSS property in chrome sheets. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D127300
2021-10-03 00:10:17 +00:00
Emilio Cobos Álvarez
3899f8f87d Bug 1733475 - Ensure to copy over the viewport/font units invalidation bits when reusing reset properties. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D127262
2021-10-01 19:53:30 +00:00
Emilio Cobos Alvarez
21a3f0049f Bug 1733565 - Clean up button active system colors. r=mstange,desktop-theme-reviewers,dao
This patch does three things:

 * Unifies mac and gtk's buttonactivetext system colors (unships mac's from
   content, but it was never meant to be exposed).

 * Simplifies the forms.css rules, since <input type=color>'s color property
   value doesn't affect its rendering in any meaningful way.

 * Adds a buttonactiveface color, which we'll use to provide dark backgrounds
   for buttons in Windows dark mode (and is good practice, since generally
   every text system color should have a corresponding background).

So as-is it shouldn't change content-exposed behavior (except we stop exposing
the -moz-mac-buttonactivetext to content), but it's a worthy cleanup.

Depends on D127246

Differential Revision: https://phabricator.services.mozilla.com/D127259
2021-10-01 19:42:16 +00:00
Emilio Cobos Álvarez
390ddc27d6 Bug 1733339 - Remove NS_AUTHOR_SPECIFIED_PADDING. r=mstange
There's only one meaningful usage of it, which is to disable native
appearance of the <input type=range> (the windows native theme is no
longer exposed to content).

<input type=range> is inconsistent with every other native widget, which
only disables native appearance if the author specifies backgrounds or
borders. So make it match literally all other widgets and simplify a bit
the code.

We had no tests for this special behavior, let me know if you think it's
worth adding one (but I don't feel very strongly about it).

Differential Revision: https://phabricator.services.mozilla.com/D127082
2021-10-01 11:48:17 +00:00