Backport several style changes from Gecko (9)#30692
Merged
mrobinson merged 66 commits intoservo:masterfrom Nov 6, 2023
Merged
Conversation
|
🔨 Triggering try run (#6749817016) with platforms=linux,macos,windows and layout=all |
|
Test results for linux-wpt-layout-2013 from try job (#6749817016): Flaky unexpected result (19)
Stable unexpected results that are known to be intermittent (23)
|
|
Test results for linux-wpt-layout-2020 from try job (#6749817016): Flaky unexpected result (10)
Stable unexpected results that are known to be intermittent (35)
|
This patch fixes a bug introduced by bug 1808228/D166266, where, if an element does not initially match :nth-child(An+B of selector list) or :nth-last-child(An+B of selector list), changing a sibling or ancestor will not invalidate that element. Differential Revision: https://phabricator.services.mozilla.com/D166982
It can be reused for the Is, Where, and Negation components. Differential Revision: https://phabricator.services.mozilla.com/D166267
…n Servo and Gecko This removes the special AnimationIterationCount -> f32 conversion from gecko.mako.rs which will be useful to simplify coordinated properties. Differential Revision: https://phabricator.services.mozilla.com/D167123
…eature-settings and font-variation-settings Differential Revision: https://phabricator.services.mozilla.com/D167012
Factor out duplicated / common code to its own module, add / fix spec links, and clean-up callers. Differential Revision: https://phabricator.services.mozilla.com/D167253
Use new changes from cssparser and use the new lab/lch/oklab/oklch color formats. Introduced a new color type AbsoluteColor. It represents any kind of color that has absolute numerical values. It is also tied to a color space and therefore can be trivially converted to another color space. Differential Revision: https://phabricator.services.mozilla.com/D163579
The output progress of easing functions could be inf or -inf, per spec, https://drafts.csswg.org/css-easing-2/#output-progress-value. But we should avoid using infinity to calculate interpolation or use the infinite progress in Web Animations API, per the spec issue comments: w3c/csswg-drafts#8344 (comment) Differential Revision: https://phabricator.services.mozilla.com/D167342
view-timeline-name: `none | <custom-ident>#` view-timeline-axis: `[ block | inline | vertical | horizontal ]#` Note: Both view-timeline-name and scroll-timeline-name should accept `auto`. We will fix it in this patch series. Differential Revision: https://phabricator.services.mozilla.com/D166242
Support view-timeline-inset: `[ [ auto | <length-percentage> ]{1,2} ]#`.
And its initial value is 0.
Differential Revision: https://phabricator.services.mozilla.com/D166243
view-timeline shorthand includes view-timeline-name and view-timeline-axis, but excludes view-timeline-inset. Note: We will fix the test of "view-timeline-name: auto" in the next patch. Differential Revision: https://phabricator.services.mozilla.com/D166404
Per w3c/csswg-drafts#7431, both timeline name should accept `auto`. Differential Revision: https://phabricator.services.mozilla.com/D166476
The syntax of scroll-timeline shorthand is: `[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#`. This patch just updates WPT to match the spec. Our fix will be together with Bug 1809005. Differential Revision: https://phabricator.services.mozilla.com/D166595
…ty group Named scroll progress timelines are declared in the coordinated value list constructed from the longhands of the scroll-timeline shorthand property, which form a coordinating list property group with scroll-timeline-name as the coordinating list base property. In the meantime, we also update its shorthand to match the current spec. Differential Revision: https://phabricator.services.mozilla.com/D166596
This parses the ampersand as a parent selector behind an (off-by-default) selectors feature. The plan is to call replace_parent_selector while we're doing the CascadeData rebuilds, which is where we can have all the ancestor nesting information. No behavior change. Differential Revision: https://phabricator.services.mozilla.com/D167237
Added WebIDL interfaces as per spec, added some necessary changes to support maplike and setlike structures to be accessed from C++. Added `::highlight(foo)` pseudo element to CSS engine. Implemented Highlight as new kind of `Selection` using `HighlightType::eHighlight`. This implies Selections being added/removed during runtime (one `Selection` object per highlight identifier), therefore a dynamic container for highlight `Selection` objects was added to `nsFrameSelection`. Also, the painting code queries the highlight style for highlight Selections. Implementation is currently hidden behind a pref `dom.customHighlightAPI.enabled`. Differential Revision: https://phabricator.services.mozilla.com/D164203
Colors can now be defined in different color spaces with the color() function. https://w3c.github.io/csswg-drafts/css-color-4/#predefined Differential Revision: https://phabricator.services.mozilla.com/D164866
…ven when use_document_fonts=0, overriding the browser's font prefs Some widely-used icon fonts use ligature rules to replace icon names such as "volume_up" or "down_arrow" with icon glyphs. If the site is designed to use such a font, but the user disables document fonts and we use our default Latin font instead, the underlying text will be rendered instead of the intended icon. To enable such fonts to continue to work, we provide a list of known ligature-icon fonts and allow them to be used even when the document-fonts setting is disabled. Differential Revision: https://phabricator.services.mozilla.com/D167923
…d properties, and make font-synthesis into a shorthand Differential Revision: https://phabricator.services.mozilla.com/D167480
Adds the forced-color-adjust property and ForcedColorAdjust keywords. Updates tweak_when_ignoring_colors to check for `none` value of that property when determining if a color adjustment in needed. Adds a check for `none` when styling selections to make sure they can be styled in forced color modes. Differential Revision: https://phabricator.services.mozilla.com/D169000
…ear stop arguments valid Latest spec no longer handles `linear() == linear` and `linear(<single value>) == <single value>`. Differential Revision: https://phabricator.services.mozilla.com/D169955
…ments, not just chrome-docshells This will be necessary to make the new env var testable. Reviewed in: https://phabricator.services.mozilla.com/D168148
…able After the previous patches this is rather straight-forward. Reviewed in: https://phabricator.services.mozilla.com/D168148
There are no users of non-auto values, so we can just simplify some code and remove the property. Differential Revision: https://phabricator.services.mozilla.com/D170010
Nested image-set CSS functions should fail to parse as per spec. WPT tests (2 newly pass): https://github.com/web-platform-tests/wpt/blob/a2154e3f971f3630643741206ce02bbbc5f31d6f/css/css-images/image-set/image-set-parsing.html#L223-L239 Differential Revision: https://phabricator.services.mozilla.com/D170829
Clean-up some other test expectations while at it. Differential Revision: https://phabricator.services.mozilla.com/D170677
This unveils an issue with image-set() tests, which expect 0x to not parse (inconsistently with media queries). Fix the test, since the spec doesn't restrict the range of <resolution> values (and more importantly, it shouldn't allow open ranges). Differential Revision: https://phabricator.services.mozilla.com/D170762
In stead of having the css parser construct a color in it's own format and then converting it to what Gecko needs to perform operations, we now construct a Gecko friendly color type directly. Differential Revision: https://phabricator.services.mozilla.com/D170187
Now it's on by default everywhere, so all this is not needed. No behavior change effectively since the xul.css bits being removed effectively achieve the same. Differential Revision: https://phabricator.services.mozilla.com/D170944
* Remove some legacy appearance aliases that other engines don't
implement.
* Allow to pass with unimplemented <compat-auto> values, since per the
spec the idea of these is to get them removed, see
w3c/csswg-drafts#8506 for the ones we don't
implement.
* Also allow the `-moz-` prefix to be implemented, because we can't
quite get rid of it (people use it to remove the <input type=number>
buttons with -moz-appearance: textfield and so on), and the
alternative is to implement a bunch of non-standard ::-webkit-
pseudo-elements.
Differential Revision: https://phabricator.services.mozilla.com/D171243
Also, we make it animatable but don't apply it to the motion transform and don't run it on the compositor for now (so it works for getComputedStyle but doesn't have rendering result). Per spec: https://w3c.github.io/csswg-drafts/css-values/#calc-serialize, we tweak the WPT to let calc() serialize the percentage first, and maintain zero-valued terms, i.e. 0%. (We are doing the same thing as offset-anchor, so it should be fine with other browsers.) Besides, I tweak the serialization of shorthand a little bit so we match the implementation of WebKit. Differential Revision: https://phabricator.services.mozilla.com/D170972
Make display: -moz-box's visibility: collapse handling switchable by its own CSS property. Longer term maybe we should switch the front-end away from visibility: collapse altogether (there are some alternatives), but for now this will allow to move the front-end to switch to modern `display: flex` while keeping `visibility: collapse` work as in -moz-box. Differential Revision: https://phabricator.services.mozilla.com/D171472
Per the spec update, the new syntax is: `ray() = ray( <angle> && <ray-size>? && contain? )` And for `<ray-size>`: "If no <ray-size> is specified it defaults to closest-side." So `<ray-size>` is optional and we omit it if it's default value, for serialization. By the way, offset=* properties are supported only in Gecko, so we don't need a servo function to check the preference. Differential Revision: https://phabricator.services.mozilla.com/D171625
`NaN`, `infinity`, and `-infinity` angles should be specially serialized. Also fixed a few relevant WPT tests which did not follow spec. (see web-platform-tests/wpt#38825) Adjusted WPT test expectations, 40 newly pass 🎉 Differential Revision: https://phabricator.services.mozilla.com/D171658
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This continues #30681.
background-color-interpolation.htmlhas some new failures, but they also happen on Firefox so it's expected../mach build -ddoes not report any errors./mach test-tidydoes not report any errors