Commit graph

25338 commits

Author SHA1 Message Date
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
Oriol Brufau
4df282dab7 Further changes required by Servo 2023-05-24 18:32:31 +02:00
Emilio Cobos Álvarez
1ddd3b09c2 style: Refactor the author sheet cache to keep alive the relevant StylesheetContents
This prevents incorrectly reusing cached results when the contents go
away and new contents are allocated with the same address.

Note that these keep alive transitively everything else under them, so
all other medialist keys don't need this.

By making this a proper hashmap it should also improve cache lookup
times if the cache grows too big.

Differential Revision: https://phabricator.services.mozilla.com/D115202
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
9c32836913 style: Avoid returning fmt::Errors for things that are not formatting errors
They are not. The serialization code already checks if the result is
empty, which can happen for other reasons. This makes the code a bit
more resilient to misuse.

Differential Revision: https://phabricator.services.mozilla.com/D115133
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
4bcf4573db style: Avoid trying to serialize 'all' with stuff that isn't variable references or CSS wide keywords
All is special, and that'd cause an error later on.

Differential Revision: https://phabricator.services.mozilla.com/D115132
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
dd28d22cee style: Use titlebar colors when using CSD rather than -moz-menubartext
As the titlebar may be different when active / inactive, and have
other colors than a menubar.

Differential Revision: https://phabricator.services.mozilla.com/D114875
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
55f20759b2 style: Properly hide -moz-context-properties from content
Depends on D114481

Differential Revision: https://phabricator.services.mozilla.com/D114482
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
87a3f2598a style: Properly hide -moz-control-character-visibility from content
Differential Revision: https://phabricator.services.mozilla.com/D114481
2023-05-24 18:32:30 +02:00
Emilio Cobos Álvarez
6d6ea6cfe4 style: Remove support for unused gtk infobar widget and colors
Presumably they were for notifications and now we use native notifications?

Differential Revision: https://phabricator.services.mozilla.com/D114874
2023-05-24 18:32:29 +02:00
Emilio Cobos Álvarez
3cf8c19313 style: Support -webkit-image-set as a parse-time alias to image-set()
The webkit syntax is an strict subset of the modern one, so this should
be doable, and is the simplest.

If my reading of the WebKit code is correct it should also be the way
WebKit deals with this (except they restrict -webkit-image-set() syntax
artificially).

 * https://github.com/w3c/csswg-drafts/issues/6285
 * https://github.com/whatwg/compat/issues/144

Differential Revision: https://phabricator.services.mozilla.com/D114912
2023-05-24 18:32:29 +02:00
bors-servo
ec4d90d572
Auto merge of #29745 - mrobinson:compositor-side-scroll-tree, r=mukilan
Add a compositor-side scroll tree

This will allow the compositor to properly chain scrolling requests up
when a node has reached the extent of the scroll area. In addition, it
removes the use of the deprecated WebRender `scroll()` API. This fixes
scrolling on servo.org.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes:
  - Fix #29402.
  - Fix #27996.
  - Fix #27624.
  - Fix #24028.
  - Fix #23918.
  - Fix #21165.
- [x] There are tests for these changes
2023-05-23 10:51:11 +02:00
The Capyloon Team
11b7a756e8 De-dupe phf 2023-05-23 00:53:09 +00:00
bors-servo
b1f9126163
Auto merge of #29750 - stshine:fix-flex-resolve, r=mrobinson
layout_2020: fix target main size not get clamped in flexbox

When Resolving flexible lengths, the clamp result of item's target main size is not actually saved when it should.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] There are tests for these changes OR

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2023-05-22 17:51:57 +02:00
Pu Xingyu
9a9e703984 layout_2020: Fix target main size not get clamped in flexbox
When resolving flexible lengths, the clamping result of item's target
main size is not actually saved while it should.
2023-05-22 09:18:48 +08:00
bors-servo
1bb713521b
Auto merge of #29374 - jdm:get-cx-cleanup, r=mrobinson
Assert if DomObject::global is called outside of a JS realm

To avoid crashing in https://github.com/servo/servo/issues/27037, we need to progressively add `InRealm` or `AlreadyInRealm` arguments higher up in the call stack. These changes assert that DomObject::global is only called inside of a realm, which is preferable to segfaulting in the JS engine. Making this a compile-time error requires changing lots of `.global()` callsites, but this PR removes a bunch that are now unnecessary.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix (partially) #27037
- [x] There are tests for these changes
2023-05-21 04:05:58 +02:00