Commit graph

21811 commits

Author SHA1 Message Date
bors-servo
aa752e4d45
Auto merge of #23711 - saschanaz:frompoint, r=Manishearth
Implement DOMPoint.fromPoint

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

Implements DOMPoint.fromPoint and fixes codegen to use default value when an optional dictionary member got `undefined`.

PS: The codegen change is about:

```webidl
dictionary MyDictionary {
  optional short myMember = 0;
  short anotherMember;
}

[Exposed=Window, Constructor]
interface MyInterface {
  void myMethod(optional MyDictionary myDict);
};
```

```js
// The following two must behave same
new MyInterface().myMethod({ myMember: undefined, anotherMember = 0 });
new MyInterface().myMethod({ anotherMember = 0 });
```

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

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

<!-- 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/23711)
<!-- Reviewable:end -->
2019-07-05 15:01:31 -04:00
bors-servo
76d3272d16
Auto merge of #23717 - servo:rustup, r=jdm
Upgrade to rustc 1.37.0-nightly (088b98730 2019-07-03)

<!-- 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/23717)
<!-- Reviewable:end -->
2019-07-05 12:20:17 -04:00
Kagami Sascha Rosylight
40dbb2c100 Implement DOMPoint.fromPoint 2019-07-06 01:15:24 +09:00
Josh Matthews
43a75011be Upgrade to rustc 1.37.0-nightly (088b98730 2019-07-03) 2019-07-05 16:53:02 +02:00
bors-servo
683bd0d881
Auto merge of #23714 - ferjm:media-update-global-mute, r=jdm
Media update global mute

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

<!-- 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/23714)
<!-- Reviewable:end -->
2019-07-05 09:34:47 -04:00
Fernando Jiménez Moreno
7ff47365ed AudioContext shutdown 2019-07-05 11:26:37 +02:00
Fernando Jiménez Moreno
8e0160fa71 Update servo media to include global mute support 2019-07-05 11:01:19 +02:00
bors-servo
a2b76b0169
Auto merge of #23707 - servo:jdm-patch-31, r=paulrouget
Ensure GL context is prepared for deinitialization.

I tested shutdown on Windows numerous times before and after this change, and I have not seen any further panics in debug builds in builds with the GL context made active before deinitializing WebRender.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #23706 and fix #23614.
- [x] These changes do not require tests because no tests on windows ;_;

<!-- 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/23707)
<!-- Reviewable:end -->
2019-07-05 04:13:05 -04:00
bors-servo
0dc17af7f0
Auto merge of #23483 - ceyusa:player-context, r=jdm
Media player rendering with GL textures

These patches pass the application's OpenGL raw context  and the its native display address to the media player, in order to create an internal wrapped context, thus it will generate video frames as textures.

For now only EGL from glutin-based app and android are in place, though tested only in Linux glutin app.

This PR also renders the generated frame textures by Servo/Media and renders them by using a thread that connects Webrenderer's ExternalImageHandler and each instantiated player. **By now, these patches, disable the WebGL rendering**. We need to provide a ExternalImageHandler demuxer.

This PR depends on https://github.com/servo/media/pull/270

- [X]  `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- This PR fixes #22300 and fixes #22920

In order to test it you must launch servo as

`./mach run -- --pref media.glvideo.enabled [...]`

<!-- 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/23483)
<!-- Reviewable:end -->
2019-07-04 23:28:28 -04:00
Simon Sapin
2b01c26aa5 Add ./mach build --with-layout-2020
… with corresponding `layout` and `layout_thread` crates,
which for now do nothing.
2019-07-04 18:16:44 +02:00
Josh Matthews
aa41fee181
Ensure GL context is prepared for deinitialization. 2019-07-04 10:07:28 -04:00
bors-servo
29097d15d0
Auto merge of #23669 - georgeroman:more_array_like_types, r=ferjm
Add support for more array-like types in is_array_like

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

<!-- 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/23669)
<!-- Reviewable:end -->
2019-07-04 08:18:52 -04:00
Fernando Jiménez Moreno
208473cdbc Final tweaks: use expect and remove unnecessary crate attributes 2019-07-04 10:43:32 +02:00
Fernando Jiménez Moreno
63920da347 Differentiate texel space coordinates for webgl and media 2019-07-04 10:26:48 +02:00
Fernando Jiménez Moreno
89dc0119f0 Do not use WR external images if frames are not textures 2019-07-04 10:26:48 +02:00
Fernando Jiménez Moreno
cd17b6ca66 Fix typos, warnings and other nits 2019-07-04 10:26:48 +02:00
Fernando Jiménez Moreno
0da87ad169 Introduce WebrenderExternalImageRegistry 2019-07-04 10:26:48 +02:00
Fernando Jiménez Moreno
ba9cf85fb3 Webrender external image handler demux 2019-07-04 10:26:47 +02:00
Fernando Jiménez Moreno
7d589ed4f5 Media crate 2019-07-04 10:25:49 +02:00
Víctor Manuel Jáquez Leal
db4fff173d Create the WindowGLContext at create_constellation() 2019-07-04 10:25:49 +02:00
Víctor Manuel Jáquez Leal
6e2ee394c9 Handle WR's lock/unlock logic under FrameRenderer 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
95c3d52e7b Add a task source for messages from GLPlayer thread 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
a9ad088e70 Instanciate and use the implemented webrender::ExternalImageHandler 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
e000c14eb2 Implement webrender::ExternalImageHandler for player
Added trait GLPlayerExternalImageApi and its implementation
Implemented webrender::ExternalImageHandler using
GLPlayerExternalImageApi
2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
65f9e2161c Add texture image in MediaFrameRenderer 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
586d3f8da5 Register and unregister a player in GLPlayer thread 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
38eb48441c GLPlayer thread API implementation 2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
59aacb0076 Add GLPlayerMsgForward enum
These are the messages which are going to be sended/forwarded to
the player.
2019-07-04 10:25:48 +02:00
Víctor Manuel Jáquez Leal
fe860f3aad Define the channel type for player events 2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
dd01728d53 Pass GLPlayerThreads to constellation
Create the thread only if the GL context is known.
2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
43467b4290 Add GLPlayerThreads in canvas
This factory will launch a GLPlayerThread from the application main
thread.

And add GLPlayerThread, the multiplexor for media players' video
renderers. This thread will receive commands from htmlmedialement
and webrenderer.

This code is also inspired by webgl_threads and WebGLThread.
2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
0d52d5d304 Add GLPlayerMsg and glplayer_channel in canvas_traits
GLPlayerMsg enum values are going to be the commands to send to
the glplayer_thread.

glplayer_channel mod is a copy of webgl_channel.
2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
e36c0489bf Ignore frame if it is a GL texture
And mock what would be if we handle GL textures.
2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
da8eb18763 Add media.glvideo preference 2019-07-04 10:25:47 +02:00
Víctor Manuel Jáquez Leal
9f4f9dc750 Add media (WindowGLContext) module in canvas_trait
This module adds a structure (WindowGLContext) which holds the
OpenGL parameters that are going to be used by servo-media player
to render video frames using OpenGL.

In order to fill this structure, three new methods were added to
WindowMethods trait. In this patch only the Glutin-based
implementation provides a simple boilerplate.

The WindowGLContext is created in the entry point of libservo, when
the application window is created, and later passed to the
constellation, the pipeline and to the window element in dom, thus
htmlmediaelement has a mean to obtain these parameters via its
window.
2019-07-04 10:24:01 +02:00
Víctor Manuel Jáquez Leal
e9f46f9d72 Fix code style 2019-07-04 10:24:00 +02:00
bors-servo
b32bff3b97
Auto merge of #23696 - servo:hl, r=jdm
Add UWP port - bis

This is #23658 with some fixes:
- removed nspr from DLL dependencies (was breaking VS build)
- exclude symbols from header file (was breaking VS build)
- rebased

Before merging:
- please check the rebased commit that introduces the `--uwp` option (things moved around since 7c85dc09b5)
- should we wait until the WR fix lands upstream?

<!-- 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/23696)
<!-- Reviewable:end -->
2019-07-04 01:03:35 -04:00
bors-servo
e2441b27bb
Auto merge of #23694 - saschanaz:rotate-fix, r=Manishearth
Fix DOMMatrix rotate test failure

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

Rotation functions have been working backward because of https://github.com/servo/euclid/issues/354, so this temporarily fixes it.

cc @Manishearth

PS: How can I run bors-servo myself?

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

<!-- Either: -->
- [x] There are tests for these changes OR

<!-- 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/23694)
<!-- Reviewable:end -->
2019-07-03 22:33:22 -04:00
bors-servo
af295bcefe
Auto merge of #23654 - julientregoat:issue-23645, r=jdm
Fix panic when running test-background-fetch-permission.html

<!-- Please describe your changes on the following line: -->
* Propagate `Error::JSFailed` in `Permissions::create_descriptor`
* In `Error::to_jsval`, only check if a JS exception is not pending if `self` is not `Error::JSFailed`

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a test runner, so by nature if the test runs the test runner is also working as expected.

<!-- 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/23654)
<!-- Reviewable:end -->
2019-07-03 19:56:29 -04:00
Josh Matthews
7a3d346087 Simplify build process for UWP app. 2019-07-03 21:35:44 +02:00
bors-servo
e382266b22
Auto merge of #23564 - mmiecz:clipboard-refactoring, r=jdm
Clipboard refactoring

<!-- Please describe your changes on the following line: -->
This PR removes clipboard handling from the constellation. Instead, now embedder handles it.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it is enough to test manually in input box, if copying and pasting still works .

<!-- 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/23564)
<!-- Reviewable:end -->
2019-07-03 15:20:15 -04:00
Julien Tregoat
28fcde9e10 Propagate JSFailed error & conditionally execute initial assertion when converting error to JS value. 2019-07-03 13:48:48 -04:00
Alan Jeffrey
9eb75d4ea6 Use webxr IPC to get a WebXR device registry to each script thread 2019-07-03 08:53:40 -05:00
Kagami Sascha Rosylight
168d980f9e Fix DOMMatrix rotate test failure 2019-07-03 20:23:52 +09:00
bors-servo
fee1418b43
Auto merge of #23685 - saschanaz:scalenonuniform, r=paulrouget
Add DOMMatrix.prototype.scaleNonUniform

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

Implements `scaleNonUniform()` [per the spec](https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-scalenonuniform).

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

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

<!-- 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/23685)
<!-- Reviewable:end -->
2019-07-03 05:20:14 -04:00
bors-servo
50033878a6
Auto merge of #23676 - servo:check, r=Manishearth
Share more `./mach build` logic with mach check, doc, test-unit

Fixes #23659

<!-- 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/23676)
<!-- Reviewable:end -->
2019-07-02 23:55:44 -04:00
Alan Jeffrey
135ad4a2f4 Use webxr git repo for all webxr dependencies in Cargo.tomls 2019-07-02 18:24:29 -05:00
Alan Jeffrey
91d1b52b38 Initialize a wevxr device registry from Servo 2019-07-02 18:23:56 -05:00
bors-servo
b4ed3b6f3c
Auto merge of #23641 - Manishearth:newtest, r=asajeffrey
Update to newest XRTest API

requires https://github.com/servo/rust-webvr/pull/88 and https://github.com/servo/servo/pull/23575

Incorporates changes from https://github.com/immersive-web/webxr-test-api/pull/10 (and various minor improvements on that, like https://github.com/immersive-web/webxr-test-api/pull/20). Test no longer relies on racy state setting functions.

We're nearing consensus on what the test API should look like, thought I'd implement the updated model so I can start poking at the tests.

Fixes https://github.com/servo/servo/issues/23634 by setting everything at initialization.

This is based on https://github.com/servo/servo/pull/23575, so we can't merge it yet.

r? @asajeffrey (only the last commit)

<!-- 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/23641)
<!-- Reviewable:end -->
2019-07-02 15:10:14 -04:00
Manish Goregaokar
480a9988d1 Update requiredness of some fields 2019-07-02 10:10:58 -07:00