Commit graph

40967 commits

Author SHA1 Message Date
bors-servo
654dd048a3
Auto merge of #25905 - szeged:mmatyas__webgl_fns_read_draw_buffers, r=nox
Add support for WebGL2 read and draw buffer settings

Adds support for the `ReadBuffer` and `DrawBuffers` WebGL2 calls and the related parameter getters.

See:

- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2
- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.4
- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.11

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

This is marked as WIP because with these functions added (but apparently not directly related to them), some tests now run into states that produces crash.

cc @jdm @zakorgy

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

<!-- 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. -->
2020-03-16 11:43:06 -04:00
bors-servo
d857bec944
Auto merge of #25968 - servo-wpt-sync:wpt_update_16-03-2020, r=servo-wpt-sync
Sync WPT with upstream (16-03-2020)

Automated downstream sync of changes from upstream as of 16-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-16 09:43:08 -04:00
WPT Sync Bot
7b0ebcb83d Update web-platform-tests to revision 4568db58b5528eeb9edf931ab34d83fd6883600f 2020-03-16 13:42:55 +00:00
Paul Rouget
00395125f6 UWP port: re-enable devtools 2020-03-16 13:43:10 +01:00
bors-servo
58ff35f5bf
Auto merge of #25941 - kunalmohan:25907-DevtoolsServer, r=paulrouget
Add support for launching devtools server on random port

In case the default port(6000) or the port specified by user for
devtools server is already taken, random port will be assigned to
it which is reported to the embedding layer for display to user.

r?@jdm @paulrouget

<!-- 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 #25907  (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. -->
2020-03-16 07:22:33 -04:00
Mátyás Mustoha
0afe27ef18 Add support for WebGL2 read and draw buffer settings
Adds support for the `ReadBuffer` and `DrawBuffers`
WebGL2 calls and the related parameter getters.

See:

- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2
- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.4
- https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.11
2020-03-16 12:17:15 +01:00
Kunal Mohan
94db0d61cb
Add support for launching devtools server on random port
Assign random port to devtools server in case user does not specify a
port explicitly and report it to the embedding layer for display to user.
2020-03-16 15:30:26 +05:30
bors-servo
e8e0b70266
Auto merge of #25966 - servo-wpt-sync:wpt_update_15-03-2020, r=jdm
Sync WPT with upstream (15-03-2020)

Automated downstream sync of changes from upstream as of 15-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-15 22:31:24 -04:00
Josh Matthews
8e0cdd334b
Delete intermittent failure. 2020-03-15 21:20:11 -04:00
WPT Sync Bot
4bccffb415 Update web-platform-tests to revision 1ce25e2d4ece2d6ac03739b3cb4f5838d1f94e38 2020-03-15 13:34:57 +00:00
Anthony Ramine
3f30c7d8be Do not do weird scope things in MethodDefiner
Variable `m` comes from a previous list comprehension earlier in the
function is not actually properly defined.
2020-03-14 12:17:48 +01:00
Anthony Ramine
4930479ac8 Update the WebIDL parser
Upstream doesn't allow downloading .tar.gz archives so update.sh was changed
to use unzip.
2020-03-14 12:17:48 +01:00
bors-servo
d43e191449
Auto merge of #25945 - mrobinson:track-hoisted, r=nox
layout_2020: Paint hoisted positioned fragments in tree order

Instead of painting hoisted position fragments in the order to which
they are hoisted, paint them in tree order and properly incorporate them
into the stacking context.

We do this by creating a placeholder fragment in the original tree position
of hoisted fragments. The ghost fragment contains an atomic id which
links back to the hoisted fragment in the containing block.

While building the stacking context, we keep track of containing blocks
and their children. When encountering a placeholder fragment we look at
the containing block's hoisted children in order to properly paint the
hoisted fragment.

One notable design modification in this change is that hoisted fragments
no longer need an AnonymousFragment as their parent. Instead they are
now direct children of the fragment that establishes their containing block.

<!-- 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
- [ ] These changes fix #___ (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. -->
2020-03-13 19:15:08 -04:00
bors-servo
5737db81f9
Auto merge of #25940 - pylbrecht:image.handling, r=jdm
Handle nonexistent images in CanvasRenderingContext2D.createPattern()

<!-- 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 part of #25331

<!-- 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. -->
2020-03-13 18:01:32 -04:00
bors-servo
a6736de099
Auto merge of #25904 - mmatyas:webgl_fns_framebuf_renderbuf, r=jdm
Add support for some more WebGL2 renderbuffer functions

Adds support for the following WebGL2 calls:

- `RenderbufferStorageMultisample`
- `GetInternalFormativ`

See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.5

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

The test results depend on #25903.

cc @jdm @zakorgy

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

