Commit graph

25352 commits

Author SHA1 Message Date
Oriol Brufau
e617ece91e Further changes required by Servo 2023-05-24 18:32:40 +02:00
Emilio Cobos Álvarez
028f2f95d2 style: Initial support for the color-scheme CSS property
Add initial support for the color-scheme CSS property, allowing pages to
choose between light and dark system colors per-element, and such.

Things that are left to do so that this can be enabled by default:

 * Dark system colors on Windows / Android / Standins.
 * Dark Canvas/CanvasText/Link visited colors (which right now are set
   via PreferenceSheet).
 * Dark form controls in nsNativeBasicTheme.
 * Processing the color-scheme meta tag to fill-in
   Document::mColorSchemeBits.

But this seems like enough progress to be landable on its own.

Differential Revision: https://phabricator.services.mozilla.com/D120843
2023-05-24 18:32:40 +02:00
Oriol Brufau
fd41056ca5 Further changes required by Servo 2023-05-24 18:32:39 +02:00
Emilio Cobos Álvarez
d86e449e8c style: Add system-ui boilerplate
Alias -apple-system to it, and put it behind a pref for now. This is
pretty boring (read: uncontroversial hopefully) code. The follow-up work
is modifying StaticPresData to look up the fonts using system APIs,
probably. Maybe a bit more work if on macOS they can't be named.

Differential Revision: https://phabricator.services.mozilla.com/D119984
2023-05-24 18:32:39 +02:00
Oriol Brufau
9cf7df1f31 Further changes required by Servo 2023-05-24 18:32:39 +02:00
Emilio Cobos Álvarez
7d1823563e style: Remove layout.css.image-set.enabled
We shipped this in 88.

Differential Revision: https://phabricator.services.mozilla.com/D120899
2023-05-24 18:32:39 +02:00
Emilio Cobos Álvarez
eca66dba72 style: Factor PreferenceSheet colors to its own struct
This will come handy in the next patch.

Depends on D120678

Differential Revision: https://phabricator.services.mozilla.com/D120679
2023-05-24 18:32:39 +02:00
Emily McDonough
c2a50c92fa style: Remove the paper size variant of GenericPageSize and add an implied default to the paper size and orientation variant
Differential Revision: https://phabricator.services.mozilla.com/D119915
2023-05-24 18:32:38 +02:00
Sonia Singla
45d6e64d51 style: Remove layout.css.clip-path-path.enabled
Differential Revision: https://phabricator.services.mozilla.com/D120235
2023-05-24 18:32:38 +02:00
Emilio Cobos Álvarez
8f4d782952 style: Don't EnsureUniqueInner from the cssRules getter
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2023-05-24 18:32:38 +02:00
Sonia Singla
c0a2b99c4f style: Remove layout.css.prefixes.columns
Differential Revision: https://phabricator.services.mozilla.com/D120057
2023-05-24 18:32:38 +02:00
Emilio Cobos Álvarez
2634ad10de style: Blockify outside markers at used value time rather than at computed value time
Trusting the display value in style_adjuster is wrong, as some elements
force a given kind of frame (like <details>).

Differential Revision: https://phabricator.services.mozilla.com/D119609
2023-05-24 18:32:38 +02:00
Emilio Cobos Álvarez
d7d407a9ae style: Fix mixed indentation in style_adjuster.rs
Differential Revision: https://phabricator.services.mozilla.com/D119579
2023-05-24 18:32:38 +02:00
Emilio Cobos Álvarez
1918c1c203 style: Inline GeckoNode::prev_sibling
It's very hot when matching some kind of selectors like the ones in bug
1717267, and the two function calls show up in the profiles.

Differential Revision: https://phabricator.services.mozilla.com/D119505
2023-05-24 18:32:37 +02:00
Jonathan Kew
695ff236c8 style: Update font-size-adjust keywords to match CSSWG resolution in csswg-drafts/#6288
Differential Revision: https://phabricator.services.mozilla.com/D118198
2023-05-24 18:32:37 +02:00
Emilio Cobos Álvarez
25edb3c21b style: More fine-grained viewport units invalidation
This should speed up window resize significantly.

