This upgrades surfman and webxr. The main benefit to this upgrade is
that surfman (and thus libservo) no longer depends on winit. servoshell
still does, but this should make upgrades a lot easier.
* WebIDL use FLoat64Array
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* Use to_vec to convert array to vec
* avoid allocating a new vec
---------
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
The new strategy for dependencies with upstream in Gecko is to manage
them in separate repositories, which will more easily allow rebasing our
changes on top of newer Gecko work.
* Make HeapFloat32Array generic
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* Define all the methods defaults on the HeapTypedArray trait
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* Use generic type instead of trait
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
---------
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* use app unit in replaced elements
* more app unit usage
* Avoid unnecessary into()
* Run ./mach fmt
* use scaleby
* update
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This is a small cleanup that moves and renames this class. The rename is
simply because we are exposing a lot about the details of Servo's
rendering in the API and it makes sense to start thinking about
abstracting that away a bit.
This also moves the struct to `gfx`, which does have an effect on
Servo's dependency graph. This adds a new dependency on gfx to
`compositing`, but `compositing` had a transitive dependency on
gfx before through `canvas`.
* layout: Round getClientRect queries to pixels properly
Instead of just flooring all pixels in getClientRect queries, we should
round the rectangle.
* Fix scrollWidth/scrollHeight too, and tests
* Tests passing
* Test expectation for legacy layout
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This adds support for table `border-spacing` property. Note that we do
not yet support the collapsed border model.
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Matrix in CI and mach try with presets
* small fixups
* names in trigger try run comment
* let
* f
* rename step
* fix running try on win
* fix try branch full
* py3.10
* typo
* Make unit-tests default to false, except in basic os runs
Fixes https://github.com/servo/servo/issues/31174
* make full use linux-wpt & linux-wpt also include unit-tests
so full is equal to main workflow
* Stylish fixes
* cmp json as dict
The Android documentation was missing a few packages that needed to be
installed as well as some quotes to properly run the commands. In
addition, trim down the build setup and move the more complex contents
to the wiki.
Update the GStreamer runtime deps to reflect reality.
* layout: Implement computation of table column widths
This change implements the various steps of table column width
computation, ignoring features that don't exist yet (such as separated
borders, column elements, and colgroups).
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Fix an issue with the assignment of column percent width
* Respond to review comments
---------
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Bumps [pin-project](https://github.com/taiki-e/pin-project) from 1.1.3
to 1.1.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/pin-project/releases">pin-project's
releases</a>.</em></p>
<blockquote>
<h2>1.1.4</h2>
<ul>
<li>Suppress <code>clippy::missing_docs_in_private_items</code> and
<code>clippy::missing_inline_in_public_items</code> lints in generated
code. (<a
href="https://redirect.github.com/taiki-e/pin-project/pull/356">#356</a>,
thanks <a
href="https://github.com/daxpedda"><code>@daxpedda</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md">pin-project's
changelog</a>.</em></p>
<blockquote>
<h2>[1.1.4] - 2024-01-25</h2>
<ul>
<li>Suppress <code>clippy::missing_docs_in_private_items</code> and
<code>clippy::missing_inline_in_public_items</code> lints in generated
code. (<a
href="https://redirect.github.com/taiki-e/pin-project/pull/356">#356</a>,
thanks <a
href="https://github.com/daxpedda"><code>@daxpedda</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6aefde4e39"><code>6aefde4</code></a>
Release 1.1.4</li>
<li><a
href="017dbf710e"><code>017dbf7</code></a>
Update changelog</li>
<li><a
href="0b650935a6"><code>0b65093</code></a>
Move lint test to sub-crate</li>
<li><a
href="3b38bcf885"><code>3b38bcf</code></a>
Add <code>allow(clippy::missing_docs_in_private_items)</code></li>
<li><a
href="e0edbbcf33"><code>e0edbbc</code></a>
Ignore new clippy lints in tests</li>
<li><a
href="b0dd3419e2"><code>b0dd341</code></a>
Remove extra comma</li>
<li><a
href="3a2ccfe123"><code>3a2ccfe</code></a>
Ignore more clippy lints at workspace level</li>
<li><a
href="05c247eef3"><code>05c247e</code></a>
ci: Check with both -Z minimal-versions and -Z
direct-minimal-versions</li>
<li><a
href="f19afbc6fa"><code>f19afbc</code></a>
ci: Use taiki-e/github-actions/.github/workflows/miri.yml reusable
workflow</li>
<li><a
href="8c6cfbf36f"><code>8c6cfbf</code></a>
Update ui test output to nightly-2024-01-09</li>
<li>Additional commits viewable in <a
href="https://github.com/taiki-e/pin-project/compare/v1.1.3...v1.1.4">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>
Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.14.0 to
1.14.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Lokathor/bytemuck/blob/main/changelog.md">bytemuck's
changelog</a>.</em></p>
<blockquote>
<h2>1.14.1</h2>
<ul>
<li>docs clarifications.</li>
</ul>
<h2>1.14</h2>
<ul>
<li><code>write_zeroes</code> and <code>fill_zeroes</code> functions:
Writes (to one) or fills (a slice)
zero bytes to all bytes covered by the provided reference. If your type
has
padding, this will even zero out the padding bytes.</li>
<li><code>align_offset</code> feature: causes pointer alignment checks
to use the
<code>align_offset</code> pointer method rather than as-casting the
pointer to <code>usize</code>.
This <em>may</em> improve codegen, if the compiler would have otherwise
thought that
the pointer address escaped. No formal benchmarks have been done either
way.</li>
<li><code>must_cast</code> feature: Adds <code>must_*</code> family of
functions. These functions will
fail to compile if the cast requested can't be statically known to
succeed.
The error messages can be kinda bad when this happens, but eliminating
the
possibility of a runtime error might be worth it to you.</li>
</ul>
<h2>1.13.1</h2>
<ul>
<li>Remove the requirement for the <em>source</em> data type to be
<code>AnyBitPattern</code> on
<code>pod_collect_to_vec</code>, allowing you to pod collect vecs of
<code>char</code> into vecs of
<code>u32</code>, or whatever.</li>
</ul>
<h2>1.13</h2>
<ul>
<li>Now depends on <code>bytemuck_derive-1.4.0</code></li>
<li>Various small enhancements that would have been patch version
updates, but
which have been rolled into this minor version update.</li>
</ul>
<h2>1.12.4</h2>
<ul>
<li>This has additional impls for existing traits and cleans up some
internal code,
but there's no new functions so I guess it counts as just a patch
release.</li>
</ul>
<h2>1.12.3</h2>
<ul>
<li>This bugfix makes the crate do stuff with <code>Arc</code> or not
based on the
<code>target_has_atomic</code> config. Previously, some targets that
have allocation but
not atomics were getting errors. This raises the MSRV of the
<code>extern_crate_alloc</code> feature to 1.60, but opt-in features are
<em>not</em> considered
to be hard locked to 1.34 like the basic build of the crate is.</li>
</ul>
<h2>1.12.2</h2>
<ul>
<li>Fixes <code>try_pod_read_unaligned</code> bug that made it always
fail unless the target
type was exactly pointer sized in which case UB <em>could</em> happen.
The
<code>CheckedBitPattern::is_valid_bit_pattern</code> was being asked to
check that a
<em>reference</em> to the <code>pod</code> value was a valid bit
pattern, rather than the actual
bit pattern itself, and so the check could in some cases be
illegally</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1e1a22e5ea"><code>1e1a22e</code></a>
chore: Release bytemuck version 1.14.1</li>
<li><a
href="2ae1a14a3f"><code>2ae1a14</code></a>
changelog</li>
<li><a
href="8dc32b1e50"><code>8dc32b1</code></a>
Explicitly document that pod_read_unaligned and try_pod_read_unaligned
don't ...</li>
<li><a
href="085a5f573e"><code>085a5f5</code></a>
Revise the crate-level docs.</li>
<li><a
href="c705218630"><code>c705218</code></a>
Added custom crate path with tests (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/209">#209</a>)</li>
<li><a
href="fd27a5b018"><code>fd27a5b</code></a>
Add from_box_bytes and box_bytes_of with BoxBytes type (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/211">#211</a>)</li>
<li><a
href="d10fbfc6ff"><code>d10fbfc</code></a>
allow deriving <code>CheckedBitPattern</code> for enums with fields (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/171">#171</a>)</li>
<li>See full diff in <a
href="https://github.com/Lokathor/bytemuck/compare/v1.14.0...v1.14.1">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>
Bumps [regex-automata](https://github.com/rust-lang/regex) from 0.4.4 to
0.4.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/rust-lang/regex/commits/regex-automata-0.4.5">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>
Shape text during InlineFormattingContext construction rather than doing
it twice during fragment tree construction. This is a step on the way
toward proper font fallback.
This also moves all `TextRun` related code into `text_run.rs` to try to
trim down the size of `inline.rs`.
<!-- 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
- [x] These changes do not require tests because this should only have
performance impacts.
<!-- 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. -->
<!-- Please describe your changes on the following line: -->
part #31064
---
<!-- 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] These changes do not require tests because there is no behavior
changes
<!-- 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. -->
There types are not used we can migrate them, in next PR I will make
`HeapFloat32Array` generic and convert ArrayBufferView, ArrayBuffer,
Uint8ClampedArray and Float64Array.
Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com>
* Replace time with std::time in components/gfx
Signed-off-by: devjos <github_11837948@feido.de>
* Remove time dependency in components/gfx/Cargo.toml
Signed-off-by: devjos <github_11837948@feido.de>
---------
Signed-off-by: devjos <github_11837948@feido.de>
This fixes an issue where the dylib for harfbuzz cannot be found when
running unit tests on some systems, because unit tests don't get their
rpaths adjusted during build. This is quite likely an issue with dylib
dependency management. We just need a bit more exploration of how this
is traditionally handled.
* constellation: focusing, closing, and native window visibility
* rename “browser” to “webview”, “unfocus” to “blur”
* remove native window visibility from constellation
* rename more “browser” to “webview”
* guard clauses
* don’t automatically focus when no webviews are focused
* comment spec steps for window.close()
* use format interpolation
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* fix formatting
* rename “Webview” to “WebView” in types and type parameters
* remove unused method
* fix libsimpleservo
---------
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Replaced elements should never be able to have a layout internal
display, according to the specification. This change makes it so that
the used value of replaced element's display is always inline, as the
specification says.
Before counting whitepsace-only `GlyphStore`s where counted as a single
justification opportunity when trimming whitespace from the front and
back of lines. This isn't correct, instead count the actual number of
word seperators of the trimmed `GlyphStore`s.
These two counts can be different in the case where whitespace collapse
isn't happening yet (flexbox). In addition, using word seperators means
the code is making less assumptions about the contents of the line and
is more robust.
This fixes some crashes in flexbox tests on debug builds.
Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
* build: Add support for Visual Studio 2022 and VC143 DLLs
This change adds supports fot Visual Studio 2022 and the VC143 (current)
version of the Visual Studio CRT. In addition, it reworks the way that
Visual Studio is found, returning all installations in a generator,
separately finding it via vswhere.exe, searching paths, and via
environment variables.
All of these installations are searched for the DLLs with highest
priority given to the highest version of MS Visual Studio installed. The
hope is that this makes the process more robust and properly handles
having multiple versions installed, but only one with the correct
runtime DLLs.
* Update based on review comments
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
---------
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>