Commit graph

46204 commits

Author SHA1 Message Date
Martin Robinson
da5b861b3c
Fix WPT sync and simplify the update scripts (#29999)
Much of the code used to import WPT tests from upstream has been moved
to the WPT repository itself, so this can be reused. In addition,
simplify the workflows by merging the entire process into mach and also
directly into the GitHub workflow. This should fix WPT imports after
combining compilation of layout and legacy layout.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-07-17 13:55:57 +00:00
Martin Robinson
4c8b47adbb
Mark skipped CI workflows as successful (#30001)
When the decision job decides that a workflow should be skipped because
an identical one has already run, that workflow should be marked as
successful and not unsuccessful.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-07-17 13:38:25 +00:00
Martin Robinson
e65f65a943
Stop using webrender_api::get_scroll_node_state (#30000)
This API has been removed in the latest version of WebRender and we can
simply get this information from the compositor-side scroll tree. In
addition, this change limits the amount of data sent to the pipeline
that actually changed and gives the function in the compositor a better
name.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-07-17 09:33:24 +00:00
Martin Robinson
cf78bd7a0f
Use explicit WebRender hit test items in legacy layout (#29981)
Including hit tests in non-hit test display list items is no longer
supported in upstream WebRender, so this change switches legacy layout
to always use explicit hit test display list items.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-07-17 09:11:09 +00:00
Martin Robinson
c86faae371
Fix the WPT update (#29996)
- No longer issue the bors-servo r+ comment as we use the merge queue
   now.
 - Explicitly trigger all layout tests so that results are generated.
2023-07-13 23:15:41 +00:00
Oriol Brufau
befc0f5a5b
De-indent code in find_block_margin_collapsing_with_parent (#29997) 2023-07-13 16:27:21 +00:00
Atbrakhi
4bf2bca167
Minibrowser: Introduce minibrowser.enabled prefs (#29995)
* Introduce minibrowser.enabled prefs

* commit signoff
2023-07-13 14:24:33 +00:00
Martin Robinson
d5202a4a98
Enable the GitHub merge queue (#29989)
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2023-07-13 07:45:48 +00:00
bors-servo
9eee517132
Auto merge of #29925 - mukilan:update-ipc-channel-and-deps, r=jdm
Update ipc-channel and other dependencies

These updates will allow us to move to latest rustc nightly.

---
- [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 they update dependency crates.
2023-07-12 10:02:44 +02:00
bors-servo
ff82d479c9
Auto merge of #29965 - mrobinson:clip-chain, r=delan
Use the WebRender clip chain API

The old clipping API has been removed from WebRender, so this switches
both legacy and new layout over to use the clip chain API in preparation
for the WebRender upgrade.

<!-- 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 OR

<!-- 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. -->
2023-07-11 10:23:37 +02:00
bors-servo
71c3b34384
Auto merge of #29987 - mrobinson:normalize-more-webrender-use-statements, r=jdm
normalize more webrender use statements

- Use the WebRender clip chain API
- Use explicit WebRender hit test items in legacy layout
- Try to `use` WebRender types more

<!-- 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
- [ ] These changes do not require tests because they do not change behavior.

<!-- 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. -->
2023-07-10 20:35:59 +02:00
Martin Robinson
3230162fd0
Try to use WebRender types more
The newer versions of WebRender move types around between `webrender` and
`webrender_api` and this will reduce the churn during the upgrade.
2023-07-10 17:35:50 +02:00
bors-servo
734d8b3d49
Auto merge of #29985 - servo:remove_hololens_docs, r=mrobinson
Remove hololens doc

Removing Hololens docs after #29970

---
<!-- 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

<!-- 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. -->
2023-07-10 09:58:36 +02:00
atbrakhi
064e9dcd7f remove hololens doc 2023-07-10 09:46:31 +02:00
Mukilan Thiyagarajan
a3e3b4d48f Update ipc-channel and other dependencies
These updates will allow us to move to latest
rustc nightly.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-07-10 09:57:37 +05:30
bors-servo
a1bfdb60e4
Auto merge of #29984 - mukilan:fix-nightly-package-names, r=mrobinson
Fix package name for windows nightly

Also remove the 2020 specific packages.

The incorrect package name in windows.yml is causing nightly builds to fail.

---
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
2023-07-09 11:40:36 +02:00
Mukilan Thiyagarajan
ef88355248 Fix package name for windows nightly
Also remove the 2020 specific packages.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-07-09 13:48:57 +05:30
bors-servo
ce57256327
Auto merge of #29499 - servo:dependabot/cargo/exr-1.6.3, r=jdm
Bump exr from 1.5.3 to 1.6.3

Bumps [exr](https://github.com/johannesvollmer/exrs) from 1.5.3 to 1.6.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/johannesvollmer/exrs/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=exr&package-manager=cargo&previous-version=1.5.3&new-version=1.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR 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 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>> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
2023-07-07 12:46:50 +02:00
bors-servo
1543912589
Auto merge of #29980 - mrobinson:splitoff, r=mrobinson
Split the WPT workflow from the Linux one

This allows running tests for only one layout system at a time. This was
originally part of #29950, but was lost in the shuffle.

<!-- 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 they improve the CI.

<!-- 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. -->
2023-07-06 20:49:36 +02:00
Samson
3242ad2ca3
Split the WPT workflow from the Linux one
This allows running tests for only one layout system at a time. This was
originally part of #29950, but was lost in the shuffle.
2023-07-06 20:36:07 +02:00
bors-servo
801cae3be1
Auto merge of #29979 - mrobinson:try-to-fix-build-timings, r=mukilan
Fix upload of build timings on Windows

Fixes #29948.

<!-- 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 fix #29948.
- [x] These changes do not require tests they are GitHub CI fixes.

<!-- 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. -->
2023-07-06 19:42:12 +02:00
Martin Robinson
ac8ab15f8b Fix upload of build timings on Windows
Fixes #29948.
2023-07-06 19:15:27 +02:00
bors-servo
c008a0112a
Auto merge of #29978 - mrobinson:fix-webrender-errors, r=atbrakhi
Fix warnings in vendored WebRender

These show up every time one builds, so this adds a patch on top of our
vendored copy of WebRender to fix these errors for now.

<!-- 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 they do not change behavior.

<!-- 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. -->
2023-07-06 18:38:30 +02:00
bors-servo
1b00548ac9
Auto merge of #29950 - mrobinson:unify-style-crate, r=mukilan
Make Layout 2020/2013 a runtime switch

This change  makes the choice between Layout 2020 and Layout
2013 a runtime switch. The main part of the patch is removing all layout
related compile-time flags from the style crate. This makes the style crate a
lot simpler, but now Layout 2020 parses a good deal of features that it doesn't
support (table, vertical-align, etc). The good news is that we plan to add
these features to Layout 2020.

- Compile a single style for both Layout 2020 and Layout 2013
- Remove layout_2020/layout_2013 features
- Update GitHub workflows for single compilation
- Update test results

<!-- 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 fix #29942
- [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. -->
2023-07-06 17:12:47 +02:00
bors-servo
2e0517db39
Auto merge of #29974 - captainhaddock18:master, r=mrobinson
Fix a typo in `components/style/properties/data.py`

Fixed a typo error. The error was corrected by changing "argument" to "argument".
2023-07-06 14:55:06 +02:00
Martin Robinson
d31cdb682f
Make the choice of layout runtime setting
Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
2023-07-06 14:49:24 +02:00
Martin Robinson
4db0b5d9e3
Fix warnings in vendored WebRender
These show up every time one builds, so this adds a patch on top of our
vendored copy of WebRender to fix these errors for now.
2023-07-06 14:39:19 +02:00
THARAK HEGDE
dbafb2f2d1
Merge branch 'servo:master' into master 2023-07-05 22:12:25 +05:30
THARAK HEGDE
67fc6fed9e
Updated data.py(First Pull Request)
Fixed a typo error. The error was corrected by changing "argument" to "argument".
2023-07-05 22:11:55 +05:30
bors-servo
f11c6045e3
Auto merge of #29970 - mrobinson:remove-uwp, r=jdm
Remove UWP / Hololens support

<!-- 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 they remove a feature.

<!-- 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. -->
2023-07-05 17:12:48 +02:00
bors-servo
eebb0a5746
Auto merge of #29969 - mrobinson:refactor-android-scripts, r=jdm
Collect android build setup into two methods

This is small refactor which tries to isolate all of the Android setup
into a couple methods, so that it is easier to reason about in the
scripts. This doesn't change any behavior but does fix a few small
linting errors in the existing code.

Note: The Android build is currently broken and this change doesn't fix
it. It shouldn't break it any more though.

<!-- 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 they are refactorings.

<!-- 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. -->
2023-07-05 16:03:17 +02:00
bors-servo
2d72a74b05
Auto merge of #29971 - mrobinson:correct-webrender-vendor, r=atbrakhi
Remove some debugging code in vendored WebRender

This slipped in when importing the source code.

<!-- 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 they don't really change observable behavior.

<!-- 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. -->
2023-07-05 14:35:38 +02:00
Martin Robinson
ca477c03b8
Remove some debugging code in vendored WebRender
This slipped in when importing the source code.
2023-07-05 10:14:32 +02:00
Martin Robinson
c58d74fe62
Remove UWP / Hololens support 2023-07-05 09:12:09 +02:00
Martin Robinson
1eb3e85d69
Collect android build setup into two methods
This is small refactor which tries to isolate all of the Android setup
into a couple methods, so that it is easier to reason about in the
scripts. This doesn't change any behavior but does fix a few small
linting errors in the existing code.

Note: The Android build is currently broken and this change doesn't fix
it. It shouldn't break it any more though.
2023-07-05 07:47:00 +02:00
bors-servo
041d95e0f4
Auto merge of #29961 - mrobinson:vendor-webrender, r=atbakhi
Vendor the current version of WebRender

This is a step toward upgrading WebRender, which will be upgraded and
patched in the `third_party` directory. This change vendors the current
private branch of WebRender that we use and adds a `patches` directory
which tracks the changes on top of the upstream WebRender commit
described by third_party/webrender/patches/head.

<!-- 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 they do not change behavior.

<!-- 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. -->
2023-07-04 15:10:14 +02:00
bors-servo
d931cf49aa
Auto merge of #29963 - mrobinson:run-unit-tests-when-using-try-platform, r=atbrakhi
When using "try-<platform>" trigger unit tests

There is currently no way to trigger unit tests using the bors-servo try
infrastructure. This change makes it so that using try-<platform>
triggers unit tests for that platform. This will be especially useful
when testing changes for Windows before trying to land them.

<!-- 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 they are just GitHub Actions 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. -->
2023-07-04 13:51:28 +02:00
bors-servo
dea28b51a2
Auto merge of #29964 - mukilan:enable-merge-queue-action, r=mrobinson
Run main workflow for merge queue events

This PR configures the main workflow (currently used by bors via auto & try branches) to run
on 'merge_group' events emitted when pull requests are added to GitHub merge queue.

---
<!-- 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
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they just extend merge checks.

<!-- 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. -->
2023-07-04 12:01:19 +02:00
Mukilan Thiyagarajan
5f36dcf9cc Run main workflow for merge queue events
This PR configures the main workflow (currently
used by bors via auto & try branches) to run
on 'merge_group' events emitted when pull requests
are added to GitHub merge queue.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-07-04 15:30:15 +05:30
Martin Robinson
69c830a6e0
When using "try-<platform>" trigger unit tests
There is currently no way to trigger unit tests using the bors-servo try
infrastructure. This change makes it so that using try-<platform>
triggers unit tests for that platform. This will be especially useful
when testing changes for Windows before trying to land them.
2023-07-04 11:36:16 +02:00
Martin Robinson
3c4328f3dc
Use the WebRender clip chain API
The old clipping API has been removed from WebRender, so this switches
both legacy and new layout over to use the clip chain API in preparation
for the WebRender upgrade.
2023-07-04 11:24:00 +02:00
bors-servo
66abb1dfc4
Auto merge of #29954 - mrobinson:windows-bootstrap, r=mukilan
Windows bootstrap support

<!-- 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 fix #25224
- [x] These changes do not require tests because they are just support script 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. -->
2023-07-04 00:40:11 +02:00
Martin Robinson
633d9b0eb9 Windows bootstrap support 2023-07-03 21:40:24 +02:00
Martin Robinson
49277f5c3f
Vendor the current version of WebRender
This is a step toward upgrading WebRender, which will be upgraded and
patched in the `third_party` directory. This change vendors the current
private branch of WebRender that we use and adds a `patches` directory
which tracks the changes on top of the upstream WebRender commit
described by third_party/webrender/patches/head.
2023-07-03 17:55:17 +02:00
bors-servo
35ab311635
Auto merge of #29959 - mrobinson:split-layout-in-flow-non-replaced-block-level, r=Loirooriol
Split layout_in_flow_non_replaced_block_level

This function is already quite big and the changes necessary for
properly laying out independent formatting contexts next to floats will
make it even more unwieldy. Split the function in two and add a helper
for calculating the containing block for children and the margin. As
time goes on the independent formatting case is probably going to be
more like the replaced case anyway.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>

<!-- 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 they are a simple refactoring.

<!-- 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. -->
2023-07-03 16:12:59 +02:00
Martin Robinson
fa40c22122
Split layout_in_flow_non_replaced_block_level
This function is already quite big and the changes necessary for
properly laying out independent formatting contexts next to floats will
make it even more unwieldy. Split the function in two and add a helper
for calculating the containing block for children and the margin. As
time goes on the independent formatting case is probably going to be
more like the replaced case anyway.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2023-07-03 16:11:44 +02:00
bors-servo
c19eb800de
Auto merge of #29957 - Loirooriol:optimize-collapsible-margin-lookahead, r=mrobinson
Layout 2020: Optimize collapsible margin lookahead

Every time that we would lay out a block box that could collapse its top margin with its contents, we would do a lookahead to compute the resulting margin in order to place floats correctly.

The problem is that this lookahead could iterate several descendants, but then when laying these we would run the lookahead again.

This patch restricts the lookahead to boxes that either aren't collapsing their top margin with their parent, or that have 'clear' different than 'none' (since clearance prevents collapsing margins with the parent).

Since the lookahead stops iterating when it finds a box that doesn't collapse its top margin with its parent, or whose 'clear' isn't 'none', this should ensure that lookahead never handles the same box twice.

<!-- 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 there shouldn't be any change in behavior

<!-- 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. -->
2023-07-03 11:55:43 +02:00
Oriol Brufau
a4c4550e3b Layout 2020: Optimize collapsible margin lookahead
Every time that we would lay out a block box that could collapse its
top margin with its contents, we would do a lookahead to compute the
resulting margin in order to place floats correctly.

The problem was that this lookahead could iterate several descendants,
but then when laying these we would run the lookahead again.

This patch restricts the lookahead to boxes that either aren't collapsing
their top margin with their parent, or that have 'clear' different than
'none' (since clearance prevents collapsing margins with the parent).

Since the lookahead stops iterating when it finds a box that doesn't
collapse its top margin with its parent, or whose 'clear' isn't 'none',
this should ensure that lookahead never handles the same box twice.
2023-07-03 11:53:43 +02:00
bors-servo
4365d9a646
Auto merge of #29958 - servo:wpt_update_02-07-2023, r=servo-wpt-sync
Sync WPT with upstream (02-07-2023)

Automated downstream sync of changes from upstream as of 02-07-2023
[no-wpt-sync]
r? @servo-wpt-sync
2023-07-02 04:11:45 +02:00
WPT Sync Bot
e594552299 Update web-platform-tests to revision b'f513c41310ebb13de9a0c5ea5e1c22544e0b5000' 2023-07-02 01:24:53 +00:00