Commit graph

288 commits

Author SHA1 Message Date
Servo WPT Sync
f58541e652
Sync WPT with upstream (01-01-2024) (#30962)
* Update web-platform-tests to revision b'2a639a9fe4cdefd4ecd124a3f30caf631150eea5'

* Update expectations

---------

Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2024-01-01 20:22:51 +00:00
Servo WPT Sync
cad3ca2512
Sync WPT with upstream (25-12-2023) (#30938)
* Update web-platform-tests to revision b'73caf716542762aab6646f0a02de208bc0ec4124'

* Update expectations

---------

Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2023-12-26 08:08:45 +00:00
Martin Robinson
709d00583f
layout: Make all word separators justification opportunities (#30866)
This change adapts both layout and legacy layout to the specification
which gives a list of word separators to use as justification
opportunities.
2023-12-21 22:49:24 +00:00
Servo WPT Sync
5c8fc7309d
Update web-platform-tests to revision b'a85f0dfe538b9cb894388a65dba7a2a21db050c7' (#30879) 2023-12-17 11:15:38 +00:00
Servo WPT Sync
914fe64fc7
Sync WPT with upstream (03-12-2023) (#30814)
* Update web-platform-tests to revision b'dd47ca67f55ac9df45235b2335200fb885dd1357'

* Update test expectations

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2023-12-06 17:45:20 +00:00
Martin Robinson
f1c291853e
Stop sending " " to linebreaker for replaced content (#30740)
We previously sent a " " to the linebreaker in order to ensure that the
next text had a soft wrap opportunity at the start. Calling `next(" ")`
without waiting until the returned index was 1, violated some
invariants of linebreaker ultimately causing a panic.

Instead of using the linebreaker for this, simply keep a flag in the
IFC layout state, which avoids the problem entirely.

Fixes #30703.
2023-11-30 14:46:14 +00:00
Servo WPT Sync
139df1c73b
Sync WPT with upstream (26-11-2023) (#30783)
* Update web-platform-tests to revision b'a59ba94da3f2638beee8950e423c5fedfe02e809'

* Update expectations

* Update expectations again

---------

Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2023-11-27 15:50:45 +00:00
Oriol Brufau
b5bd416f7c
Make CSSConditionRule's conditionText readonly (#30768)
As per https://github.com/w3c/csswg-drafts/issues/6819

This will be needed for https://phabricator.services.mozilla.com/D179060

The test was created by Mozilla, but was not correctly synced into WPT.
2023-11-23 10:29:16 +00:00
Oriol Brufau
3543a87592
Allow currentColor in canvas context's shadowColor (#30754)
This allows unifying the parse_color function and method, aligns Servo
with other browsers, and obeys the HTML spec:
 - https://html.spec.whatwg.org/multipage/canvas.html#shadows
 - https://html.spec.whatwg.org/multipage/infrastructure.html#parsed-as-a-css-color-value
2023-11-20 11:03:18 +00:00
Servo WPT Sync
334c67a3cc
Update web-platform-tests to revision b'7aaad11d87d7a02515081e55609d31ab6ff173fc' (#30753) 2023-11-19 09:40:18 +00:00
Servo WPT Sync
3fc584d1a1
Sync WPT with upstream (12-11-2023) (#30724)
* Update web-platform-tests to revision b'46476776fdbf0a62522621002ba8af68e4d478b6'

* wpt import: update expectation

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-11-15 05:55:31 +00:00
Servo WPT Sync
4ea042cb14
Sync WPT with upstream (29-10-2023) (#30641)
* Update web-platform-tests to revision b'9f24a7061dc47c00ffe3f0f6dda5822a9b15c2a5'

* Update expectations

---------

Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-10-31 05:06:17 +00:00
Servo WPT Sync
65beca94cd
Sync WPT with upstream (24-10-2023) (#30607)
* wpt sync: adapt code for new TestRoot class

Fixes #30558

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* temp change to allow wpt sync build to pass

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* Update web-platform-tests to revision b'0d5028f200c8651b17bb224657d6e1065adcff37'

* Revert "temp change to allow wpt sync build to pass"

This reverts commit bad72c7f87.

* revert metadata update for intermittent timeouts

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-10-25 07:26:53 +00:00
Martin Robinson
582943a19e
Migrate scroll_root.html to WPT (#30478) 2023-10-19 19:39:47 +00:00
Martin Robinson
fd31da9102
Anonymous boxes that wrap inlines should not inherit overflow (#30579)
In legacy layout, anonymous text wrappers were inheriting the `overflow`
and `text-overflow` properties. This results in the creation of extra
clipping for these anonymous wrappers which could clip away floats. We
will likely implement `text-overflow` differently in non-legacy layout.

This change marks all legacy layout pseudo elements as "legacy" and also
adds a new pseudo element for non-legacy layout that does not inherit
`overflow`.

Fixes #30562.

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2023-10-19 13:43:55 +00:00
Servo WPT Sync
5eed4e978c
Sync WPT with upstream (08-10-2023) (#30516)
* Update web-platform-tests to revision b'3d46548c5fbeb3c1b5f6bc5ae0854e0a1a0462ff'

* Revert expectation for column-count-crash.https.html

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-10-08 16:57:16 +00:00
Servo WPT Sync
c06ec90151
Sync WPT with upstream (04-10-2023) (#30493)
* Update web-platform-tests to revision b'dfda99176a5d552fb1129fa353b7e4c69f6ed92c'

* fix linter errors after WPT import

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* Update expectations

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2023-10-06 00:51:48 +00:00
Oriol Brufau
a4fdbc30ea
Fix PlacementAmongFloats to avoid missing some bands (#30280)
PlacementAmongFloats would stop iterating when current_bands would be
empty, even if next_band wasn't at infinity.

Then the BFC root or replaced block was placed after all the floats,
even if it could fit next to some of them.

This patch moves the next_band into current_bands so that the loop
keeps considering bands.
2023-09-01 20:18:19 +00:00
Martin Robinson
17dec241db
Convert /_mozilla/css/iframe/multiple_external.html into a WPT crashtest (#30246)
This test was made before the use of WPT tests, much less WPT
crashtests, but it was originally made to test a crash. Initially, it
had an empty result, but text was added. The new reference for the test
relied on the bad float layout of legacy layout so was always incorrect.

This change converts the test into a WPT crashtest.
2023-08-30 11:43:27 +00:00
Oriol Brufau
9aa3f74878
Avoid crash in PlacementAmongFloats (#30235)
PlacementAmongFloats was assuming that there would always be a FloatBand
at a position smaller than or equal to the given ceiling, but this was
not the case for negative ceilings.

The reason is that the FloatContext initialized the FloatBandTree with
a band at 0, and another at +∞.

This patch changes the initial bands to −∞ and +∞. This seems more
consistent and matches the expectation of PlacementAmongFloats.
2023-08-29 18:40:05 +00:00
Martin Robinson
bd285f543e
Layout floats as children of their inline ancestors (#30130)
When layout was split into two phases, floats were laid out as direct
children of the inline formatting context. This meant that they were
positioned properly, but not properly made children of their inline
ancestors' stacking contexts. This change maintains the proper
positioning of floats, but positions them relatively to their inline
ancestors.

The big change here is that `text-align` needs to be taken into account
before actually laying out LineItems. This has the added benefit of
setting inline layout for the implementation of `text-align: full`. Now
all line items are laid out at the real final position and we can adjust
the `start_corner` property of float `BoxFragments` when their ancestors
are laid out.
2023-08-22 20:10:34 +00:00
Servo WPT Sync
5cfa80e86f
Sync WPT with upstream (20-08-2023) (#30143)
* Update web-platform-tests to revision b'50e91f3cfd1140cafc188516488f2dca289239af'

* Delete flaky result for css2/linebox/vertical-align-baseline-002

* Delete flaky result for html/rendering/bindings/the-textarea-element-0/cols-default.html.ini

* Delete flaky result for CSS2/lists/list-style-applies-to-001.xht.ini

---------

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-08-22 11:36:48 +00:00
Mukilan Thiyagarajan
33fa49c8ed
Fix mach test-wpt to make crash tests work (#29832)
* Fix `mach test-wpt` to make crash tests work

There are two issues related to crash tests:
1. test-wpt is unable to find existing crash tests even when
   called with --test-types=crashtests. The fix here is to
   add crashtests to the default test suite types to python/wpt/run.py
2. When running in headless mode, crashes in style threads
   don't cause servo to crash because the logic in constellation.rs
   currently calls handle_panic only when the top-level browsing
   context id is some value. Since style pool threads are shared,
   they always generate Panic messages with None as top-level
   browsing context id.

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* Send bactrace to stderr and capture it in test runner

Servo's panic hook writes backtraces to stdout. This
patch changes it so they are written to stderr.

The crash test executor for servo in WPT grouping formatter
was also not capturing the output correctly for crashtests
as the log events were being aggregated based on thread name
which doesn't seem to match correctly in case of crashtests.
This patch also fixes the log grouping logic to be based on
test name.

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* crashtests: update expectations for layout 2020

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* crashtests: update expectations for layout 2013

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* remove outdated & intemittent test expectations

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2023-08-18 23:43:32 +00:00
Servo WPT Sync
cc86854c4e
Update web-platform-tests to revision b'785ef6ac7190e22df4a4d8a664022abcd0bb752c' (#30095) 2023-08-13 04:53:29 +00:00
Oriol Brufau
8dceb8e412
Handle inline margins when avoiding floats (#30072) 2023-08-09 21:19:16 +00:00
Martin Robinson
bce7622cde
Switch to rustls and webpki-roots (#30025)
This change replaces OpenSSL with rustls and also the manually curated
CA certs file with webpki-roots (effectively the same thing, but as a
crate).

Generally speaking the design of the network stack is the same. Changes:

- Code around certificate overrides needed to be refactored to work with
  rustls so the various thread-safe list of certificates is refactored
  into `CertificateErrorOverrideManager`
- hyper-rustls takes care of setting ALPN protocols for HTTP requests,
  so for WebSockets this is moved to the WebSocket code.
- The safe set of cypher suites is chosen, which seem to correspond to
  the "Modern" configuration from [1]. This can be adjusted later.
- Instead of passing a string of PEM CA certificates around, an enum is
  used that includes parsed Certificates (or the default which reads
  them from webpki-roots).
- Code for starting up an SSL server for testing is cleaned up a little,
  due to the fact that the certificates need to be overriden explicitly
  now. This is due to the fact that the `webpki` crate is more stringent
  with self-signed certificates than SSL (CA certificates cannot used as
  end-entity certificates). [2]

1. https://wiki.mozilla.org/Security/Server_Side_TLS
2. https://github.com/briansmith/webpki/issues/114

Fixes #7888.
Fixes #13749.
Fixes #26835.
Fixes #29291.
2023-08-08 14:00:10 +00:00
Servo WPT Sync
2fe0413b72
Sync WPT with upstream (07-08-2023) (#30078)
* Update web-platform-tests to revision b'6d5a1f7fb272973c2a951831b4f9fb25f05f96b0'

* Revert some expectations updated by WPT import

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-08-08 04:24:47 +00:00
Oriol Brufau
d90e3078a6
Never resolve margin-left:auto to a negative amount (#30065)
With direction:ltr (and we don't support direction:rtl yet), the rules
from https://drafts.csswg.org/css2/#blockwidth imply that margin-left
shouldn't resolve auto to a negative amount.

This aligns Servo with Gecko and Blink. WebKit may resolve to a negative
amount in some cases.
2023-08-03 09:21:22 +00:00
Servo WPT Sync
4061d13ba6
Update web-platform-tests to revision b'dcf353e2846063d4b9e62ec75545d0ea857ef765' (#30045) 2023-08-01 13:47:21 +00:00
Servo WPT Sync
8d32ec89eb
Update web-platform-tests to revision b'b6cddc4617fedeed0db493b3ba9283148797447f' (#30021) 2023-07-25 11:49:20 +00:00
Servo WPT Sync
59b0b1bade
Sync WPT with upstream (18-07-2023) (#30006)
* Update web-platform-tests to revision b'e16853520ae70ba309108ccff87a7816f74be4dd'

* Remove new spurious result

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2023-07-19 21:23:15 +00:00
WPT Sync Bot
e594552299 Update web-platform-tests to revision b'f513c41310ebb13de9a0c5ea5e1c22544e0b5000' 2023-07-02 01:24:53 +00:00
Oriol Brufau
246dc983f6 Fix clearance on replaced elements 2023-06-26 17:24:24 +02:00
bors-servo
234d507234
Auto merge of #29911 - mrobinson:static-absolute-with-static-fixed-child, r=Loirooriol
Fix positioning of statically positioned fixed child of absolutes

<!-- 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. -->
2023-06-25 22:12:45 +02:00
WPT Sync Bot
209b7ad36b Update web-platform-tests to revision b'7b682ab07397d72fceb6594d0f27cb36cf1d8ee3' 2023-06-25 01:32:25 +00:00
Martin Robinson
63a6b73f9a
Fix positioning of statically positioned fixed child of absolutes 2023-06-23 15:18:06 +02:00
Martin Robinson
0ced74cde3
Fix positioning of statically positioned absolute child of inline box 2023-06-23 08:57:57 +02:00
Martin Robinson
f4578afdfe
Rename metadata directories
This renames:
 - `tests/wpt/metadata` → `tests/wpt/meta-legacy-layout`
 - `tests/wpt/metadata-layout-2020` → `tests/wpt/meta`
 - `tests/wpt/mozilla/meta` → `tests/wpt/mozilla/meta-legacy-layout`
 - `tests/wpt/mozilla/meta-layout-2020` → `tests/wpt/mozilla/meta`
2023-06-22 21:15:41 +02:00
Renamed from tests/wpt/metadata/MANIFEST.json (Browse further)