Commit graph

46758 commits

Author SHA1 Message Date
dependabot[bot]
230ffa0b95
build(deps): bump itoa from 1.0.1 to 1.0.9 (#30468)
Bumps [itoa](https://github.com/dtolnay/itoa) from 1.0.1 to 1.0.9.
- [Release notes](https://github.com/dtolnay/itoa/releases)
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.1...1.0.9)

---
updated-dependencies:
- dependency-name: itoa
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 18:08:58 +00:00
dependabot[bot]
9b1173a14b
build(deps): bump regex-automata from 0.3.8 to 0.3.9 (#30467)
Bumps [regex-automata](https://github.com/rust-lang/regex) from 0.3.8 to 0.3.9.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/regex-automata-0.3.8...regex-syntax-0.3.9)

---
updated-dependencies:
- dependency-name: regex-automata
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 17:59:36 +00:00
dependabot[bot]
0c6c3a2270
build(deps): bump atomic_refcell from 0.1.11 to 0.1.12 (#30466)
Bumps [atomic_refcell](https://github.com/bholley/atomic_refcell) from 0.1.11 to 0.1.12.
- [Commits](https://github.com/bholley/atomic_refcell/commits)

---
updated-dependencies:
- dependency-name: atomic_refcell
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 17:59:27 +00:00
dependabot[bot]
ccb3570b26
build(deps): bump webpki from 0.22.1 to 0.22.2 (#30465)
Bumps [webpki](https://github.com/briansmith/webpki) from 0.22.1 to 0.22.2.
- [Commits](https://github.com/briansmith/webpki/commits)

---
updated-dependencies:
- dependency-name: webpki
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 17:51:59 +00:00
dependabot[bot]
cc30e7ecd7
build(deps): bump rustix from 0.38.14 to 0.38.15 (#30461)
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.14 to 0.38.15.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.14...v0.38.15)

---
updated-dependencies:
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 17:46:19 +00:00
Oriol Brufau
ad00a11638 Update test expectations 2023-10-02 14:37:19 +00:00
Oriol Brufau
9d01be8e0f Avoid complaints from ./mach test-tidy 2023-10-02 14:37:19 +00:00
Oriol Brufau
601de9049c Further changes required by Servo 2023-10-02 14:37:19 +00:00
Jonathan Kew
2fb319ede2 style: Implement CSS @supports font-format(...) and font-tech(...) functions
These are gated by the same layout.css.font-tech.enabled pref as the
closely-related `tech()` function for the @font-face src descriptor;
once the spec questions are settled, we should enable them all together.

Differential Revision: https://phabricator.services.mozilla.com/D155359
2023-10-02 14:37:19 +00:00
Oriol Brufau
6f2861e466 Further changes required by Servo 2023-10-02 14:37:19 +00:00
Jonathan Kew
0cdf97c881 style: Put the @font-face src tech() function behind a pref, enabled only on Nightly for now
There are a couple of current issues/discussions that may lead to a change in the set of supported keywords, so we may want to hold back a little on actually shipping this.

- In https://github.com/w3c/IFT/pull/113, the WebFonts WG proposes several new incremental-* keywords (and maybe implies dropping the currently-defined incremental?)

- In https://github.com/w3c/csswg-drafts/issues/7633, I just proposed renaming the feature-* keywords to features-* (plural) for better readability; I'd like to see a decision on that before we ship this to release.

Differential Revision: https://phabricator.services.mozilla.com/D155458
2023-10-02 14:37:19 +00:00
Connor Pearson
c8e3dc4d19 style: When serializing background shorthand skip initial values and order values according to grammar
Differential Revision: https://phabricator.services.mozilla.com/D155077
2023-10-02 14:37:19 +00:00
Oriol Brufau
76192031d3 Further changes required by Servo 2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
cc09c2ffb1 style: Add basic support for nan / infinity in calc()
Fix some tests to:

  * Not assume `double` precision.
  * Account for recent working group resolution with regards to NaN: https://github.com/w3c/csswg-drafts/issues/7067#issuecomment-1111211295

Not sure I caught all, but normalizing to 0 was already our existing
behavior. This feature needs more work before it can be enabled more
generally, so make it nightly-only, for now.

Also, it's unclear per spec what the serialization for infinity*1s or so
should be. Right now we serialize to <very-big-number>s, which seems
reasonable, but some tests (but not others!) expect different behavior.

I left those untouched for now.

Differential Revision: https://phabricator.services.mozilla.com/D154883
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
dd849de9d9 style: Implement atan2(), and enable calc() trigonometric functions by default on nightly
We now have test coverage, so let's do this.

The remaining failures are just about infinity/nan, which is a
completely different feature.

Differential Revision: https://phabricator.services.mozilla.com/D154831
2023-10-02 14:37:19 +00:00
Oriol Brufau
03e84754cc Further changes required by Servo 2023-10-02 14:37:19 +00:00
Jonathan Kew
fa8b5f17e3 style: Add support for the @font-face src descriptor's tech() function
WPT tests to be added in a following patch.

Differential Revision: https://phabricator.services.mozilla.com/D154399
2023-10-02 14:37:19 +00:00
Jonathan Kew
52d1e07ee2 style: Use the style-system format hint directly in gfx, instead of mapping to a separate internal enum
Now that the style system has keywords for this, we don't need to define them in gfx
but can just use the enum directly. (No functional change, just code simplification.)

Depends on D154237

Differential Revision: https://phabricator.services.mozilla.com/D154238
2023-10-02 14:37:19 +00:00
Oriol Brufau
87bee1710c Further changes required by Servo 2023-10-02 14:37:19 +00:00
Jonathan Kew
31b2a54164 style: Accept keywords in addition to strings in the @font-face format() hint function
The CSS Fonts 4 spec requires this, and Safari (at least) has long supported it.

Depends on D154277

Differential Revision: https://phabricator.services.mozilla.com/D154237
2023-10-02 14:37:19 +00:00
Jonathan Kew
65e6e072ea style: Do not allow a list of strings in the @font-face src descriptor's format() function, only a single format string
This aligns with CSS Fonts 4 (rather than Fonts 3) and with behavior in other browsers;
I don't expect any significant breakage, given that specifying multiple format strings
was never supported in other engines AFAIK, and never served any useful purpose.

Depends on D154234

Differential Revision: https://phabricator.services.mozilla.com/D154235
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
b43ac59344 style: Don't use -moz-bool-pref for flexbox -moz-box emulation
Use a bool pref media query which allows dynamic changes to get
reflected instantly.

Differential Revision: https://phabricator.services.mozilla.com/D154449
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
648a6c14cf style: Add a chrome-only -moz-box-layout: legacy | flex, and use that to implement flexbox emulation
Differential Revision: https://phabricator.services.mozilla.com/D154153
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
4947dd027d style: Remove -moz-* display values enabled-in-content prefs
We have unshipped these since forever, no point in keeping the pref
around. Move the relevant tests to chrome ref/mochitests.

Differential Revision: https://phabricator.services.mozilla.com/D154152
2023-10-02 14:37:19 +00:00
Boris Chiou
deeb5efd84 style: Remove aspect-ratio preference
We shipped this in Firefox 89, one year ago. It should be okay to drop
this preference now.

Differential Revision: https://phabricator.services.mozilla.com/D153680
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
befb407057 style: Make color-scheme affect Windows' non-native menus
This matches what Linux and macOS do, and that allows the fix for bug 1782623
to work on Windows for unstyled selects.

This also simplifies the CSS (though it adds a new system color which is a bit
more annoying). I filed https://github.com/w3c/csswg-drafts/issues/7561 to
propose adding a more generic way to do this in the future (not just for
Firefox).

Differential Revision: https://phabricator.services.mozilla.com/D153549
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
f1e04f76f0 style: Properly fail to serialize grid shorthand when not roundtripping
Other browsers also don't roundtrip properly, but they fail less
severely.

Differential Revision: https://phabricator.services.mozilla.com/D152794
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
59da4326fd style: Remove nsTimingFunction and ComputedTimingFunction
They're simple wrappers of StyleComputedTimingFunction so we can remove
them.

Differential Revision: https://phabricator.services.mozilla.com/D152700
2023-10-02 14:37:19 +00:00
David Shin
c296356a8c style: linear(...) easing: Implement right-continuous behaviour on discontinuities
Differential Revision: https://phabricator.services.mozilla.com/D152078
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
2a1e89468a style: Ensure we cancel transitions without the need of an extra flush
When something switches to display: none, right now we rely on
StopAnimationsForElementsWithoutFrames(), which posts a restyle and the
previous ProcessPendingRestyles call was papering over it.

For other elements in the display none subtree it doesn't matter,
because we don't keep their styles around, but for the display: none
element themselves we do need to update transitions on time.

We could, possibly more generally, remove
StopAnimationsForElementsWithoutFrames() altogether and cancel
animations when we clear style data, perhaps... But that's probably
worth a follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D151600
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
a961519a56 style: Propagate flags from original property to aliases
Even we don't have internal aliases right now (and that seems a bit
silly) we do have pref-gated aliases. An alias ID passed to IsEnabled
with the wrong EnabledState would misbehave, assert, and crash.

Though we don't have such callers in the tree because InspectorUtils
passes only arguments that make us not look at the flags, it seems more
reliable this way.

Differential Revision: https://phabricator.services.mozilla.com/D151594
2023-10-02 14:37:19 +00:00
Oriol Brufau
9622d4912e Further changes required by Servo 2023-10-02 14:37:19 +00:00
Boris Chiou
e53f4ee4c7 style: Support animation-composition in keyframe at rules
So we can specify the keyframe-specific composite operation. However,
these is a spec issue about the default composite for CSS Animations:
https://github.com/w3c/csswg-drafts/issues/7476.

I choose to use auto as the default composite for missing keyframes to match
the definition in web-animations-1 because I think this makes more sense:
> If the keyframe-specific composite operation for a keyframe is not set, the
> composite operation specified for the keyframe effect as a whole is used for
> values specified in that keyframe.

Differential Revision: https://phabricator.services.mozilla.com/D150808
2023-10-02 14:37:19 +00:00
Boris Chiou
06f81aea07 style: Implement CSS animation-composition longhand in style system
This patch introduces animation-composition longhand but we don't
accept it in @keyframe rule for now. I will support this for @keyframe
in the patch series.

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

Differential Revision: https://phabricator.services.mozilla.com/D150299
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
047812cb98 style: Clean up a bit traversal culling
Differential Revision: https://phabricator.services.mozilla.com/D151544
2023-10-02 14:37:19 +00:00
Ziran Sun
461850d5e6 style: make contain-intrinsic-size *animatable*
Differential Revision: https://phabricator.services.mozilla.com/D151231
2023-10-02 14:37:19 +00:00
David Shin
af058e6332 style: C++ ComputedTimingFunction uses Rust's timing function calculation
This was made economical by having Rust's computed `easing::TimingFunction` use
a fully resolved function for `linear(...)` easing, as per draft resolution from
https://github.com/w3c/csswg-drafts/issues/7415

Differential Revision: https://phabricator.services.mozilla.com/D151295
2023-10-02 14:37:19 +00:00
David Shin
bb0f857dfa style: Port bezier edge cases handling from C++ to Rust
Differential Revision: https://phabricator.services.mozilla.com/D150569
2023-10-02 14:37:19 +00:00
David Shin
168c868330 style: Update rust's step function basd on C++ ComputedTimingFunction
Differential Revision: https://phabricator.services.mozilla.com/D150566
2023-10-02 14:37:19 +00:00
David Shin
a585d41910 style: Move Rust animation to ComputedTimingFunction
Differential Revision: https://phabricator.services.mozilla.com/D150565
2023-10-02 14:37:19 +00:00
Oriol Brufau
e6b834ffac Further changes required by Servo 2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
0e61a179ee style: Add color-mix to DevTools autocomplete
Differential Revision: https://phabricator.services.mozilla.com/D151180
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
c4b71c5b7f style: Minor indentation fix. DONTBUILD
MANUAL PUSH: White-space only change
2023-10-02 14:37:19 +00:00
Ziran Sun
6fec9d6f8c style: Add support for parsing the contain-intrinsic-size property from the CSS-sizing specification
Differential Revision: https://phabricator.services.mozilla.com/D151001
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
b0693b2f4d style: Make fullscreen modal
As per https://github.com/w3c/csswg-drafts/issues/7311.

Differential Revision: https://phabricator.services.mozilla.com/D150335
2023-10-02 14:37:19 +00:00
David Shin
c49a49d7a5 style: linear(...) easing: Simplify piecewise linear implementation given parsing simplification
Differential Revision: https://phabricator.services.mozilla.com/D150163
2023-10-02 14:37:19 +00:00
David Shin
e3e2ee64de style: linear(...) easing: Parsing should split a linear stop value into two for entries with both linear-stop-length set
This brings the behaviour inline with `linear-gradient(...)`

Differential Revision: https://phabricator.services.mozilla.com/D149926
2023-10-02 14:37:19 +00:00
David Shin
09fc10c5c2 style: linear(...) Easing: First linear entry should Get 0.0 assigned for input if not specified
Previously, had the smallest input value over all entries was assigned. However,
that does not match the behaviour of `linear-gradient(...)`, which this easing
function is modeled after.

Differential Revision: https://phabricator.services.mozilla.com/D149916
2023-10-02 14:37:19 +00:00
Emilio Cobos Álvarez
bb5de5833c style: Improve LookAndFeel color caching
To be honest, I'm a bit baffled that bug 1773795 caused a performance
regression, but I think it's because the standins codepath is not really
cached, so system colors that are "spoofed" always go through the
massive switch, which could potentially be expensive.

To fix, this, rejigger a bit the caches so that we key on both
color-scheme and use-standins. Also, while at it, make the set of colors
we spoof a single bitflag check, rather than relying on the compiler to
do something potentially smart with it.

I had to shuffle the order of colors around so that the expression to
initialize the bitfield is constexpr (doesn't go over 1 << 64), but
other than that this patch should be relatively straight-forward.

Differential Revision: https://phabricator.services.mozilla.com/D150100
2023-10-02 14:37:19 +00:00
Oriol Brufau
34c3767560 Further changes required by Servo 2023-10-02 14:37:19 +00:00