Commit graph

39892 commits

Author SHA1 Message Date
Fernando Jiménez Moreno
89d9e3ad78 Introduce embedder MediaSessionEvent and move active session to Servo 2019-11-20 13:33:15 +01:00
Fernando Jiménez Moreno
4d147d2c56 Register media instance with session and prepare communication with embedder 2019-11-20 13:33:14 +01:00
Fernando Jiménez Moreno
9c329a7935 Add embedder message to (de)activate media session 2019-11-20 13:32:38 +01:00
Fernando Jiménez Moreno
fd040b0a55 Extend libsimpleservo API with a callback for media session activation 2019-11-20 13:32:38 +01:00
Fernando Jiménez Moreno
d7d775ac60 Extend libsimpleservo API with a method to request a media session action 2019-11-20 13:32:38 +01:00
Fernando Jiménez Moreno
31ce7a2b5c Handle media session action, no default handling yet 2019-11-20 13:32:38 +01:00
Fernando Jiménez Moreno
ec7a4bf32d MediaSession: update action handler algorithm 2019-11-20 13:32:38 +01:00
Fernando Jiménez Moreno
fa61191405 Make MediaSession handle embedder requested action 2019-11-20 13:32:11 +01:00
Fernando Jiménez Moreno
6233f78de4 MediaSessionAction message from embedder to script thread 2019-11-20 13:32:10 +01:00
Fernando Jiménez Moreno
7101a9d070 Use BrowsingContextId for MediaSession registration 2019-11-20 13:32:10 +01:00
Fernando Jiménez Moreno
f8246801ba MediaSession registration 2019-11-20 13:32:10 +01:00
Fernando Jiménez Moreno
1ab65005ae Set MediaMetadata MediaSession owner 2019-11-20 13:32:10 +01:00
Fernando Jiménez Moreno
4b5b4d19bf MediaSession API DOM bindings 2019-11-20 13:32:10 +01:00
bors-servo
7da8d75a7e
Auto merge of #24426 - servo:wrup, r=jdm,nox
Update webrender

<!-- 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/24426)
<!-- Reviewable:end -->
2019-11-20 05:08:32 -05:00
Akash-Pateria
84f16eae98 Bind runnable dispatching in script_runtime 2019-11-19 23:25:52 -05:00
bors-servo
6d4a09ebd9
Auto merge of #24785 - servo:linux-wpt2, r=jdm
Move WPT Linux from Buildbot to Taskcluster

Closes https://github.com/servo/servo/pull/24418
2019-11-19 22:53:33 -05:00
bors-servo
e07f0280fe
Auto merge of #24776 - jdm:xr-translate, r=Manishearth
Support translation in webxr on desktop

This makes it possible to roam around webxr scenes using the WASD keys, and the arrow keys continue to change the user's orientation.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24773
- [x] These changes do not require tests because no tests for interactive webxr content
2019-11-19 21:56:25 -05:00
Tomasz Miąsko
37af4f3f23 Update jemalloc-sys to 0.3.2 2019-11-20 00:00:00 +00:00
bors-servo
05f90cd24e
Auto merge of #24651 - servo:jdm-patch-31, r=paulrouget
Remove appveyor CI badge.

Fixes #24650.
2019-11-19 16:00:36 -05:00
Josh Matthews
5c08378595 glutin: Support WASD for translating positing in webxr content. 2019-11-19 14:33:09 -05:00
Josh Matthews
68b832db27 glutin: Use existing routines for rounding physical/logical sizes. 2019-11-19 14:32:31 -05:00
Josh Matthews
2f2a9a38a8 Remove appveyor CI badge. 2019-11-19 14:17:51 -05:00
bors-servo
e953eb10b7
Auto merge of #24782 - servo:timing, r=SimonSapin
Prepend `-Ztimings=info`, don’t append, so it can be overridden
2019-11-19 14:09:37 -05:00
bors-servo
e6ae93f66e
Auto merge of #24752 - asajeffrey:split-surfman-chains-api-and-impl, r=jdm
Avoid recompiling script every time surfman changes

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

Uses a version of webxr where webxr-api doesn't depend on surfman, so we can make changes to it without rebuilding script.

---
<!-- 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 it's just build issues

<!-- 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. -->
2019-11-19 12:48:14 -05:00
Simon Sapin
34287e5342 Move WPT Linux from Buildbot to Taskcluster
Update expectations as differences don’t look intermittent:
https://github.com/servo/servo/pull/24785#issuecomment-555602259