Differential Revision: https://phabricator.services.mozilla.com/D118878
2023-05-24 18:32:37 +02:00
Emilio Cobos Álvarez
85b7a60a69 style: Reduce code size of shorthand serialization
Differential Revision: https://phabricator.services.mozilla.com/D118835
2023-05-24 18:32:37 +02:00
Emilio Cobos Álvarez
58e9ee4d1e style: Make get_shorthand_appendable_value less generic
This will allow to save some codesize from longhands_to_css.

Differential Revision: https://phabricator.services.mozilla.com/D118834
2023-05-24 18:32:37 +02:00
Matt Woodrow
f81ffda69d style: Clamp perspective() values to a minimum of 1px
Differential Revision: https://phabricator.services.mozilla.com/D118250
2023-05-24 18:32:36 +02:00
Oriol Brufau
2c5aa34bb0 Further changes required by Servo 2023-05-24 18:32:36 +02:00
Mats Palmgren
d92f66246e style: [css-content] Implement 'content: none' for elements
Differential Revision: https://phabricator.services.mozilla.com/D114130
2023-05-24 18:32:36 +02:00
Mats Palmgren
183ec78be5 style: Implement 'content: none' for ::marker
Differential Revision: https://phabricator.services.mozilla.com/D111707
2023-05-24 18:32:36 +02:00
Emily McDonough
c9d4f812e5 style: Use a computed type for page-size which converts paper sizes to a Size2D
Differential Revision: https://phabricator.services.mozilla.com/D115842
2023-05-24 18:32:36 +02:00
Oriol Brufau
4f0e0c888c Further changes required by Servo 2023-05-24 18:32:36 +02:00
Emilio Cobos Álvarez
67f9b97735 style: Unify font-family storage
This changes font-family storage to reuse the rust types, removing a
bunch of code while at it. This allows us to, for example, use a single
static font family for -moz-bullet and clone it, rather than creating a
lot of expensive copies.

Differential Revision: https://phabricator.services.mozilla.com/D118011
2023-05-24 18:32:35 +02:00
Emilio Cobos Álvarez
837e41c8eb style: Remove -moz-outline-radius
It does nothing since 88 and we unshipped it in 89.

Differential Revision: https://phabricator.services.mozilla.com/D117532
2023-05-24 18:32:35 +02:00
Emilio Cobos Álvarez
ed806afe52 style: Expose text selection foreground / background colors to chrome code
Differential Revision: https://phabricator.services.mozilla.com/D117417
2023-05-24 18:32:35 +02:00
Oriol Brufau
2bf074e434 Further changes required by Servo 2023-05-24 18:32:35 +02:00
Emilio Cobos Álvarez
9eb244fc0c style: Add an internal -moz-system-color() function to expose both light and dark system colors
Differential Revision: https://phabricator.services.mozilla.com/D117416
2023-05-24 18:32:35 +02:00
Oriol Brufau
0ebad03ab5 Further changes required by Servo 2023-05-24 18:32:35 +02:00
Jonathan Kew
16168fe4e7 style: Implement CSS support for the optional adjustment-basis metric keywords for the font-size-adjust property (enabled on Nightly only for now)
Differential Revision: https://phabricator.services.mozilla.com/D115596
2023-05-24 18:32:34 +02:00
Oriol Brufau
d1936e6a4a Further changes required by Servo 2023-05-24 18:32:34 +02:00
Mats Palmgren
d7e00ba03d style: Add some style quirks for legacy ::markers created from list-style-type/list-style-image
Specifically:
For "bullets", i.e. 'list-style-type:disc|circle|square|
disclosure-closed|disclosure-open', we use a built-in font
(-moz-bullet-font, which has glyphs for those symbols + space) to
retain mostly backwards compatible rendering for those.  Authors may
override that with an explicit 'font-family' ::marker style though.
We also use this font for 'list-style-image' in case it would
fallback to one of the above when the image fails to load (so that
we get the same width space).

When the -moz-bullet-font is used we also set 'font-synthesis' to
avoid synthesizing italic/bold for this font. Authors may override
this with an explicit ::marker declaration.

We also set 'letter-spacing' and 'word-spacing' to the initial value
for bullets for web-compat reasons.  Again, authors may override
this with an explicit ::marker declaration. (This breaks backwards-
compat slightly but makes us compatible with Chrome.  We used to
ignore these for list-style-type:<string> too.)

