Commit graph

48222 commits

Author SHA1 Message Date
Martin Robinson
a7838ae7cc
layout: Have TextRun::glyph_run_is_preserved_newline take into account TextRunSegment offset (#32119)
A `TextRun` is composed of `TextRunSegment`s that are composed of
`GlyphRun`s.
`TextRun::glyph_run_is_preserved_newline` is indexing into the `TextRun`
text, but the `GlyphRun` indexes that it uses are relative to the
`TextRunSegment`
offset. Before the code was using the offset without incorporating the
`TextRunSegment` offset. This led to miscalculation of preserved newline
location while processing text content.

<!-- 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] There are tests for these 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. -->
2024-04-21 20:09:49 +00:00
Nolan Lawson
fa92b0f65f
test: add WPT user-timing tests (#32123)
As discussed in
https://github.com/servo/servo/pull/32120#issuecomment-2068017033, this
adds the WPT `user-timing` tests to the default list of WPT tests, and
also commits the current status of the `user-timing` tests.


---
<!-- 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] There are tests for these 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. -->
2024-04-21 16:37:55 +00:00
Servo WPT Sync
f3c2edb743
Update web-platform-tests to revision b'015f19c5b653f51f2e38ebe97ec0ff62523f57de' (#32121) 2024-04-21 05:02:25 +00:00
dependabot[bot]
bcf538dbc8
build(deps): bump rustls from 0.21.10 to 0.21.11 (#32116)
Bumps [rustls](https://github.com/rustls/rustls) from 0.21.10 to 0.21.11.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.10...v/0.21.11)

---
updated-dependencies:
- dependency-name: rustls
  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>
2024-04-19 18:04:30 +00:00
Ekta Siwach
96c9a2a8bb
layout: Have current_block_direction_position in PlacementState use Au (#31948) 2024-04-19 14:30:32 +00:00
komuhangi
007a72fe4d
Fixed some clippy warnings in components (#32107)
* Fixed some clippy warnings in components

* Updated handling of NaN values in comparison

* Updated formatting using ./mach fmt
2024-04-19 08:48:01 +00:00
Son of Binary
f70413baba
script: Add an implementation of Default for Documents (#32048) 2024-04-19 08:45:38 +00:00
Oluwatobi Sofela
df4c56efa4
clippy: Fix collapsible_if warning (#32109) 2024-04-19 08:29:01 +00:00
Oluwatobi Sofela
21ea6d21f0
clippy: Fix explicit_auto_deref warnings in components/script (#32113)
* clippy: Fix explicit_auto_deref warnings

* refactor: Change basic comments to rustdoc comments
2024-04-19 02:47:40 +00:00
dependabot[bot]
5ac756fd09
build(deps): bump syn from 2.0.59 to 2.0.60 (#32111)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.59 to 2.0.60.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.59...2.0.60)

---
updated-dependencies:
- dependency-name: syn
  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>
2024-04-18 16:51:54 +00:00
Oluwatobi Sofela
2a967119c7
clippy: Fix map_flatten warning in components/script (#32110)
* clippy: Fix map_flatten warning

* refactor: Change plain comments to rustdoc comments
2024-04-18 15:43:53 +00:00
Oluwatobi Sofela
f89c53bd51
clippy: Fix clone_on_copy warnings (#32108) 2024-04-18 14:18:14 +00:00
Martin Robinson
5393d30a8e
Simplify FontHandle and rename it to PlatformFont (#32101)
* Simplify `FontHandle` and rename it to `PlatformFont`

Rename it to `PlatformFont` and move the `FontTemplate` member to
`Font`, because it's shared by all platforms.

* Update components/gfx/platform/freetype/font.rs

Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>

* Fix build for MacOS and Windows

---------

Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2024-04-17 17:44:34 +00:00
dependabot[bot]
e9e46f4c0b
build(deps): bump proc-macro2 from 1.0.80 to 1.0.81 (#32105)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.80...1.0.81)

---
updated-dependencies:
- dependency-name: proc-macro2
  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>
2024-04-17 17:15:29 +00:00
dependabot[bot]
03a64cf06c
build(deps): bump serde from 1.0.197 to 1.0.198 (#32104)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.197 to 1.0.198.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.197...v1.0.198)

---
updated-dependencies:
- dependency-name: serde
  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>
2024-04-17 17:10:06 +00:00
Martin Robinson
4ec61c2cdc
layout: Add support for clear on <br> elements (#32094)
`<br>` elements are a bit "special" in the sense that they defer a
linebreak, but can also have `clear` applied to them. The `clear` that
they supply should be applie *after* the linebreak is processed. This
change adds special processing for this situation.

Fixes #15402.
2024-04-17 14:15:06 +00:00
Martin Robinson
83dec920dd
Rename FontTemplateInfo to FontTemplateAndWebRenderFontKey (#32100)
This clarifies what this type does a bit. Based on a suggestion by
@mukilan.
2024-04-17 07:26:39 +00:00
Delan Azabani
ab2b001265
Nix: allow nix-shell without explicit path to shell.nix (#32035) 2024-04-17 07:02:31 +00:00
Martin Robinson
6b2fa91357
gfx: Remove FontTemplateData (#32034)
Now that `FontTemplateData` is more or less the same on all platforms,
it can be removed. This is a preparatory change for a full refactor of
the font system on Servo. The major changes here are:

 - Remove `FontTemplateData` and move its members into `FontTemplate`
 - Make `FontTemplate` have full interior mutability instead of only
   the `FontTemplateData` member. This is preparation for having these
   data types `Send` and `Sync` with locking.
 - Remove the strong/weak reference concept for font data. In practice,
   all font data references were strong, so this was never fully
   complete. Instead of using this approach, the new font system will
   use a central font data cache with references associated to layouts.
 - The `CTFont` cache is now a global cache, so `CTFont`s can be shared
   between threads. The cache is cleared when clearing font caches.

A benefit of this change (apart from `CTFont` sharing) is that font data
loading is platform-independent now.
2024-04-16 17:50:50 +00:00
dependabot[bot]
689c144714
build(deps): bump clipboard-win from 5.3.0 to 5.3.1 (#32099)
Bumps [clipboard-win](https://github.com/DoumanAsh/clipboard-win) from 5.3.0 to 5.3.1.
- [Commits](https://github.com/DoumanAsh/clipboard-win/commits)

---
updated-dependencies:
- dependency-name: clipboard-win
  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>
2024-04-16 17:33:10 +00:00
dependabot[bot]
2d7f764d7f
build(deps): bump prettyplease from 0.2.17 to 0.2.19 (#32098)
Bumps [prettyplease](https://github.com/dtolnay/prettyplease) from 0.2.17 to 0.2.19.
- [Release notes](https://github.com/dtolnay/prettyplease/releases)
- [Commits](https://github.com/dtolnay/prettyplease/compare/0.2.17...0.2.19)

---
updated-dependencies:
- dependency-name: prettyplease
  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>
2024-04-16 17:25:23 +00:00
dependabot[bot]
544fb0c4ba
build(deps): bump syn from 2.0.58 to 2.0.59 (#32097)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.58 to 2.0.59.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.58...2.0.59)

---
updated-dependencies:
- dependency-name: syn
  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>
2024-04-16 17:21:54 +00:00
dependabot[bot]
c7ad74a9af
build(deps): bump serde_json from 1.0.115 to 1.0.116 (#32096)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.115 to 1.0.116.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116)

---
updated-dependencies:
- dependency-name: serde_json
  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>
2024-04-16 17:17:31 +00:00
Philip Lamb
7a507a4d5b
Backout Host-header related change from #32024. (#32093)
#32024 broke a different set of nginx sites, and a more sophisticated fix for the case of a missing HTTP 1.1 `Host` header is required.
2024-04-16 12:38:25 +00:00
Oriol Brufau
f5bdfdfe94
Upgrade Stylo to 2024-03-01 (#32089)
* Upgrade Stylo to 2024-03-01

* Fixup for https://bugzil.la/1882754

* Update test expectations
2024-04-16 12:27:51 +00:00
dependabot[bot]
0678136b17
build(deps): bump chrono from 0.4.37 to 0.4.38 (#32083)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.37 to 0.4.38.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.37...v0.4.38)

---
updated-dependencies:
- dependency-name: chrono
  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>
2024-04-16 08:33:04 +00:00
dependabot[bot]
4cc1ecd2a1
build(deps): bump either from 1.10.0 to 1.11.0 (#32088)
Bumps [either](https://github.com/rayon-rs/either) from 1.10.0 to 1.11.0.
- [Commits](https://github.com/rayon-rs/either/compare/1.10.0...1.11.0)

---
updated-dependencies:
- dependency-name: either
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 08:32:08 +00:00
Martin Robinson
8bcb316c92
layout: Add support for background-attachment: fixed (#32068)
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2024-04-15 20:24:37 +00:00
Martin Robinson
f379041597
layout: Add support for <object> with image data URLs (#32069)
This is enough support for `<object>` to get Acid2 working.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2024-04-15 20:20:55 +00:00
dependabot[bot]
a77c15ee16
build(deps): bump proc-macro2 from 1.0.79 to 1.0.80 (#32087)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.79 to 1.0.80.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.79...1.0.80)

---
updated-dependencies:
- dependency-name: proc-macro2
  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>
2024-04-15 17:22:30 +00:00
dependabot[bot]
1311c26344
build(deps): bump ab_glyph from 0.2.24 to 0.2.25 (#32085)
Bumps [ab_glyph](https://github.com/alexheretic/ab-glyph) from 0.2.24 to 0.2.25.
- [Release notes](https://github.com/alexheretic/ab-glyph/releases)
- [Commits](https://github.com/alexheretic/ab-glyph/compare/ab-glyph-0.2.24...ab-glyph-0.2.25)

---
updated-dependencies:
- dependency-name: ab_glyph
  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>
2024-04-15 17:17:28 +00:00
dependabot[bot]
2f0c6c41d5
build(deps): bump cc from 1.0.92 to 1.0.94 (#32084)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.0.92 to 1.0.94.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Commits](https://github.com/rust-lang/cc-rs/compare/1.0.92...1.0.94)

---
updated-dependencies:
- dependency-name: cc
  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>
2024-04-15 17:17:23 +00:00
dependabot[bot]
c2b40b5632
build(deps): bump jobserver from 0.1.29 to 0.1.30 (#32082)
Bumps [jobserver](https://github.com/rust-lang/jobserver-rs) from 0.1.29 to 0.1.30.
- [Commits](https://github.com/rust-lang/jobserver-rs/commits)

---
updated-dependencies:
- dependency-name: jobserver
  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>
2024-04-15 17:11:31 +00:00
Oriol Brufau
1898394cb3
Keep 1st collapsible space after a preserved one (#32037)
The logic was to remove any collapsible white space preceded by other
white space. However, this should only happen if the preceding space
is also collapsible.

Also fixing the logic in ContentSizesComputation, which was wrong
but previously it didn't matter.
2024-04-15 12:02:09 +00:00
Ngo Iok Ui (Wu Yu Wei)
5083dc7d17
Add minibrowser update on window resize event (#32067)
* Add minibrowser update on resize event

* Give a more clear reason
2024-04-15 11:54:44 +00:00
Servo WPT Sync
5083f3c4fb
Update web-platform-tests to revision b'daa07cf3c47652ed67e637f2a39bbc34f91cfe10' (#32071) 2024-04-14 04:39:35 +00:00
Oriol Brufau
a5e97525a0
Upgrade Stylo to 2024-01-16 (#32066)
* Upgrade Stylo to 2024-01-16

* Fixup for https://phabricator.services.mozilla.com/D187736

* Fixup for https://phabricator.services.mozilla.com/D196415

* Fixup for https://phabricator.services.mozilla.com/D197147

* Fixup for https://phabricator.services.mozilla.com/D196194

* Fixup for https://phabricator.services.mozilla.com/D196195

* Update test expectations
2024-04-13 17:42:09 +00:00
Alex Touchet
93bb276602
Update some dependencies (#32065) 2024-04-13 13:18:00 +00:00
dependabot[bot]
b74664d242
build(deps): bump allocator-api2 from 0.2.16 to 0.2.18 (#32063)
Bumps [allocator-api2](https://github.com/zakarumych/allocator-api2) from 0.2.16 to 0.2.18.
- [Changelog](https://github.com/zakarumych/allocator-api2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/zakarumych/allocator-api2/compare/v0.2.16...v0.2.18)

---
updated-dependencies:
- dependency-name: allocator-api2
  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>
2024-04-12 17:03:29 +00:00
Oriol Brufau
bc7cced03c
Element collapsing thru should collapse with its children (#32060)
If the top and bottom margins of an element collapse through, then this
patch treats the bottom margin as collapsing with its children, even if
`height` doesn't compute to zero.

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-04-12 15:06:12 +00:00
Oriol Brufau
95654b789c
Treat indefinite percentages as auto for margin collapse (#32059)
The top and bottom margins of an element can collapse through if its
height is auto or zero. Indefinite percentages behave as auto, so they
shouldn't prevent the margins from collapsing.

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-04-12 12:14:35 +00:00
Martin Robinson
efa0d45757
Remove FontContextHandle (#32038)
The `FontContextHandle` was really only used on FreeType platforms to
store the `FT_Library` handle to use for creating faces. Each
`FontContext` and `FontCacheThread` would create its own
`FontContextHandle`. This change removes this data structure in favor of
a mutex-protected shared `FontContextHandle` for an entire Servo
process. The handle is initialized using a `OnceLock` to ensure that it
only happens once and also that it stays alive for the entire process
lifetime.

In addition to greatly simplifying the code, this will make it possible
for different threads to share platform-specific `FontHandle`s, avoiding
multiple allocations for a single font.

The only downside to all of this is that memory usage of FreeType fonts
isn't measured (though the mechanism is still there). This is because
the `FontCacheThread` currently doesn't do any memory measurement.
Eventually this *will* happen though, during the font system redesign.
In exchange, this should reduce the memory usage since there is only a
single FreeType library loaded into memory now.

This is part of #32033.
2024-04-12 10:39:32 +00:00
Oriol Brufau
e9591ce62f
Obey min-height and max-height on floated elements (#32057)
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-04-12 10:21:02 +00:00
eri
88d4aff595
clippy: Fix comparison_* warnings (#32058) 2024-04-12 08:08:38 +00:00
Gae24
509b858f15
mach: Remove unused --angle command line argument (#32050)
* removed unused angle command line argument

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* Removed argument from smoketest in Windows workflows

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2024-04-12 08:06:09 +00:00
Philip Lamb
10ec8565ea
Fixes for HTTP header compliance. (#32024)
- Fix 400 errors from nginx in response to Servo requests by implementing conformant albeit non-normative removal of whitespace from `Accept` and `Accept-Language` HTTP headers. (To match behaviour of Firefox, Safari, and Chrome) https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2
- Provide `Host` header as REQUIRED by HTTP protocol https://www.rfc-editor.org/rfc/rfc9110#field.host
- Update tests.
2024-04-11 21:51:23 +00:00
Oluwatobi Sofela
62a25fdcc4
clippy: Fix question_mark warning (#32051) 2024-04-11 21:48:43 +00:00
Oluwatobi Sofela
9db9dddb88
clippy: Fix iter_cloned_collect warning (#32053) 2024-04-11 21:46:48 +00:00
eri
b3d9924396
clippy: Fix redundant_* warnings (#32056)
* clippy: Fix `redundant_field_names` warnings

* clippy: Fix other `redundant_*` warnings

* docs: Update docstring comments
2024-04-11 21:46:18 +00:00
Oluwatobi Sofela
e3ad76d994
clippy: Fix needless_late_init warning (#32052) 2024-04-11 21:44:08 +00:00