Commit graph

1868 commits

Author SHA1 Message Date
WPT Sync Bot
632afc64ae Update web-platform-tests to revision b'c9f81de4242294a0d694ecd5a63155acfe6bf49a' 2023-02-25 01:52:07 +00:00
WPT Sync Bot
496ae4e174 Update web-platform-tests to revision b'b3615436df24bedfdc4f14f959428307a86f74ce' 2023-02-21 01:39:27 +00:00
WPT Sync Bot
489f4ac90d Update web-platform-tests to revision b'49819d78d44b87d5ebb076c5b005dcbfc630c24f' 2023-02-20 01:57:35 +00:00
WPT Sync Bot
5867b3554a Update web-platform-tests to revision b'96ef5777e50f7ed8f54b91525002d6708fc097d7' 2023-02-19 01:39:19 +00:00
WPT Sync Bot
812c6de70b Update web-platform-tests to revision b'45fdf45f79582953fb3aa708566cd2c0707cb222' 2023-02-18 01:43:43 +00:00
yvt
effd5a3107 fix(script): request animation ticks if Animations::pending_events is not empty
Fixes the test case `/_mozilla/css/css-transition-cancel-event
.html`, which was failing under a specific circumstance.

The observed sequence of events during the failing test run looks like
this:

1. Transitions start in `div1` and `div2`.

2. `div1` generates a `transitionend` event.

3. The `transitionend` event handler removes `div2` from DOM, cancelling
   its ongoing transition.

4. `div2` is supposed to generate a `transitioncancel` event in a timely
   manner, which it does not. The test fails as a result.

What is going on here? Here's a possible explaination:

1. During one invocation of `ScriptThread::handle_msgs`...

2. In step 2, `ScriptThread::update_animations_send_events` -> `Document
   ::update_for_new_timeline_value` detects the completion of the
   transition, and in response, pends the `transitionend` event.

3. In step 3, `ScriptThread::update_animations_send_events` ->
   `Animations::send_pending_events` calls the `transitionend` handler.

4. The `transitionend` event handler removes `div2`, thereby cancelling
   its ongoing transition and triggering a reflow.

5. Reflow takes place. During this, `Animations::do_post_reflow_update`
   -> `Animations::handle_canceled_animations` pends the
   `transitioncancel` event (precursor to step 4).

6. Having discovering that there was no running animation, `Animations::
   do_post_reflow_update` calls `self.update_running_animation_presence
   (_, false)`, which sends `AnimationState::NoAnimationsPresent`.

7. The invocation of `ScriptThread::handle_msgs` ends, and another
   starts. It blocks waiting for events.

8. Meanwhile, the compositor receives `AnimationState::
   NoAnimationsPresent` and stops further generation of animation ticks.

9. With no events to wake it up, the script thread is stuck waiting
   despite having the pending `transitioncancel` event (step 4).

The HTML specification [says][1] that "an event loop must continually
run [...] as long as it exists" and does not say it can block if there
is nothing to do. Blocking is merely optimization in a user agent
implementation. Pending animation-related events must be processed every
time a "rendering opportunity" arises unless the user agent has a reason
to believe that it "would have no visible effect".

Skipping the processing of animation-related events would have visible
effect if such events are indeed present. The correct implementation in
Servo, therefore, would be to request more animation ticks so that such
events are processed in a subsequent tick.