Differential Revision: https://phabricator.services.mozilla.com/D111693
2023-05-24 18:32:34 +02:00
Michelle Goossens
d2a7ebf789 style: Remove browser.proton.modals.enabled pref
Differential Revision: https://phabricator.services.mozilla.com/D116903
2023-05-24 18:32:34 +02:00
Emilio Cobos Álvarez
6d9580fef0 style: Specify has_no_effect_on_gecko_scrollbars on inherited internal properties
Otherwise we assert due to the styles being different from the cached
ones, but it doesn't matter as these don't influence Gecko scrollbars.

Differential Revision: https://phabricator.services.mozilla.com/D117147
2023-05-24 18:32:34 +02:00
Jonathan Kew
f0a178b56a style: Un-prefix -moz-tab-size (keeping the prefixed version as an alias for now)
This results in lots of new WPT test passes.

There were also a couple of WPT tests that turned out to be broken;
tab-size-inline-001 and -002 had errors in their reference files such
that they'd never pass anywhere. So those are fixed here.

Depends on D117331

Differential Revision: https://phabricator.services.mozilla.com/D117332
2023-05-24 18:32:33 +02:00
Oriol Brufau
4353d31cb0 Further changes required by Servo 2023-05-24 18:32:33 +02:00
Boris Chiou
11cadd8c42 style: Part 7: Notify style system when SMIL animation changes d attribute
So we update d property in the style system as well. This makes sure we
have the correct computed style and the correct rendering result.

Differential Revision: https://phabricator.services.mozilla.com/D115570
2023-05-24 18:32:33 +02:00
Boris Chiou
fa6ab91acd style: Part 1: Add SVG d property in CSS
Add d property for style system. d property only supports path() for now
and it has the functional notation without fill rule.

https://github.com/w3c/svgwg/issues/320#issuecomment-414462645

Differential Revision: https://phabricator.services.mozilla.com/D81237
2023-05-24 18:32:33 +02:00
Oriol Brufau
4c7ddd63b3 Further changes required by Servo 2023-05-24 18:32:33 +02:00
Nazım Can Altınova
8ca41ccf9e style: Replace the old profiler thread registration FFIs with the new API in servo
Differential Revision: https://phabricator.services.mozilla.com/D116517
2023-05-24 18:32:32 +02:00
Oriol Brufau
9273921fd3 Further changes required by Servo 2023-05-24 18:32:32 +02:00
Boris Chiou
d103785c4b style: Part 2: Support fit-content() in style
Support fit-content for preferred size, min size, and max size. This
patch only implement the style system. For layout part, we will do that
in the following patches.

Differential Revision: https://phabricator.services.mozilla.com/D107161
2023-05-24 18:32:32 +02:00
Michelle Goossens
77cab0edc3 style: Remove browser.proton.doorhangers.enabled pref
Differential Revision: https://phabricator.services.mozilla.com/D117091
2023-05-24 18:32:32 +02:00
Xidorn Quan
4934b747ef style: Make predefined symbolic counter styles not overridable
Differential Revision: https://phabricator.services.mozilla.com/D116938
2023-05-24 18:32:32 +02:00
Emilio Cobos Álvarez
b4546993b4 style: Fix whitespace handling inside CSS variables
As per w3c/csswg-drafts#881 and w3c/csswg-drafts#774.

Differential Revision: https://phabricator.services.mozilla.com/D116459
2023-05-24 18:32:31 +02:00
Emilio Cobos Álvarez
832807f15f style: Reserve -- as a custom property name
I think this should be fairly low risk, let's try to get it done sooner
rather than later.

Differential Revision: https://phabricator.services.mozilla.com/D116456
2023-05-24 18:32:31 +02:00
Emilio Cobos Álvarez
44b94f66f9 style: Use a nicer media query for proton context menus
Differential Revision: https://phabricator.services.mozilla.com/D116736
2023-05-24 18:32:31 +02:00
Emilio Cobos Álvarez
908c952ab0 style: Don't simplify percentages that resolve to lengths in min/max/clamp
Those can't be ordered at specified / computed value time, since the
percentage basis could be negative.

Needs tests of course, running through try atm.

Differential Revision: https://phabricator.services.mozilla.com/D115591
2023-05-24 18:32:31 +02:00
Emilio Cobos Álvarez
204cb7a9c0 style: Look at the right element for exportparts in each_applicable_non_document_style_rule_data
Otherwise we might not find those rules for invalidation.

Differential Revision: https://phabricator.services.mozilla.com/D115130
2023-05-24 18:32:31 +02:00