Fixes https://github.com/servo/servo/issues/23569
2019-11-19 18:37:29 +01:00
Simon Sapin
81a03c1a18 Tweak WPT task names and config 2019-11-19 17:46:10 +01:00
Simon Sapin
b38fd6b21f Fix run.dockerfile to actually be able to run current Servo
… and avoid runtime errors about missing gstreamer plugins
2019-11-19 17:38:47 +01:00
bors-servo
03a6fe0b1f
Auto merge of #24687 - ferjm:mediaelementaudionode, r=Manishearth
WebAudio MediaElementAudioSourceNode implementation

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

Depends on https://github.com/servo/media/pull/321

Tested with https://ferjm.github.io/webaudio-examples/media-source-buffer/

I am still investigating why it is playing back with a low rate.
2019-11-19 11:17:40 -05:00
Fernando Jiménez Moreno
da2f601e93 Update tests for MediaElementAudioSourceNode 2019-11-19 12:22:35 +01:00
Simon Sapin
889a8d1d7c Prepend -Ztimings=info, don’t append, so it can be overridden 2019-11-19 09:14:51 +01:00
Gregory Terzian
50a7111eb6 impl timer-task-source, dedicated time-out mechanism for service-worker 2019-11-19 14:32:21 +08:00
bors-servo
5c92fd84ca
Auto merge of #24770 - servo-wpt-sync:wpt_update_18-11-2019, r=servo-wpt-sync
Sync WPT with upstream (18-11-2019)

Automated downstream sync of changes from upstream as of 18-11-2019.
[no-wpt-sync]
r? @servo-wpt-sync
2019-11-18 23:54:42 -05:00
bors-servo
d553158e95
Auto merge of #24685 - shnmorimoto:fix_revoke_blob_url, r=jdm
Fix revoke blob url

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

fix #24290

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

<!-- Either: -->
- [ ] 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. -->
2019-11-18 21:41:21 -05:00
bors-servo
18ab860f4c
Auto merge of #24669 - glowe:issue-24628/set-mime-type, r=jdm
Set response mime_type based on Content-Type

<!-- Please describe your changes on the following line: -->
Set the response's `mime_type` based on its `Content-Type` header whenever `Response::set_headers` is called. This ensures that `mime_type` is always consistent with `Content-Type`. The other reason for going with this approach is it relies on `extract_mime_type`: afbcbf75ea/components/script/dom/headers.rs (L260-L261)

Besides the consistency argument, I also expect that we'll update the `extract_mime_type` method to conform with its specification.

Another option I explored was adding a `set_mime_type` member to `Response` and calling that with the mime type from `Metadata::content_type` in `FetchResponseListener::process_response`. I decided against this since it expanded the interface of `Response` and didn't have the same benefits of the first option.

Fixes #24628.

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