[1]: https://html.spec.whatwg.org/multipage/#event-loop-processing-model
2023-02-10 14:44:27 +01:00
WPT Sync Bot
ec63c43030 Update web-platform-tests to revision b'd1192ca239e944dc6cdbcd079e1c16227e08e30c' 2023-02-02 01:55:40 +00:00
WPT Sync Bot
879f987fc2 Update web-platform-tests to revision b'7b1babebddf2f0fdd866fa8b83b8621b86590fc9' 2023-01-29 01:42:28 +00:00
WPT Sync Bot
32cc2e03c4 Update web-platform-tests to revision b'544363de4568baf9ae90d71e4822661edc546650' 2023-01-28 01:52:20 +00:00
WPT Sync Bot
cda7a10498 Update web-platform-tests to revision b'89142292ab8c7f3564d978a76fdabc66626c421e' 2023-01-26 01:45:06 +00:00
WPT Sync Bot
a6bc3e1a73 Update web-platform-tests to revision b'704eebbe6af5b43643971e96e33a0c979fba2904' 2023-01-25 01:36:16 +00:00
WPT Sync Bot
02cb6d44e5 Update web-platform-tests to revision b'ece751218b0ba35e99fa900bfd2a2d89c4bb69da' 2023-01-22 01:42:09 +00:00
WPT Sync Bot
92be0baf34 Update web-platform-tests to revision b'8a99353217938b6f1da31a9a108da3d501cee58b' 2023-01-20 01:41:09 +00:00
WPT Sync Bot
1c6b303ef2 Update web-platform-tests to revision b'2d7c53f5bc604132d2c83955537e454ee9c788c0' 2023-01-18 01:48:18 +00:00
bors-servo
aaca4543fc
Auto merge of #29235 - servo:better-exceptions, r=jdm
Stringify unknown JavaScript objects in global exception handlers

When turning DOM exceptions into `ErrorInfo` always try to stringify
the JavaScript value, even if it's an object that isn't a `DOMException`
or native exception.  This means that exceptions that extend the `Error`
prototype are now stringified. The result is that test output for WPT
global assertion failures is more useful. For instance for the test
include-frames-from-child-same-origin-grandchild.sub.html:

Before:
```
uncaught exception: unknown (can't convert to string)
```

After:
```
uncaught exception: Error: assert_equals: expected 4 but got 3
```
---

<!-- 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.
2023-01-17 17:16:45 +01:00
Martin Robinson
e68ebd2617 Stringify unknown JavaScript objects in global exception handlers
When turning DOM exceptions into `ErrorInfo` always try to stringify
the JavaScript value, even if it's an object that isn't a `DOMException`
or native exception.  This means that exceptions that extend the `Error`
prototype are now stringified. The result is that test output for WPT
global assertion failures is more useful. For instance for the test
include-frames-from-child-same-origin-grandchild.sub.html:

Before:
```
uncaught exception: unknown (can't convert to string)
```

After:
```
uncaught exception: Error: assert_equals: expected 4 but got 3
```
2023-01-12 19:57:51 +01:00
WPT Sync Bot
fb586f68cc Update web-platform-tests to revision b'8ff38c54ff3fab31f862570a38e73755785ba7ee' 2023-01-11 02:40:26 +00:00
WPT Sync Bot
71255b8ef7 Update web-platform-tests to revision b'8e8075e9b5d932def46c3e36f41435baa9726a2f' 2023-01-09 01:36:13 +00:00
WPT Sync Bot
fd56698ec7 Update web-platform-tests to revision b'421155a1c8752a36b465e62f466b18f821190e08' 2023-01-08 01:57:36 +00:00
WPT Sync Bot
fe5988549d Update web-platform-tests to revision b'f6ca9770e448b058b51b46ada9c257acb39c68fb' 2022-12-29 01:37:51 +00:00
WPT Sync Bot
81ce957720 Update web-platform-tests to revision b'2a23f5b2388fc73716c6c4abefbfd6e1cc1cf35d' 2022-12-26 01:35:18 +00:00
WPT Sync Bot
a04daa7e71 Update web-platform-tests to revision b'e64f8298db78f39737eefedf5f59b99ba98d309b' 2022-12-24 01:30:45 +00:00
WPT Sync Bot
4e2c1b7804 Update web-platform-tests to revision b'7c349a39c8b89de423a60c7ef461f9f47f4e5821' 2022-12-19 01:20:21 +00:00
WPT Sync Bot
6337336fab Update web-platform-tests to revision b'4a4653e088039aec186d6dc1d488120d77695c3a' 2022-12-11 01:19:52 +00:00
WPT Sync Bot
274846e69e Update web-platform-tests to revision b'b7c1d80f991820c17aaae0477052c30d7f699eba' 2022-11-30 01:48:52 +00:00
WPT Sync Bot
831ab387a5 Update web-platform-tests to revision b'9be67046d1f0d57d0d4fba089f151ef044572f5d' 2022-11-26 01:29:07 +00:00
WPT Sync Bot
4031d79cea Update web-platform-tests to revision b'4435c35d9085ed2be61e64d0093b8e1b0e7a877b' 2022-11-25 01:25:18 +00:00
bors-servo
901b76297d
Auto merge of #29079 - jdm:sm107, r=jdm
Upgrade to spidermonkey 107

