Commit graph

22625 commits

Author SHA1 Message Date
Fernando Jiménez Moreno
08f9f17ed3 Send MediaSessionAction from Android 2019-11-20 13:33:51 +01:00
Fernando Jiménez Moreno
b494acbf19 Adapt MediaMetadata interface to new way of declaring constructors 2019-11-20 13:33:16 +01:00
Fernando Jiménez Moreno
dd63ba425f MediaSession show media controls on Android 2019-11-20 13:33:15 +01:00
Fernando Jiménez Moreno
761f21fc8b Send MediaSessionEvent::PlaybackStateChange when needed 2019-11-20 13:33:15 +01:00
Fernando Jiménez Moreno
7ca74d598c MediaSession: refactor embedder API. Fix Android build 2019-11-20 13:33:15 +01:00
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
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
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
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
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
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
Shinichi Morimoto
2d995ba41a check same-origin and url against the blob beign revoked 2019-11-18 22:44:07 +09:00
bors-servo
a7008d1cf7
Auto merge of #24665 - saschanaz:timerhandler, r=nox
Use TimerHandler IDL union type

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

<!-- 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-17 10:30:51 -05:00
bors-servo
2c09f94358
Auto merge of #24736 - paulrouget:layoutissue, r=SimonSapin
layout: Ensure abs-pos elements establish block formatting contexts

Updating #16310

---
<!-- 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 #13495 (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. -->
2019-11-16 20:20:15 -05:00
bors-servo
901fef5fa9
Auto merge of #24742 - servo:jdm-patch-34, r=asajeffrey
Reduce unnecesarily large borrow in script thread

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24730
- [x] There are tests for these changes
2019-11-16 18:32:27 -05:00
Simon Sapin
bea73951db Use #![register_tool] instead of #![register_attr]
CC https://github.com/rust-lang/rust/issues/66079
2019-11-15 17:24:42 +01:00
Simon Sapin
091feba0ba Use #![register_attr(…)] instead of Registry::register_attribute
CC https://github.com/rust-lang/rust/pull/66344, https://github.com/rust-lang/rust/issues/66080
2019-11-15 16:46:50 +01:00
Gregory Terzian
a256f2fcce fix complete messageport transfer 2019-11-15 14:13:04 +08:00
Josh Matthews
8846cda501 script: Reduce scope of borrows for history updates. 2019-11-14 14:11:53 -05:00
bors-servo
f3b1f0d308
Auto merge of #24624 - garasubo:fix-keypress-trigger, r=paulrouget
Fix keypress trigger condition

Fix #22346

keypress event should be triggered for keys representing character
values. So, we should trigger this event for enter key.
This event should not trigger for IME inputs.

TODO:
- It seems we don't handle composition events correctly. To implement this keypress condition correctly, we should fix that first. In my current implementation, onkeypress event will be trigger when the user press Enter key to send inputs in IME (onCompotionEnd).
- I don't update any tests, and I couldn't find any tests related to this change in WPT. It might be better to add some tests for it, but I don't know what is the appropriate way.

<!-- 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 #___ (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-14 06:51:33 -05:00
Paul Rouget
0ea9f69ca8 layout: Ensure abs-pos elements establish block formatting contexts 2019-11-14 12:16:23 +01:00
glowe
e73528e5fc Set response mime_type based on Content-Type
Set the response's mime_type based on its Content-Type header whenever
Response::set_headers is called.

Fixes #24628.
2019-11-14 01:25:20 -05:00
bors-servo
f65cb94b9e
Auto merge of #24674 - servo:jdm-patch-34, r=nox
Correct inverted logic for available image checks.

From https://html.spec.whatwg.org/multipage/images.html#updating-the-image-data:
Step 3 says to initialize selected source to null.
Step 4 says to set the selected source to the image element's src value if it's not using responsive images and it has a non-empty src value.
Step 6 performs some steps if selected source is not null.

The existing code tried to do the step 6 check in a roundabout way which caused us to always check for an available image when using responsive images, which is incorrect. The new code is easier to read and matches the specification text.

