Skip to content

Support font-variant-alternates and @font-feature-values for servo#377

Open
simonwuelker wants to merge 19 commits into
servo:mainfrom
simonwuelker:font-variant-alternates
Open

Support font-variant-alternates and @font-feature-values for servo#377
simonwuelker wants to merge 19 commits into
servo:mainfrom
simonwuelker:font-variant-alternates

Conversation

@simonwuelker

@simonwuelker simonwuelker commented Jun 2, 2026

Copy link
Copy Markdown
Member

Servo PR: servo/servo#45308

delan and others added 19 commits May 3, 2026 03:55
Any ancestors of this commit are from upstream mozilla-central, with
some filtering and renaming. Our patches and sync tooling start here.

The sync tooling has all been squashed into this commit, based on:
https://github.com/servo/stylo/commits/64731e10dc8ef87ef52aa2fb9f988c3b2530f3a7
This is a rebase of 40aa59d

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
- Bump stylo_* to 0.17.0
- Bump selectors to 0.38.0
- Bump to_shmem to 0.4.0

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
…operties (servo#360)

For standard longhands, `computed_value_to_string()` calls
`computed_or_resolved_value()`, which uses `to_resolved_value()`. But
for custom properties, `computed_value_to_string()` was returning the
unresolved computed value. Now it will use `to_resolved_value()` too.

See https://phabricator.services.mozilla.com/D287814 for reference.

Servo PR: servo/servo#44856

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Servo no longer uses the unsynchronized animation setup that's described
in the comment and `AtomicRefCell` is faster than `RwLock`. This change
has Servo use the same locking design that Gecko uses in order to
improve the performance of style locking / unlocking.

Servo PR: servo/servo#44883

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Companion PR for servo/servo#44903

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Companion PR for servo/servo#44950

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Static preferences are accessed by Stylo in very hot parts of restyling,
so this change exposes access to these preferences via `AtmicBool` and
`AtomicI32` instead of via `RwLock<HashMap<...>>`. This eliminates a
good deal of hashing work from profiles of layout hammering benchmarks.
In general, removing this work from styling will have beneficial
effects.

Now preferences are defined via a TOML file which is used to generate a
store of atomic primitives which are controlled via two macros.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
…servo#354)

- The keyframe selection used <= for normal direction, causing the first
keyframe to be selected at progress 0; changed to < for normal direction
(kept <= for reverse to avoid
servo#342 (comment)) and
added direction‑aware step‑function handling.
- Guard against division‑by‑zero for zero‑length keyframe intervals.

### Make early return happen earlier:
1. total_progress == 1.0 and total_progress < 0 now handled immediately.
Also make it direction aware.
2. Zero-interval: we exit early to avoid division‑by‑zero in
`percentage_between_keyframes`

[Try](https://github.com/servo/servo/runs/68226116022)
Servo PR: servo/servo#44365

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
To fix "Node.js 20 actions are deprecated. The following actions are
running on Node.js 20 and may not work as expected: actions/checkout@v4.
Actions will be forced to run with Node.js 24 by default starting June
2nd, 2026. "

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
This allows some `AttrValue` variants, the ones that are easily
serializable and are sometimes set without existing serializations, to
be lazily serialized. The goal here is to allow storing these values,
but only serializing when necessary.

Servo PR: servo/servo#44931

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Servo PR: servo/servo#45059

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Servo PR: servo/servo#45142

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants