Commit graph

8363 commits

Author SHA1 Message Date
Fernando Jiménez Moreno
4b23c631ea No need to share a reference for HTMLMediaElement played TimeRange 2019-01-17 10:01:38 +01:00
Fernando Jiménez Moreno
f5581a78ab Add media cache and implement HTMLMediaElement.buffering 2019-01-17 10:01:38 +01:00
Maharsh
0f17273276 Initial Steps OffScreenCanvas API 2019-01-15 22:45:34 -05:00
Josh Matthews
66c2e42ed9 Pass a filename when executing user scripts. 2019-01-15 15:22:13 -05:00
Josh Matthews
18cfb9378d Delay user script execution until DOM is stable. 2019-01-15 15:20:25 -05:00
Josh Matthews
367014a4ea Reintroduce parent runtimes for worker threads. 2019-01-15 14:00:13 -05:00
Josh Matthews
644101e1e4 Update to new JS runtime creation APIs. 2019-01-15 14:00:05 -05:00
bors-servo
2cf9a00c99
Auto merge of #22399 - ferjm:poster.frame, r=jdm
Implement HTMLMediaElement poster attribute

- [X] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22288
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22399)
<!-- Reviewable:end -->
2019-01-14 17:35:23 -05:00
Fernando Jiménez Moreno
7633cab63a Terminate poster frame load blocker before blocking again 2019-01-14 22:50:06 +01:00
Fernando Jiménez Moreno
fde7d4589f Make poster frame load blocker independent from media element's one 2019-01-14 22:32:12 +01:00
bors-servo
c242abd999
Auto merge of #22684 - servo:next-layout, r=emilio,SimonSapin
Some janitoring over the layout crate

This PR moves a bunch of code around and makes some methods from one-use traits into inherent methods.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22684)
<!-- Reviewable:end -->
2019-01-14 14:35:28 -05:00
bors-servo
310ee3ef85
Auto merge of #22682 - shanavas786:set-url-attr, r=nox
Implement Element::set_url_attribute

<!-- 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: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22568

<!-- Either: -->
- [ ] 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22682)
<!-- Reviewable:end -->
2019-01-14 12:58:08 -05:00
Anthony Ramine
087e6d649b Report the stylesheet URL when reporting CSS errors 2019-01-14 16:51:28 +01:00
Anthony Ramine
e57d09abb8 Make Window::scroll_offsets store keys as OpaqueNode values
This is the type that is supposed to signal that we will never ever
try to get back a Node from it in an unsafe way, unlike
UntrustedNodeAddress.
2019-01-14 16:51:26 +01:00
bors-servo
b1a4913b3f
Auto merge of #22678 - nox:mime, r=SimonSapin
Pull mime 0.3.13 and fix a MIME comparison in EventSource

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22678)
<!-- Reviewable:end -->
2019-01-14 08:48:00 -05:00
Shanavas M
02d28e02e3 Parse url in getter method 2019-01-14 18:51:52 +05:30
Anthony Ramine
8611b0f8c4 Tweak the MIME comparison in EventSource
MIME parameters should not be inspected when checking for text/event-stream.
2019-01-14 13:01:36 +01:00
bors-servo
1f9b134794
Auto merge of #22348 - germangb:html_media_ended, r=ferjm
Implement Ended media attribute

<!-- Please describe your changes on the following line: -->

This PR should implement:
* New method `HTMLMediaElement::earliest_possible_position()` for the [earliest possible position](https://html.spec.whatwg.org/multipage/media.html#earliest-possible-position)
* `Ended` attribute following https://html.spec.whatwg.org/multipage/media.html#ended-playback
* Queue steps for when the playback position reaches the end

This PR contains placeholders for the following issues (I can rebase changes after the corresponding PRs get merged)
- #22321 (Define the Loop attribute)
- #22293 (To identify playback direction. Either forwards or backwards)

---
<!-- 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 #22294.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22348)
<!-- Reviewable:end -->
2019-01-14 06:35:45 -05:00
Shanavas M
37aa21d8db Set url attribute 2019-01-14 14:59:39 +05:30
Anthony Ramine
64755705fb Move CSSReporter from script_layout_interface to script 2019-01-14 10:26:26 +01:00
Fernando Jiménez Moreno
4e286ffa96 Parse poster url relative to the node's document 2019-01-14 10:26:09 +01:00
bors-servo
c7cd1b83a1
Auto merge of #22648 - collares:ChannelSplitterNode, r=Manishearth
Implement DOM APIs for ChannelSplitterNode

<!-- Please describe your changes on the following line: -->

Based on #21591. Fixes #21558. I tried to update the expected results for WPT using "./mach update-wpt"; let me know if I got something wrong.

---
<!-- 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 the second half of #21558

<!-- Either: -->
- [x] There are web-platform-tests tests for these changes
- [ ] These changes do not require tests because ___

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22648)
<!-- Reviewable:end -->
2019-01-12 14:11:26 -05:00
bors-servo
f2b224d610
Auto merge of #22666 - CYBAI:urlsearchparams-no-trailing-q, r=nox
Remove trailing ? when updating URLSearchParams

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22639
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22666)
<!-- Reviewable:end -->
2019-01-11 15:00:31 -05:00
german gomez
5605f235c6 Implement Ended media attribute
Signed-off-by: german gomez <germangb42@gmail.com>
2019-01-11 18:13:11 +01:00
bors-servo
90c0d27ce7
Auto merge of #22676 - ferjm:textrack.activecues, r=jdm
Expose TextTrack.activeCues

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #22675

This only exposes the `activeCues` property to make sure that `/html/semantics/embedded-content/media-elements/track/track-element/track-active-cues.html` timeouts consistently.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22676)
<!-- Reviewable:end -->
2019-01-11 11:42:15 -05:00
Fernando Jiménez Moreno
1033d6bc07 ImageContext.aborted does not need to be inside a Cell 2019-01-11 17:11:12 +01:00
Fernando Jiménez Moreno
9d5499bbfb Reftest for video poster frame 2019-01-11 17:11:12 +01:00
Fernando Jiménez Moreno
5c5b5aae0f Implement HTMLMediaElement poster attribute 2019-01-11 17:11:11 +01:00
Fernando Jiménez Moreno
69a79c7d75 Expose TextTrack.activeCues 2019-01-11 17:05:25 +01:00
bors-servo
b49e7517a3
Auto merge of #22522 - ferjm:av.playback.improvements, r=Manishearth
HTMLMediaElement backoff protocol and other improvements to a/v playback

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

This PR implements a backoff protocol to keep us from dropping frames whenever it's possible. It also add some other improvements like:
- Clean up the implementation a little bit by adding all fetch request related state to `HTMLMediaElementFetchContext`.
- Make sure that we ignore responses from old requests.
- Set the stream to seekable iff there's support for range requests. This will likely change when we add the media cache.
- Implements part of [step 8 of the seek spec](https://html.spec.whatwg.org/multipage/media.html#dom-media-seek) where we bail out if the stream is not seekable.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22522)
<!-- Reviewable:end -->
2019-01-11 08:00:39 -05:00
Fernando Jiménez Moreno
9a18074b88 Split media fetch context and fetch listener to prevent deadlocks 2019-01-11 13:58:48 +01:00
Fernando Jiménez Moreno
da32c8488c Do not let fetch request drive generation id increments 2019-01-11 10:44:43 +01:00
Fernando Jiménez Moreno
9aced067aa Reset seeking flag if stream is not seekable 2019-01-10 19:09:32 +01:00
Fernando Jiménez Moreno
34c1f2587f Add fetch canceller to HTMLMediaElementFetchContext and clarify how we restart after a backoff 2019-01-10 19:09:32 +01:00
Fernando Jiménez Moreno
e7e390ee8e Backoff protocol for media fetch requests 2019-01-10 19:09:32 +01:00
Fernando Jiménez Moreno
f1d012d782 Make sure that we ignore responses from old requests 2019-01-10 19:09:32 +01:00
Fernando Jiménez Moreno
c8806767a0 Set media stream as seekable only if the server supports range requests 2019-01-10 19:09:32 +01:00
Fernando Jiménez Moreno
5112e0435c Update servo-media 2019-01-10 19:09:32 +01:00
Mauricio Collares
1209cf16a8 Always throw when asked to change some ChannelMergerNode properties 2019-01-10 11:58:17 -05:00
Mauricio Collares
ff0cf9e93a Implement DOM APIs for ChannelSplitterNode 2019-01-10 11:58:10 -05:00
bors-servo
160842b8c1
Auto merge of #22669 - georgeroman:ignore_children_of_void_when_serializing, r=jdm
Ignore children of void elements when serializing

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

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22669)
<!-- Reviewable:end -->
2019-01-10 10:28:13 -05:00
CYBAI
ae965d6d8d Set query to None when no search params 2019-01-10 22:43:29 +08:00
George Roman
f7db5743f4 Ignore children of void elements when serializing 2019-01-10 16:07:12 +02:00
bors-servo
4ac5b8a3ae
Auto merge of #22477 - ferjm:media_time_marches_on_step_6, r=jdm
Implement step 6 of media `time marches on` algorithm. Improves stability of media WPTs

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