<!-- 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. -->
2020-03-13 16:29:13 -04:00
pylbrecht
3ec848f4a8 Handle nonexistent images in CanvasRenderingContext2D.createPattern() 2020-03-13 20:48:27 +01:00
Josh Matthews
15557df8b5
Don't run 2dcontext tests in layout-2020. 2020-03-13 14:47:14 -04:00
Josh Matthews
6cdbab5581 webgl: Don't panic on sampler3D and sampler2DArray uniforms. 2020-03-13 14:05:34 -04:00
Mátyás Mustoha
5eaa9ef8cb Add support for some more WebGL2 renderbuffer functions
Adds support for the following WebGL2 calls:

- `RenderbufferStorageMultisample`
- `GetInternalFormativ`

See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.5
2020-03-13 13:43:30 -04:00
bors-servo
13a349603d
Auto merge of #25959 - jdm:webgl_vertex_array, r=jdm
Add VertexArrayObject support for WebGL2

The implementation was already in place for OpenGL ES.
My approach with this patch is to add support for WebGL2 by
sharing the implementation between the WebGL2 and GLES.

Sadly I couldn't manage to place the WebGL2 and OpenGL ES variant to the same slot in `WebGLRenderingContext`, therefore I had to do same code duplication.

Fixes #25956.

<!-- 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] 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. -->
2020-03-13 11:40:43 -04:00
Istvan Miklos
1b4a3d8987 Add VertexArrayObject support for WebGL2
The implementation was already in place for OpenGL ES.
My approach with this patch is to add support for WebGL2 by
sharing the implementation between the WebGL2 and GLES.
2020-03-13 11:38:28 -04:00
bors-servo
63a5807540
Auto merge of #25958 - servo-wpt-sync:wpt_update_13-03-2020, r=servo-wpt-sync
Sync WPT with upstream (13-03-2020)

Automated downstream sync of changes from upstream as of 13-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-13 08:41:47 -04:00
WPT Sync Bot
168aa56f18 Update web-platform-tests to revision 72be34c4c6d45039320e271325cad0c99615d0c4 2020-03-13 11:25:45 +00:00
bors-servo
6ab923c8e8
Auto merge of #25948 - NeverHappened:accept-only-connected-attributes-for-checkbox-radio-activation, r=jdm
Accept only connected attributes for checkbox and radio activation behavior

<!-- Please describe your changes on the following line: -->
Accept only connected attributes for checkbox and radio activation behavior

---
<!-- 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 #25906
- [x] WPT tests were already here
2020-03-12 13:38:47 -04:00
bors-servo
38f0c35b74
Auto merge of #25953 - servo-wpt-sync:wpt_update_12-03-2020, r=servo-wpt-sync
Sync WPT with upstream (12-03-2020)

Automated downstream sync of changes from upstream as of 12-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-12 11:55:47 -04:00
WPT Sync Bot
33357a82e4 Update web-platform-tests to revision f7e2ea2c50c4d23549d07cd24c7a96fc3f203d96 2020-03-12 15:55:33 +00:00
Dmitry Kolupaev
6284795078 Accept only connected attributes for checkbox and radio activation behaviour 2020-03-11 22:55:37 +03:00
bors-servo
4b1bb895a3
Auto merge of #25946 - jdm:macos-fix, r=nox
Update mozjs for macOS 10.15 build fix.
2020-03-11 10:36:10 -04:00
bors-servo
c61988d293
Auto merge of #25947 - servo-wpt-sync:wpt_update_11-03-2020, r=servo-wpt-sync
Sync WPT with upstream (11-03-2020)

Automated downstream sync of changes from upstream as of 11-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-11 09:28:31 -04:00
WPT Sync Bot
57fbf23022 Update web-platform-tests to revision 4cec5596c806088cd8f1781bdaab1d10abb72394 2020-03-11 13:28:16 +00:00
Josh Matthews
ce1b65f1b5 Update mozjs for macOS 10.15 build fix. 2020-03-11 09:07:49 -04:00
Martin Robinson
c3b1c92ac1 layout_2020: Paint hoisted positioned fragments in tree order
Instead of painting hoisted position fragments in the order to which
they are hoisted, paint them in tree order and properly incorporate them
into the stacking context.

We do this by creating a placeholder fragment in the original tree position
of hoisted fragments. The ghost fragment contains an atomic id which
links back to the hoisted fragment in the containing block.

While building the stacking context, we keep track of containing blocks
and their children. When encountering a placeholder fragment we look at
the containing block's hoisted children in order to properly paint the
hoisted fragment.

One notable design modification in this change is that hoisted fragments
no longer need an AnonymousFragment as their parent. Instead they are
now direct children of the fragment that establishes their containing block.
2020-03-11 12:47:06 +01:00
bors-servo
58f3766c5b
Auto merge of #25939 - jdm:rustup2, r=asajeffrey
Update to 3/4 nightly rustc.

Now that #25918 has merged, this should be safe to use.
2020-03-10 20:04:17 -04:00
bors-servo
dd6699c49c
Auto merge of #25943 - servo:jdm-patch-40, r=Manishearth
Add cert scope to UWP nightly build task.
2020-03-10 19:52:21 -04:00
bors-servo
ec5315d76f
Auto merge of #25942 - asajeffrey:surfman-chains-multiup, r=jdm
Update surfman-chains multi branch

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

Updates the mutli branch of surfman-chains, which we get from git, so is broken when I rebase.

---
<!-- 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 fixes CI bustage

<!-- 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. -->
2020-03-10 17:25:02 -04:00
Alan Jeffrey
9c2163cf89 Updated gst plugin for new surfman-chains API 2020-03-10 15:12:33 -05:00
Josh Matthews
3dacd6906f
Add cert scope to UWP nightly build task. 2020-03-10 15:48:19 -04:00
Alan Jeffrey
6e09fa092f Update surfman-chains multi branch 2020-03-10 14:43:41 -05:00
bors-servo
e3c91f7c49
Auto merge of #25938 - servo-wpt-sync:wpt_update_10-03-2020, r=jdm
Sync WPT with upstream (10-03-2020)

Automated downstream sync of changes from upstream as of 10-03-2020.
[no-wpt-sync]
r? @servo-wpt-sync
2020-03-10 12:32:28 -04:00
Josh Matthews
6f72329513
Add layout-2020 failure. 2020-03-10 10:41:12 -04:00
bors-servo
30fafdca19
Auto merge of #25930 - mmatyas:webgl_fns_indexed_unibuf, r=jdm
Add support for WebGL2 GetIndexedParameter

Adds support for the `GetIndexedParameter` WebGL2 call.

See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2

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

Depends on #25915.

cc @jdm @zakorgy

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

<!-- 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. -->
2020-03-10 10:37:53 -04:00
Josh Matthews
51145cfd83 Update to 3/4 nightly rustc. 2020-03-10 10:09:07 -04:00
WPT Sync Bot
5b46b73c1b Update web-platform-tests to revision 5d33b4da92080b7658168bdb0fbdc3531bda1ddf 2020-03-10 13:32:16 +00:00
Mátyás Mustoha
215dd0a1d8 Add support for WebGL2 GetIndexedParameter
Adds support for the `GetIndexedParameter` WebGL2 call.

See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2
2020-03-10 11:02:41 +01:00
bors-servo
7010178691
Auto merge of #25837 - servo:jdm-patch-40, r=Manishearth
Remove XR canvas dirtying step.

Alan tells me that this is no longer necessary, and it causes layout operations to appear in immersive mode profiles when there should not be any.
2020-03-09 22:36:33 -04:00
Josh Matthews
aa060dfd59 Remove unused imports. 2020-03-09 21:11:27 -04:00
Josh Matthews
085e17b73c Remove XR canvas dirtying step. 2020-03-09 21:11:27 -04:00
bors-servo
b4d7ec1c99
Auto merge of #25855 - jdm:surface-inversion, r=Manishearth,asajeffrey
Remove GL->d3d blit in HoloLens immersive mode

Depends on:
* https://github.com/servo/surfman/pull/151
* https://github.com/asajeffrey/surfman-chains/pull/7
* https://github.com/servo/webxr/pull/133

These changes add two extra APIs for embedders to use when registering a WebXR device - one to allow running any closure as a task in the webgl thread, and one to register an arbitrary surface provider for a particular webxr session. When an openxr session is started, it can then obtain the webgl thread's d3d device from that thread's surfman device and ensure that openxr uses it.

Surface providers are traits that have their methods invoked by the webgl thread as part of the the normal swapchain operations. This allows the openxr surface provider to return surfaces that wrap the underlying openxr textures, which are valid in the webgl thread and can be used as the target of an opaque framebuffer.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #25735
- [x] These changes do not require tests because there are no windows immersive mode tests
2020-03-09 19:58:21 -04:00
Josh Matthews
fbcf2bbc3e Integrate swapchain surface provider changes into webgl and webxr implementations. 2020-03-09 17:50:54 -04:00
bors-servo
95f3d46644
Auto merge of #25923 - iulianR:issue-22312, r=jdm
Add VTTRegion and part of VTTCue DOM interfaces

<!-- Please describe your changes on the following line: -->
Hello! In this PR I implemented the VTTRegion DOM interface and part of VTTCue (#22312). Before continuing I thought it's maybe a good idea to first request a review or even merge what I did up to this point, as I might get stuck on the next part. I have a slight idea of what needs to be done (I assume it's hooking the GStreamer parser somewhere in `GetCueAsHTML()`), but a short outline or some more instructions would help a lot.

I updated test expectations by first running:
```
./mach test-wpt tests/wpt/web-platform-tests/webvtt/api --log-raw servo.log --pref dom.webvtt.enabled=true
```
then
```
./mach update-wpt servo.log
```
Thanks!
---
<!-- 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: -->
- [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. -->
2020-03-09 17:33:15 -04:00