The workflow is now used both for regular releases and nightly releases.
Testing: Not tested, it's a simple rename and nothing should rely on the
name `nightly.yml` (grep search)
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
(cherry picked from commit f99d9689b8)
When doing event handling on desktop servoshell, ensure that
`WindowEvent::Focused(true)` is forwarded to egui. This makes it so that
egui knows to show the text cursor in the URL bar input field.
Testing: We currently do not have a way to test visual behavior at this
level of servoshell.
Fixes: #42091.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
(cherry picked from commit 489c0f0159)
This change adds support for the unspecified `-webkit-text-security`
property. All major browsers support this property. The benefit of
adding this property is that the first addition of a prefixed CSS
property will allow us to start running MotionMark.
This depends on servo/stylo#295.
Testing: Three new Servo-specific tests are added for this change. There
are a few `-webkit-text-security` tests in WPT, but they do not seem
to test basic functionality.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
When CSS tables collapse borders, we need to compare their specificities
to determine which border wins. One thing that the specificity takes
into account is the border-style. We were manually mapping each possible
BorderStyle to its priority, but Stylo already provides Ord, so we can
just use that instead.
Testing: Not needed, no behavior change
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This change fixes a crash in options collections due to the fact that a
`<select>` element was being considered an ancestor of itself. This
regression likely introduced in #40776.
This change also fills in the specification text for
`HTMLOptionCollect::Add`.
Testing: This change adds a WPT crash test.
Fixes: #41080.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Make it runs at the correct time and then also performs checks for its
scheme. The CSP check is left for a follow-up PR.
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
With import attributes enabled we can now support non javascript
modules, for now we are limited to json ones.
Switch `GlobalScope` `modulemap` to be keyed by the tuple url and
module's type.
Testing: Enabled a new directory, new tests should pass
---------
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
We can avoid doing 2 traversals and stop at the first matching child we
find. This ensures we are never doing the longest iteration.
Testing: covered by WPT
Signed-off-by: webbeef <me@webbeef.org>
Due to timing issues, history changes for closed `WebView`s can be
processed in the constellation. The best way to handle this would be to
move these operations to be methods on the `ConstellationWebView`, but
that is a larger refactor. This changes makes it so that the current
code handles this situation more gracefully.
Testing: It is difficult to test this issue because it requires opening
and
closing WebViews and is difficult to reproduce. This is a speculative
fix.
Fixes: #41079.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
By reporting memory usage of rust objects back to SM it can trigger GC
sooner and release more memory (I hope that we could use this to avoid
OOB in webgpu in the future).
Currently we use simple `size_of::<DomStruct>() +
size_of::<Box<DomStruct>>()` but it's possible to override reported
memory with `update_memory_size(self, nbytes);` on reflector. This is
mostly useful for canvases and buffers which usually have large
associated data.
Testing: None, but I am wondering if we can connect this to
`about:memory`.
Fixes: #42168
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This changes 3 occurences of HashSet to FxHashSet for speed
improvements:
- dom/notifications::pending_request_ids: Pending Request ids are
Uuid::new_v4, hence, not user assignable.
- script_thread: painters_generating_frames: These are pipeline ids and,
hence, ideal for FxHash.
- script_thread:: docs_with_no_blocking_loads: These are Dom<Document>
and their hash is the ptr address, so ideal for FxHash.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Testing: These do not change functionality.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Because of the deprecation of bincode we are switching to postcard
(which will already be used by ipc-channel).
This changes all usages to postcard.
Sadly there are still some dependencies using bincode, so we are
probably increasing the binary size.
Currently we do not modify the deny.toml because we have dependencies
that depend on bincode.
Testing: Compilation should be enough for test.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Bumps [zerocopy](https://github.com/google/zerocopy) from 0.8.35 to
0.8.36.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google/zerocopy/releases">zerocopy's
releases</a>.</em></p>
<blockquote>
<h2>v0.8.36</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>Add generic <code>Ptr::try_with</code> by <a
href="https://github.com/joshlf"><code>@joshlf</code></a> in <a
href="https://redirect.github.com/google/zerocopy/pull/2946">google/zerocopy#2946</a></li>
<li>[pointer] Fix bug in <code>try_cast_into_no_leftover</code> by <a
href="https://github.com/joshlf"><code>@joshlf</code></a> in <a
href="https://redirect.github.com/google/zerocopy/pull/2937">google/zerocopy#2937</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google/zerocopy/compare/v0.8.35...v0.8.36">https://github.com/google/zerocopy/compare/v0.8.35...v0.8.36</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1803e2c814"><code>1803e2c</code></a>
Release 0.8.36 (<a
href="https://redirect.github.com/google/zerocopy/issues/2948">#2948</a>)</li>
<li><a
href="a5aa985619"><code>a5aa985</code></a>
[pointer] Fix bug in <code>try_cast_into_no_leftover</code> (<a
href="https://redirect.github.com/google/zerocopy/issues/2937">#2937</a>)</li>
<li><a
href="d161a87fc5"><code>d161a87</code></a>
Add generic <code>Ptr::try_with</code> (<a
href="https://redirect.github.com/google/zerocopy/issues/2946">#2946</a>)</li>
<li><a
href="381021b662"><code>381021b</code></a>
Commit <code>Cargo.lock</code> and <code>tools/Cargo.lock</code> (<a
href="https://redirect.github.com/google/zerocopy/issues/2932">#2932</a>)</li>
<li>See full diff in <a
href="https://github.com/google/zerocopy/compare/v0.8.35...v0.8.36">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Added calls to download web font from stylesheet when stylesheets are
added to shadow root.
Testing: Manual testing. Added a new WPT testcase
---------
Signed-off-by: Minghua Wu <michael.wu1107@gmail.com>
All other browsers use a single configuration for their browser
invocations on WPT. Servo historically had two: servo and servodriver.
Now that we run WPT on Servo GitHub CI with Webdriver using the
servodriver, we can align our configuration with theirs.
The existing "servo" configuration is renamed to "servo_legacy" and
"servodriver" is then renamed to "servo". This way, we preserve the
"servo" product name as defined on wpt.fyi, but we do use its webdriver
configuration.
Since webdriver is not fully working yet for debugging purposes, we keep
the "servo_legacy" configuration now. In the future, once the debugging
story has improved, we can remove "servo_legacy".
All in all, this ensures that both on local, Servo GitHub CI and on
wpt.fyi we all use the exact same configuration. I tested this locally
by running the following test:
```
./mach test-wpt tests/wpt/tests/css/css-overflow/scrollbar-gutter-dynamic-004.html
```
This does times out with the servo binary and works with the servodriver
binary.
Running the servo_legacy configuration is done via the `--servo-legacy`
flag:
```
./mach test-wpt tests/wpt/mozilla/tests/mozilla/caption.html --servo-legacy
```
Fixes#40751
---------
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Moves the `Drop` implementation for `GPUCanvasContext` to a new
`DroppableGPUCanvasContext` struct.
This ensures the context destruction logic is correctly handled, as the
`GPUCanvasContext` struct itself is a DOM struct and should not have a
drop implementation. This change aligns with the requirement that DOM
types should not implement Drop.
Testing: No tests added
Fixes: #26488
Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
Add support for `:open` pseudo-class. This is supported on dialog,
details and select elements.
Stylo PR: servo/stylo#297
Testing: WPTs but also
`data:text/html,<select><option>123</option></select><style>:open {
background-color: red; }</style>`. There are some tests that now error,
these previously failed due to missing `:open` and now make it further
along hitting test_driver.send_keys() which causes them to error
Fixes: #41277.
---------
Signed-off-by: Luke Warlow <lwarlow@igalia.com>
When a node has `attachShadow()` successfully called on it, its
descendants are no longer in the flat tree. This change makes it so that
the layout data of these descendants is cleared during `attachShadow()`
so that the node is no longer considered to have a layout box.
Testing: This change includes a new WPT crash test.
Fixes: #42215.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
When doing operations on `RopeIndex` that need to make slices of lines,
this change makes it so that the resulting index does not intersect a
character. This is important because Rust will panic if you attempt to
slice a string that way.
Testing: This change adds a WPT crash test and a `Rope` unit test.
Fixes: #42217.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Selinux enabled systems have stricter permissions and a bind mount might
not work correctly. Hence, we copy the package list.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Testing: Build the devcontainer on fedora machine.
---------
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
This improves the sending (and receiving) of displaylist.
- In the case that we are not in IPC mode, we essentially replace
serialization with a clone of 'DisplayListInfo'.
This the desktop total time spend in the receiving the DisplayList by
half and increases the sending slightly.
Perfetto shows for sending 51_354_000 vs 71_476_000 and receiving from
440_455_008 vs 194_509_000). All numbers are on desktop machines but
mobile phones on different tests are similar big improvements.
- More surprisingly, in the IPC cases. we still get a slight improvement
in this case too. We go from the overall handling case from 24_842_000
to 30_989_752 (handle displaylist) but a significant decrease in the
send decrease in the sending from 88_199_572 to 23_025_033.
The reason is a bit of a mystery to me.
This also makes the code cleaner as we do not have to implement the
GenericByteReceiver channel.
Testing: It essentially just changes types and how they are serialized.
---------
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Ensure that the UA shadow DOM for `<textarea>` is initialized when we
are binding to a tree.
Testing: New WPT.
Fixes: #42231
---------
Signed-off-by: Jo Steven Novaryo <steven.novaryo@gmail.com>
While working on #42138 I found out that import attributes are an opt-in
feature, which can be enabled by `ContextOptionsRef`'s
`compileOptions_`.
This is likely the reason why `GetRequestedModuleSpecifier` wouldn't
fail.
Now we catch any `GetRequestedModuleSpecifier` exception and pass it to
`load_state`.
Testing: Covered by existing tests
---------
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
Bumps [iana-time-zone](https://github.com/strawlab/iana-time-zone) from
0.1.64 to 0.1.65.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/strawlab/iana-time-zone/blob/main/CHANGELOG.md">iana-time-zone's
changelog</a>.</em></p>
<blockquote>
<h2>[0.1.65] - 2026-01-28</h2>
<h3>Changed</h3>
<ul>
<li>Add wasi support (<a
href="https://redirect.github.com/strawlab/iana-time-zone/pull/190">#190</a>)</li>
<li>Add support for emscripten (<a
href="https://redirect.github.com/strawlab/iana-time-zone/pull/189">#189</a>)</li>
<li>Add s390x target to Rust CI workflow (<a
href="https://redirect.github.com/strawlab/iana-time-zone/pull/182">#182</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3726968181"><code>3726968</code></a>
Bump version number to 0.1.65</li>
<li><a
href="f0c7cd4a33"><code>f0c7cd4</code></a>
CI: add github release workflow for trusted publishing</li>
<li><a
href="7ef287061f"><code>7ef2870</code></a>
Merge pull request <a
href="https://redirect.github.com/strawlab/iana-time-zone/issues/190">#190</a>
from bschoenmaeckers/wasi</li>
<li><a
href="5c72c92ac5"><code>5c72c92</code></a>
CI: test wasi</li>
<li><a
href="06ad6d8f3d"><code>06ad6d8</code></a>
Add wasi support</li>
<li><a
href="3e5688c9f0"><code>3e5688c</code></a>
Merge pull request <a
href="https://redirect.github.com/strawlab/iana-time-zone/issues/189">#189</a>
from bschoenmaeckers/emscripten</li>
<li><a
href="4c0e9698f7"><code>4c0e969</code></a>
Pin actions to hash</li>
<li><a
href="b55c8dd061"><code>b55c8dd</code></a>
Add ci job</li>
<li><a
href="187c2a972d"><code>187c2a9</code></a>
Drop <code>emscripten-functions</code> dependency</li>
<li><a
href="a9ddeda718"><code>a9ddeda</code></a>
Use <code>emscripten_functions</code></li>
<li>Additional commits viewable in <a
href="https://github.com/strawlab/iana-time-zone/compare/v0.1.64...v0.1.65">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Per CSS-CONTENT-3, one of the possible values of the `content` CSS
property is `<content-replacement>`, which evaluates to a single
`<image>`. This value is also allowed on regular elements, not just on
pseudo-elements, and it will make the element into a replaced element
representing the given image, discarding its contents.
This patch implements this in `traverse_element`: if the `display` value
is not `none` or `contents`, we first check whether the `contents`
property should make the element replaced, and if it shouldn't, then we
check whether the element itself is replaced or a widget.
Per the spec, an invalid image must be treated as representing a
transparent black image with zero natural width and height – in
particular, it must not show a broken image icon. We added the method
`ReplacedContents::zero_sized_invalid_image` to implement this.
This patch adds support for image URL references, but not for color
gradients, which are treated as invalid images. The reason for this is
that currently Servo does not support gradients in
`ReplacedContentKind`. This is left as a follow-up change.
Testing: Some of the existing `css/css-content/element-replacement*` WPT
tests now pass with this patch. We also added some new ones dealing with
replacing the document root.
Fixes: #41479
Signed-off-by: Andreu Botella <andreu@andreubotella.com>
The legacy alignment presentation hints differed from the specification
in a way that was breaking them when dealing with `<img>`. The culprit
seems to be the selector `img[type = image i]` which seems a little
nonsensical. This change makes the CSS in `presentational-hints.css`
match what is found in the specification.
There is still an issue with "bottom" alignment of replaced elements and
more investigation is necessary to understand what specified or
unspecified behavior we are failing to implement.
Testing: This fixes a variety of WPT tests.
Fixes: #41048.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
There were some `#[serde(untagged)]` and `#[serde(skip*)]` annotations
in the shared devtools types. These are needed for correct JSON
serialization when sending messages to Firefox, but they fail in
multiprocess mode since we are sharing them through the IPC channel with
bincode, which doesn't support certain serde tags.
The workaround is to keep all shared types free from problematic
annotations, and defining wrapping types that are only used in the
devtools crate.
One instance are console messages and page errors. They have been moved
to `console.rs`, with `shared/devtools` only keeping the parts that are
needed for communication between threads.
The other instance are auto margins. Now the final message is built in
`page_style.rs`.
Apologies since both of them were introduced by me, I wasn't aware that
we were limited by bincode in multiprocess mode. A warning has been
added to `shared/devtools` listing the problematic annotations that
shouldn't be used in this file.
Testing: `mach test-devtools` and manual testing using `--multiprocess`.
Fixes: #42170
Signed-off-by: eri <eri@igalia.com>
This bumps stylo to allow configuring the stack size of the stylo
threads, which fixes crashes with asan and debug builds.
Testing: Manual testing with `--with-asan` and with the debug profile.
Fixes: #40814
---------
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This inserts a cache in painter that keeps data for animating images in
Painter.
We then can send cheap ImageUpdate::UpdateAnimation to just get the
required bytes from the cache.
There are some warts with the current design:
- ImageUpdate::AddImage only adds images in the cache that have the data
in SerializableImageData::Raw. Potentially there could be image
animations in other ways which then for a following
ImageUpdate::UpdateAnimation we do not have the data. We can probably
fix this on the sender side.
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Testing: Tested on the usecase in
https://github.com/servo/servo/issues/41818 and WPT test here:
https://github.com/Narfinger/servo/actions/runs/21063721427
Fixes: https://github.com/servo/servo/issues/41818
---------
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
This is a temporary fix until a more complete solution, such
as the one from #42169, works consistently.
Testing: This should be tested by the CI run.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This switches Servo to the version of WebRender published on crates.io.
Testing: This change should not change behavior.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Continuing the implementation of `VisualViewport`, the resizing of
`PinchZoom` should be notified to `ScriptThread` to update the
`VisualViewport` interface and to fire the appropriate JS event. Top
level `Window`/`Pipeline` would have a `VisualViewport` interface that
mirrors the `PinchZoom` viewport, while nested `Window` would have a
default value that represent layout viewport of the relevant iframe. The
`VisualViewport` of an iframe is updated after each reflow that
calculate the rectangle of the iframe.
The updates of DOM's `VisualViewport` occurs immediately (instead of
waiting for the event loop like the viewport) but integrates with the
event loop for the JS events. This behavior would helps with the fact
that `VisualViewport` needs to be updated both when it is scrolled or
resized.
Testing: Existing WPTs and new unit test.
Part of: https://github.com/servo/servo/issues/41341
---------
Signed-off-by: Jo Steven Novaryo <steven.novaryo@gmail.com>
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.54 to 4.5.55.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.55</h2>
<h2>[4.5.55] - 2026-01-27</h2>
<h3>Fixes</h3>
<ul>
<li>Fix inconsistency in precedence between positionals with a
<code>value_terminator("--")</code> and escapes
(<code>--</code>) where <code>./foo -- bar</code> means the first arg is
empty, rather than escaping future args</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.55] - 2026-01-27</h2>
<h3>Fixes</h3>
<ul>
<li>Fix inconsistency in precedence between positionals with a
<code>value_terminator("--")</code> and escapes
(<code>--</code>) where <code>./foo -- bar</code> means the first arg is
empty, rather than escaping future args</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4c039309b6"><code>4c03930</code></a>
chore: Release</li>
<li><a
href="fb948a25ff"><code>fb948a2</code></a>
docs: Update changelog</li>
<li><a
href="0f602396a3"><code>0f60239</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6057">#6057</a>
from GilShoshan94/master</li>
<li><a
href="83d4206ff1"><code>83d4206</code></a>
test: Update fixture to cover all cases + styling</li>
<li><a
href="b13274d869"><code>b13274d</code></a>
fix: Rename <code>pvs</code> to <code>dvs</code> for default values</li>
<li><a
href="df92ea02bb"><code>df92ea0</code></a>
feat(help): Allow styling for inline context</li>
<li><a
href="0e535e518d"><code>0e535e5</code></a>
chore(deps): Update compatible (dev) (<a
href="https://redirect.github.com/clap-rs/clap/issues/6054">#6054</a>)</li>
<li><a
href="de57287f30"><code>de57287</code></a>
chore(deps): Update Rust Stable to v1.88 (<a
href="https://redirect.github.com/clap-rs/clap/issues/6048">#6048</a>)</li>
<li><a
href="5504a13468"><code>5504a13</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6047">#6047</a>
from clap-rs/revert-6045-cleanup-docsrs</li>
<li><a
href="c1c243c924"><code>c1c243c</code></a>
Revert "Cleanup docs.rs related issues"</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.54...clap_complete-v4.5.55">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Euclid Ye <euclid.ye@huawei.com>
This change modifies `LineBreaker` to properly handle `word-break:
keep-all` by adjusting the arguments passed to
`icu_segmenter::LineSegmenter`.
- [CSS
specification](https://drafts.csswg.org/css-text/#valdef-word-break-keep-all)
- Stylo PR : servo/stylo#289
Testing: Created a WPT test for this change, specifically:
`tests/wpt/tests/css/css-text/word-break/word-break-keep-all-011.html`.
Fixes: #42047
---------
Signed-off-by: Richard Tjokroutomo <richard.tjokro2@gmail.com>