This successfully loads servo.org and google.com on macOS, so that means it's time for tests!
2022-11-23 10:05:42 -05:00
Josh Matthews
b5c142f692 Update test results. 2022-11-23 10:04:52 -05:00
WPT Sync Bot
22c54a8ce0 Update web-platform-tests to revision b'e89b6eb4952b217c1a7b6540b0fe2613b0b09c54' 2022-11-21 01:23:19 +00:00
WPT Sync Bot
8f33a04929 Update web-platform-tests to revision b'e89b6eb4952b217c1a7b6540b0fe2613b0b09c54' 2022-11-20 01:27:11 +00:00
WPT Sync Bot
a1db4c746d Update web-platform-tests to revision b'099ab08227717e000b444ff560e93f96b49e05d7' 2022-11-17 01:25:16 +00:00
WPT Sync Bot
de009ea427 Update web-platform-tests to revision b'f7c921b0bcddaf3865eb4c36788ce0db61750035' 2022-11-15 01:23:14 +00:00
WPT Sync Bot
57b85533c2 Update web-platform-tests to revision b'a6e9e432ca1b26cdf30b08f9de038b85a215361d' 2022-11-13 01:34:32 +00:00
WPT Sync Bot
1c047e9418 Update web-platform-tests to revision b'a6e9e432ca1b26cdf30b08f9de038b85a215361d' 2022-11-12 01:33:42 +00:00
WPT Sync Bot
9ed042224a Update web-platform-tests to revision b'0802d8bd01e17178d9cd2355e6fbaf3c098e7953' 2022-11-11 01:34:11 +00:00
WPT Sync Bot
df68c4e5d1 Update web-platform-tests to revision b'b728032f59a396243864b0f8584e7211e3632005' 2022-11-10 01:27:28 +00:00
WPT Sync Bot
58e8ee674b Update web-platform-tests to revision b'468d01bbd84da2babf265c6af46947be68713440' 2022-01-17 16:30:29 +09:00
yvt
7cda260fcb test: update expectations 2021-07-09 22:34:36 +09:00
Vincent Ricard
a627dde0d0 Port some code to Python3 2021-02-18 09:35:46 -05:00
Josh Matthews
f73370088b Update WPT results. 2021-02-18 09:35:46 -05:00
WPT Sync Bot
353491d14a Update web-platform-tests to revision 026cb8c5c7f63871853f21b053f49940be780146 2021-01-26 10:42:35 +00:00
WPT Sync Bot
9320df4683 Update web-platform-tests to revision 35077458592d7cf9349840211759aa85f20cd20c 2021-01-24 10:46:36 +00:00
Jonathan Kingston
80902ee716 Update test expected outcomes 2020-11-25 18:58:19 +00:00
Jonathan Kingston
35eaf65974 Moving bluetooth tests to https. 2020-11-25 18:30:50 +00:00
WPT Sync Bot
bbe2a877b1 Update web-platform-tests to revision e77eef74c0b20028b8d86260ef81ffe1f9688027 2020-11-02 10:44:01 +00:00
WPT Sync Bot
c985ec123e Update web-platform-tests to revision 36a5c51e57ac8808bbaf52dd495783fd926b7547 2020-11-01 10:22:55 +00:00
WPT Sync Bot
a3410e195f Update web-platform-tests to revision 3cc9e82a7c1a53423097f3d581d4bfc185f56d18 2020-08-08 10:39:34 +00:00
WPT Sync Bot
92d17be4fe Update web-platform-tests to revision 5fe9625d7445a6b88640f830d90dd5489c4bda05 2020-08-06 10:31:21 +00:00
Alan Jeffrey
c4dd171dfb Add XRLayerEvent 2020-08-05 18:07:54 -05:00