<!-- Either: -->
- [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. -->
2019-11-18 17:31:47 -05:00
bors-servo
2a5b7be557
Auto merge of #24775 - servo:h, r=jdm
Update harfbuzz-sys

… to pick up https://github.com/servo/rust-harfbuzz/pull/173, which hopefully fixes https://github.com/servo/servo/issues/24611
2019-11-18 15:21:54 -05:00
Simon Sapin
1ebfbd5160 Update harfbuzz-sys
… to pick up https://github.com/servo/rust-harfbuzz/pull/173, which hopefully fixes https://github.com/servo/servo/issues/24611
2019-11-18 19:15:10 +01:00
bors-servo
0d2c2045cc
Auto merge of #24664 - gterzian:fix_port_transfer, r=jdm
Fix loophole in messageport transfer

<!-- 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
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #24600 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] 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. -->
2019-11-18 11:35:25 -05:00
Fernando Jiménez Moreno
04f4da3e13 Implement AudioContext.createMediaElementAudioSourceNode() 2019-11-18 17:14:51 +01:00
Fernando Jiménez Moreno
a72e46f9c8 MediaElementAudioSourceNode: set audio renderer 2019-11-18 17:14:51 +01:00
Fernando Jiménez Moreno
03485d730f MediaElementAudioSourceNode implementation 2019-11-18 17:14:51 +01:00
Fernando Jiménez Moreno
ea054871bf Rename frame_renderer to video_renderer 2019-11-18 17:14:51 +01:00
Fernando Jiménez Moreno
518ec87cdd Update servo-media with MediaElementAudioSourceNode engine 2019-11-18 17:14:50 +01:00
Alan Jeffrey
124de75089 Avoid recompiling script every time surfman changes 2019-11-18 09:40:58 -06:00
WPT Sync Bot
a68b59d35a Update web-platform-tests to revision b624f9b794b1fbc6672fb744bb0ed18819be4d44 2019-11-18 15:04:31 +00:00
bors-servo
49ec49f637
Auto merge of #24767 - Manishearth:xargoup, r=nox
Update xargo

Fixes https://github.com/servo/servo/issues/24766 (I already built and uploaded a package, and have a local build running using it)

I don't know why this fixes that issue, or why that issue turned up in the first place. But it seems to work!

r? @jdm
2019-11-18 09:22:58 -05:00
Shinichi Morimoto
2d995ba41a check same-origin and url against the blob beign revoked 2019-11-18 22:44:07 +09:00
bors-servo
f890d2e21d
Auto merge of #24768 - servo:wpt0, r=nox
Split WPT macOS testing into many more chunks

## Before this

Before this PR, we had roughly as many chunks as available workers. Because the the number of test files is a poor estimate for the time needed to run them, we have significant variation in the completion time between chunks when testing one given PR.

https://github.com/servo/taskcluster-config/pull/9 adds a tool to collect this data. Here are two full runs of `test_wpt` before this PR:

https://community-tc.services.mozilla.com/tasks/groups/DBt9ki9gTdWmwAk-VDorzw

```
count 1, total 0:00:32, max: 0:00:32    docker  0:00:32
count 1, total 0:59:14, max: 0:59:14    macos-disabled-mac1     0:59:14
count 6, total 4:12:16, max: 1:01:14    macos-disabled-mac1 WPT 0:40:29 0:18:55 0:46:50 0:44:38 1:01:14 0:40:10
count 1, total 0:55:19, max: 0:55:19    macos-disabled-mac9     0:55:19
count 6, total 4:25:09, max: 1:01:40    macos-disabled-mac9 WPT 0:37:58 0:37:24 0:27:18 1:01:40 0:46:17 0:54:31
```

Times for a given chunk vary between 19 minutes and 61 minutes. Assuming no `try` testing, with Homu’s serial scheduling of `r+` testing this means that that worker sits idle for 42 minutes and our limited CPU resources are under-utilized.

When there *are* `try` PRs being tested however, they compete with each other and any `r+` PR for the same workers. If we get unlucky, a 61 minute task could only *start* after some other tasks have finished, Increasing the overall time-to-merge a lot.

## This

This PR changes the number of chunks to be significantly more than the number of available workers. When one of them finishes, that worker can pick up another one instead of sitting idle.

Now the ratio of number of tasks to number of workers doesn’t matter: the differences in run time between tasks becomes somewhat of an advantage and the distribution to workers evens out on average.

The number 30 is a bit arbitrary. A higher number reduces resource under-utilization, but increases the effect of per-task overhead. The git cache added in https://github.com/servo/servo/pull/24753 reduced that overhead, though.

Another worry I had was whether this would make worse the similar problem of unequal scheduling between processes within a task, where some CPU cores sit idle while the rest processes finish their assigned work.

This turned out not to be enough of a problem to negatively affect the total machine time:

https://community-tc.services.mozilla.com/tasks/groups/VnDac92HQU6QmrpzWPCR2w
```
count 1, total 0:00:48, max: 0:00:48    docker  0:00:48
count 1, total 0:39:04, max: 0:39:04    macos-disabled-mac9     0:39:04
count 31, total 4:03:29, max: 0:15:29   macos-disabled-mac9 WPT
        0:07:26 0:08:39 0:04:21 0:07:13 0:12:47 0:10:11 0:04:01 0:03:36
        0:10:43 0:12:57 0:04:47 0:04:06 0:10:09 0:12:00 0:12:42 0:04:40
        0:04:24 0:12:20 0:12:15 0:03:03 0:07:35 0:11:35 0:07:01 0:04:16
        0:09:40 0:05:08 0:05:01 0:06:29 0:15:29 0:02:28 0:06:27
```

(4h03min is even lower than above, but seems within variation.)

## After this

https://github.com/servo/servo/issues/23655 proposes automatically restarting failed WPT tasks, in case the failure is intermittent. With the test suite split into more chunks we have fewer tests per chunk, and therefore lower probability that a given one fails. Restarting one of them also causes less repeated work.
2019-11-18 07:45:34 -05:00
Simon Sapin
67b0b97d4f Zero-pad the chunk number in WPT task names 2019-11-18 11:21:38 +01:00
Simon Sapin
e5f6333832 Only use high prority for macOS when testing a PR for merging. 2019-11-18 11:05:49 +01:00
Simon Sapin
1762cba533 Don’t pretend that update_wpt() doesn’t use debug assertions
It already was, since the key given to `find_or_create()`
did not include `args`.
2019-11-18 11:05:49 +01:00