aboutsummaryrefslogtreecommitdiffstats
path: root/components
Commit message (Collapse)AuthorAgeFilesLines
* Add trait DomObjectWrap to provide WRAP functionYUAN LYU2020-03-20353-1236/+327
|
* Add missing same-origin referrer policyTipowol2020-03-202-1/+3
|
* Auto merge of #25988 - mrobinson:fix-doc, r=SimonSapinbors-servo2020-03-191-1/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | layout_2020: Fix a documentation comment I inadvertently failed to complete this doc comment. <!-- 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: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because they don't change behavior. <!-- 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. -->
| * layout_2020: Fix a documentation commentMartin Robinson2020-03-191-1/+3
| | | | | | | | I inadvertently failed to complete this doc comment.
* | Auto merge of #25782 - kaiakz:master, r=jdmbors-servo2020-03-193-4/+104
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a simple implementation of CanvasRenderingContext2d.fillText <!-- Please describe your changes on the following line: --> I added a simple implementation of CanvasRenderingContext2d.fillText. Some code are merged from @mikrut, and I fixed a bug about text scaling. Also, the bug of text rotation should be fixed after `raqote` merged my other PR. --- <!-- 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) #11681 (GitHub issue number if applicable) <!-- 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. -->
| * | Add a simple implementation of CanvasRenderingContext2d.fillTextkaiakz2020-03-193-4/+104
| | |
* | | layout_2020: Add support for hoisting positioned fragments in inline boxesMartin Robinson2020-03-193-14/+59
| |/ |/| | | | | | | | | | | | | | | Add support for tracking containing blocks when doing inline layout. This requires setting up a PositioningContext for inline boxes when necessary. Instead of using the PositioningContext helper methods and we reuse the contexts between line breaks. Fixes #25279.
* | layout_2020: Refactor PositioningContext to be simpler and smallerMartin Robinson2020-03-181-104/+65
|/ | | | | | Add a few helper methods which allow removing duplicate code in PositioningContext. These methods will also be used to properly implement hoisting in inline layout.
* Make whitespace preservation computation recursive in order to fix lifetime ↵Patrick Walton2020-03-171-25/+45
| | | | issues
* Switch the standard slice iterator in inline layout to a custom one in order toPatrick Walton2020-03-172-10/+65
| | | | avoid lifetime problems
* Switch some uses of `Arc<AtomicRefCell<T>>` over to `ArcRefCell<T>`Patrick Walton2020-03-172-8/+7
|
* Implement `Default` for `ArcRefCell`Patrick Walton2020-03-171-0/+11
|
* Wrap `BlockLevelBox` and `InlineLevelBox` with `AtomicRefCell`Patrick Walton2020-03-175-95/+101
|
* Add an `ArcRefCell<T>` typePatrick Walton2020-03-172-0/+59
|
* Make AbsolutelyPositionedBox be 'staticAnthony Ramine2020-03-177-48/+42
|
* Update atomic_refcellAnthony Ramine2020-03-171-1/+1
| | | | Required for Debug impl on AtomicRefCell<T>.
* Auto merge of #25964 - servo:webidl, r=jdmbors-servo2020-03-1711-195/+526
|\ | | | | | | | | | | Update the WebIDL parser It now supports Python 3.
| * Do not do weird scope things in MethodDefinerAnthony Ramine2020-03-141-0/+2
| | | | | | | | | | Variable `m` comes from a previous list comprehension earlier in the function is not actually properly defined.
| * Update the WebIDL parserAnthony Ramine2020-03-1411-195/+524
| | | | | | | | | | Upstream doesn't allow downloading .tar.gz archives so update.sh was changed to use unzip.
* | Auto merge of #25975 - mmatyas:webgl_fns_read_draw_buffers_p2, r=jdmbors-servo2020-03-171-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not try to read pixels from an FBO without read buffer A follow up to #25905, this adds another check to the WebGL2 ReadPixels implementation to fix an OpenGL invalid operation crash when the method is called on a bound framebuffer that has no read buffer. <!-- Please describe your changes on the following line: --> cc @jdm @zakorgy However, it seems there's an issue with the headless mode: when ReadBuffer is called on the default framebuffer with the value `GL_BACK`, like [here](https://github.com/servo/servo/blob/e1103176e3de8a8c0996d1d60c092cfd8f60e805/tests/wpt/webgl/tests/conformance2/renderbuffers/readbuffer.html#L77), in headless mode an invalid operation is generated. In non-headless mode the whole test completes successfully: ![sshot](https://user-images.githubusercontent.com/4354863/76845770-b0ffbd80-683f-11ea-8103-a81512188808.png) --- <!-- 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. -->
| * | Do not try to read pixels from an FBO without read bufferMátyás Mustoha2020-03-171-1/+5
| | | | | | | | | | | | | | | | | | Adds another check to the WebGL2 ReadPixels implementation to fix an OpenGL invalid operation crash when the method is called on a bound framebuffer that has no read buffer.
* | | Auto merge of #25970 - jdm:hirup, r=asajeffreybors-servo2020-03-161-4/+2
|\ \ \ | | | | | | | | | | | | Update rustc to 3/16 nightly.
| * | | Update rustc to 3/16 nightly.Josh Matthews2020-03-161-4/+2
| | | |
* | | | Auto merge of #25905 - szeged:mmatyas__webgl_fns_read_draw_buffers, r=noxbors-servo2020-03-166-2/+133
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | Add support for WebGL2 read and draw buffer settingsMátyás Mustoha2020-03-166-2/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Auto merge of #25941 - kunalmohan:25907-DevtoolsServer, r=paulrougetbors-servo2020-03-163-8/+20
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | Add support for launching devtools server on random portKunal Mohan2020-03-163-8/+20
| |/ | | | | | | | | 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.
* | Auto merge of #25945 - mrobinson:track-hoisted, r=noxbors-servo2020-03-1310-103/+375
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | layout_2020: Paint hoisted positioned fragments in tree orderMartin Robinson2020-03-1110-103/+375
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Auto merge of #25940 - pylbrecht:image.handling, r=jdmbors-servo2020-03-131-7/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | | Handle nonexistent images in CanvasRenderingContext2D.createPattern()pylbrecht2020-03-131-7/+4
| |/ /
* | | webgl: Don't panic on sampler3D and sampler2DArray uniforms.Josh Matthews2020-03-131-0/+3
| | |
* | | Add support for some more WebGL2 renderbuffer functionsMátyás Mustoha2020-03-136-36/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for the following WebGL2 calls: - `RenderbufferStorageMultisample` - `GetInternalFormativ` See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.5
* | | Auto merge of #25959 - jdm:webgl_vertex_array, r=jdmbors-servo2020-03-138-318/+682
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | Add VertexArrayObject support for WebGL2Istvan Miklos2020-03-138-318/+682
| | | | | | | | | | | | | | | | | | 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.
* | | Accept only connected attributes for checkbox and radio activation behaviourDmitry Kolupaev2020-03-111-0/+3
|/ /
* | Auto merge of #25946 - jdm:macos-fix, r=noxbors-servo2020-03-111-1/+1
|\ \ | | | | | | | | | Update mozjs for macOS 10.15 build fix.
| * | Update mozjs for macOS 10.15 build fix.Josh Matthews2020-03-111-1/+1
| |/
* | Auto merge of #25939 - jdm:rustup2, r=asajeffreybors-servo2020-03-106-23/+23
|\ \ | |/ |/| | | | | | | Update to 3/4 nightly rustc. Now that #25918 has merged, this should be safe to use.
| * Update to 3/4 nightly rustc.Josh Matthews2020-03-106-23/+23
| |
* | Auto merge of #25930 - mmatyas:webgl_fns_indexed_unibuf, r=jdmbors-servo2020-03-102-21/+116
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * Add support for WebGL2 GetIndexedParameterMátyás Mustoha2020-03-102-21/+116
| | | | | | | | | | | | Adds support for the `GetIndexedParameter` WebGL2 call. See: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.2
* | Remove unused imports.Josh Matthews2020-03-091-4/+0
| |
* | Remove XR canvas dirtying step.Josh Matthews2020-03-091-8/+0
| |
* | Auto merge of #25855 - jdm:surface-inversion, r=Manishearth,asajeffreybors-servo2020-03-0913-86/+150
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Integrate swapchain surface provider changes into webgl and webxr ↵Josh Matthews2020-03-0913-86/+150
| | | | | | | | | | | | implementations.
* | | Auto merge of #25923 - iulianR:issue-22312, r=jdmbors-servo2020-03-097-8/+476
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. -->
| * | | Add base of VTTCue DOM interfaceIulian Gabriel Radu2020-03-084-8/+279
| | | |
| * | | Add VTTRegion DOM interfaceIulian Gabriel Radu2020-03-054-0/+197
| | | |
* | | | Auto merge of #25914 - paulrouget:lessRAF, r=jdmbors-servo2020-03-093-6/+11
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stop embedder calls and fake rAF when window not visible This addresses 2 issues: - a rAF loop might still be ongoing when the window is invisible if script decided that the rAF were going too fast (spurious rAF) - a hidden window does not run the rAF loop, but the embedder would still be in animating mode --- <!-- 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. -->