This should help with the WPTs problems observed in https://github.com/servo/servo/pull/22348#issuecomment-446369831

Unfortunately, GStreamer does not seem to be very reliable with Ogg (check https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/520) and most of the media-element WPTs uses a short ogv file, so I had to make our `canPlayType` report that it is not able to play this type to make the tests pick the alternative mp4 version of the same files. Once Ogg support for GStreamer improves, we should be able to revert this change.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22477)
<!-- Reviewable:end -->
2019-01-10 06:52:57 -05:00
bors-servo
106f1377d2
Auto merge of #22599 - aditj:patch-1-re, r=ferjm
Implement performance interface extension for PerformanceResourceTiming

<!-- Please describe your changes on the following line: -->

(There is a previous closed pull for this #22431)
Implemented the following :
a) Added the maxSize Field to the PerformanceEntryList structure.
b) Implemented the clearResourceTimings, setResourceTimingBufferSize, onresourcetimingbufferfull fuctions for the Performance Structure according to the Interface Specification given at : https://w3c.github.io/resource-timing/#sec-extensions-performance-interface

---
<!-- 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 #22307 (GitHub issue number if applicable)

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22599)
<!-- Reviewable:end -->
2019-01-10 03:10:06 -05:00
bors-servo
2e15cf0f81
Auto merge of #22638 - CYBAI:urlsearchparams-sort, r=nox
Implement URLSearchParams.prototype.sort()

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22545
- [x] There are tests for these changes

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22638)
<!-- Reviewable:end -->
2019-01-09 21:37:57 -05:00
Anthony Ramine
3ccda7f90c Make a bunch of layout queries morally safer 2019-01-09 14:12:54 +01:00
Fernando Jiménez Moreno
f7eeb26f0a Force the usage of mp4 for media-element WPTs 2019-01-09 09:28:43 +01:00
Fernando Jiménez Moreno
6c2c3f75b9 Implement step 6 of media element 'time marches on' algoritm 2019-01-09 09:28:42 +01:00
bors-servo
44cbe969e2
Auto merge of #22649 - Manishearth:xr-promises, r=jdm
Make XR/VR presenting code async

Previously we only pretended to be async, we returned promises that were already resolved because we synchronously blocked on the channel.

This:

 - Moves XR presentation to session creation (where it belongs, see https://github.com/immersive-web/webxr/issues/453)
 - Factors out common presentation code in a way that supports asynchronously resolving promises
 - Uses this for `VRDisplay::RequestPresent()` and `XR::RequestSession()`

r? @jdm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22649)
<!-- Reviewable:end -->
2019-01-08 20:42:37 -05:00