---
- [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 not worth writing a test to verify that an image cache check that would always fail does not happen.
2019-11-13 19:19:59 -05:00
Josh Matthews
edcdcf7c13 layout: Inform webrender about new pipeline as early as possible. 2019-11-13 11:54:51 -05:00
Anthony Ramine
808c34498b Update webrender and serde_bytes 2019-11-13 11:54:51 -05:00
bors-servo
97f1300739
Auto merge of #24704 - Darkspirit:https, r=jdm
HSTS & CA updates; Fix Debian bootstrap; Default to https on Android, too.

- Updated HSTS Preload list using ./mach update-hsts-preload
- Updated CA [database](https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReportPEMCSV) using etc/cert_generator.sh.
  - No additions.
  - [bug 1552374](https://bugzilla.mozilla.org/show_bug.cgi?id=1552374) removed Certinomis - Root CA
  - [bug 1574670](https://bugzilla.mozilla.org/show_bug.cgi?id=1574670) removed Class 2 Primary CA and Deutsche Telekom Root CA 2
  - [bug 1586081](https://bugzilla.mozilla.org/show_bug.cgi?id=1586081) removed GlobalSign Extended Validation CA - SHA256 - G2
- Updated Public Suffix list using ./mach update-pub-domains
- Default to https on Android, too. Desktop was done in #23363.
Keep http:// after `android.webkit.URLUtil.guessUrl()` url sanitization only if the user explicitly typed it into the address bar.
Small warning: I don't have an Android build environment yet, but still wanted to try to contribute these two lines.
- Fixed `./mach bootstrap` for Debian Testing. Regression from #24512.
After `pip install distro` (#24561) I finally got `Exception: mach bootstrap does not support Debian GNU/Linux, please file a bug`.
distrib and version were "debian" and "bullseye/sid" before, now they are "debian gnu/linux" and "testing".
- Use HSTS preload list for private HttpState, too. Private HttpState currently [creates an empty HSTS list](f7fb130a2a/components/net/http_loader.rs (L93-L95)). In contrast, regular HttpState first creates HstsList from Preload list and then adds further HSTS entries previously saved on disk.

---
<!-- 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
- [ ] 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-12 17:55:13 -05:00
bors-servo
bd0ae59ca9
Auto merge of #24576 - jaymodi98:iframe-srcdoc, r=jdm
Implement srcdoc support for iframes

<!-- Please describe your changes on the following line: -->
This PR contains changes related to adding srcdoc attribute parsing support for iframes in Servo. The following changes have been made:

- uncomment the [srcdoc](f63b404e0c/components/script/dom/webidls/HTMLIFrameElement.webidl (L10-L11)) WebIDL attribute, and implement the attribute getter.
- add a field to [LoadData](e6b271d329/components/script_traits/lib.rs (L137-L164)) for storing the srcdoc contents when loading a srcdoc iframe.
- (partially) implemented a new `page_load_about_srcdoc` method to `script_thread.rs` which loads the special `about:srcdoc` URL [per the specification](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#process-the-iframe-attributes) and takes the srcdoc contents as an argument
- call this new method from [handle_new_layout](e6b271d329/components/script/script_thread.rs (L2409-L2412)) when it's detected that a srcdoc iframe is being loaded
- (partially) in [attribute_mutated](e6b271d329/components/script/dom/htmliframeelement.rs (L560)), ensure that changing the `srcdoc` attribute of an iframe element [follows the specification](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element:the-iframe-element-9).

---
<!-- 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 are a part of fix #4767  (GitHub issue number if applicable)

<!-- 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-12 14:29:20 -05:00
Josh Matthews
af158de504 dom: Reduce the scope of iframe's load blocker borrow. 2019-11-12 13:57:54 -05:00
jaymodi98
bf69b6fea7 Implement srcdoc support for iframes. 2019-11-12 13:57:54 -05:00
Anthony Ramine
97d6351202 Don't allocate strings in Debug for DisplayItem 2019-11-12 12:18:17 -05:00
bors-servo
641c732281
Auto merge of #24709 - paulrouget:movefix, r=jdm
Properly set event.buttons value on mousemove

A regular mousemove doesn't have any pressed button. And we were not resetting the pressed buttons after a click. That was messing up some jquery polyfil.

---
<!-- 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 #24596 (GitHub issue number if applicable)
2019-11-12 12:13:40 -05:00
bors-servo
944c1e9f97
Auto merge of #24653 - ridhimrastogi:async-web-assembly-compilation-initial-2, r=jdm
Add consume stream callback

<!-- Please describe your changes on the following line: -->
Added the consume stream callback function as per the steps mentioned [here](https://webassembly.github.io/spec/web-api/index.html#compile-a-potential-webassembly-response)

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

<!-- 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-12 04:07:49 -05:00
bors-servo
31ee5fc2f5
Auto merge of #24676 - Manishearth:unpatch, r=jdm
Remove patched webxr

Unsure if this compiles yet, testing locally.

r? @jdm
2019-11-11 19:25:22 -05:00