Commit Graph

3245 Commits

Author SHA1 Message Date
Brody Eastwood
1906c5457d servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm
<!-- Please describe your changes on the following line: -->
Implements the initial steps from:

https://github.com/servo/servo/wiki/Canvas-rendering-project

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 9cd60c8e78af7b80e7578612ae442de26d1a325b
2018-04-02 22:24:34 -04:00
Nupur Baghel
6a1d492910 servo: Merge #20434 - Typed array support for XMLHttpRequest's send API (from nupurbaghel:typed-array-xml); r=jdm
<!-- 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 #20343

<!-- Either: -->
- [x] Updated some 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c148809c1528a969f80f205dce570a5db606374
2018-03-29 02:02:37 -04:00
Marcin Mielniczuk
616a02633f servo: Merge #20246 - Use higher level handles from JS bindings (from marmistrz:test-lifetime-handles); r=jdm
…reak servo

<!-- 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 https://github.com/servo/rust-mozjs/issues/153

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because this is just migration to a lifetimed API
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 914952487bcbba0a31db8aefc4a9487903721959
2018-03-28 16:22:01 -04:00
Bastien Orivel
f38039247d servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 12d82fe621947c2b29b12d9c9e9a81b0f4baa117
2018-03-28 15:08:52 -04:00
Yusuf Simonson
5b272b2734 servo: Merge #20450 - Properly rethrow any exceptions from parsing JSON in Body mixin's Json() (from ysimonson:fix-13464); r=jdm
This fixes #13464 by rethrowing exceptions from parsing JSON.

- [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).
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 25dcd0ecfd4cb7a844f00696730cb0d3ab4b198c
2018-03-27 22:44:32 -04:00
Anthony Weston
2c6a92d613 servo: Merge #20430 - Pass new method in CollectServoSizes to get size of ObjectPrivateVisitor (from aeweston98:aew-issue7084); r=jdm
<!-- Please describe your changes on the following line: -->
These changes are the servo changes to allow the measurement of DOM objects with the ObjectPrivateVisitor API. Two new functions have been added MemoryReporter and get_size, which are passed as function pointers to two updated mozjs functions. Currently these changes rely on a branch version of mozjs, which has an [open pull request](https://github.com/servo/rust-mozjs/pull/409).

---
<!-- 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 #7084 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 339146ae1566fc35e47ccc4fba1471a9123d039d
2018-03-27 21:21:56 -04:00
Andrew Shu
9b0603fc5b servo: Merge #20431 - TextDecoder: streaming decode, ignoreBOM (from talklittle:issues-13234-5600-squashed); r=jdm
<!-- Please describe your changes on the following line: -->
Implement streaming decode and ignoreBOM flag for TextDecoder.

https://encoding.spec.whatwg.org/#dom-textdecoder-decode

https://encoding.spec.whatwg.org/#dom-textdecoder-ignorebom

---
<!-- 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 #13234 (github issue number if applicable).
- [x] These changes fix #5600 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because the wpt tests are used for testing:

* /encoding/textdecoder-fatal-streaming.html
* /encoding/textdecoder-streaming.html
* /encoding/textdecoder-ignorebom.html

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 1981efcc3585d244f6293716fbcf833afa58e629
2018-03-26 17:30:36 -04:00
csmoe
fc49f90510 servo: Merge #20307 - Measure time required before a layout query is serviced by the layout thread (from csmoe:measure_query_time); r=jdm
<!-- Please describe your changes on the following line: -->

- [X] extract QueryMsg from ReflowGoal
- [X] introduce QueryMsg timestamp

---
<!-- 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 #19795 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4b8416fafbbfec7f3adbc46874ea779ed90ad3d1
2018-03-26 15:42:03 -04:00
Anthony Ramine
0948cdf355 servo: Merge #20423 - Use ByteBuf for the canvas messages (from servo:bytes); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 9c5bdd932e4ce8720e25241cb1bbdd85be3c92a5
2018-03-26 14:49:16 -04:00
OJ Kwon
aeb6070244 servo: Merge #20439 - refactor(websocket): do not borrow sender anymore (from kwonoj:refactor-websocket-send); r=jdm
<!-- Please describe your changes on the following line: -->
Relates to #20438.

Per instructed, this PR aim to remove borrwing `Websocket::sender`, by explicitly injecting instance via ctor.

---
<!-- 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 #20438 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
- These changes are locally passed compilation / passed unit test on macOS.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 31d7d3f1fb66c3b14865cf1c1f708475a91bfe00
2018-03-26 12:05:24 -04:00
Christian Poveda
342834a96a servo: Merge #20426 - Websockets send typed arrays now (from christianpoveda:issue_20347); r=jdm
<!-- Please describe your changes on the following line: -->

r? jdm

---
<!-- 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 #20347 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 36a41722b6b93be6e500b4fc0debfa9b5d2ac7bf
2018-03-25 14:07:15 -04:00
Anthony Urena
cecf716ec9 servo: Merge #20422 - Use BufferSource in bluetooth APIs (from anthgur:issue_20345); r=emilio
<!-- Please describe your changes on the following line: -->

Updates `RemoveGATTDescriptor.webidl`, `BluetoothDataFilterInit`, and `BluetoothRemoteGATTCharacteristic` to use `BufferSource`.

---
<!-- 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 #20345 (github issue number if applicable).
- [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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 3ce3f39383c8217a30b15d27f3121f96bbe0014d
2018-03-24 21:11:47 -04:00
Emilio Cobos Álvarez
9121ae182e servo: Merge #20419 - Update mozjs (from emilio:mozjs-up); r=jdm
Peeks up https://github.com/servo/rust-mozjs/pull/408.

Source-Repo: https://github.com/servo/servo
Source-Revision: b8279b376bb4b6118c5a65fa6aeaf5a08c6e953b
2018-03-24 19:05:47 -04:00
Christian Poveda
d726461e64 servo: Merge #20413 - TextDecoder's Decode now receives a BufferSource as input (from christianpoveda:issue_20344); r=jdm
<!-- Please describe your changes on the following line: -->

r? jdm

---
<!-- 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 #20344 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f94e0d2a8c79f999e64231d2dbce5582ef1a689
2018-03-24 17:46:46 -04:00
Anthony Ramine
7a7d4ac780 servo: Merge #20414 - Implement gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE) (from servo:webgl); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 782d4d4af61b7c9f60dfb494f8a5bfb6407945d2
2018-03-24 14:58:38 -04:00
OJ Kwon
e12098dbc5 servo: Merge #20406 - feat(fetch): accept arraybuffer in consume_body (from kwonoj:feat-fetch-body-arraybuffer); r=jdm
feat(fetch): accept arraybuffer in consume_body

<!-- Please describe your changes on the following line: -->
Related to https://github.com/servo/servo/issues/20346.

I realized I am not sufficiently knowledgeable about codebases and have high confidence this PR is not ready to be accepted. Raising it as PR early to possibly ask some suggestions around codebases.

If this PR seems unrecoverable by code review, please feel freely close and unassign me from issue 🙏

This PR tries to implement #20346, updating `Body` idl and implements corresponding implementation in `body.rs` for `fetch`. Criteria for changes may includes

- does `run_array_buffer_data_algorithm` implementation is legit for allocating arraybuffer? (probably not)
- does `run_array_buffer_data_algorithm` implementation is acceptable for handling error, by naively returning `Error::JSFailed`?
- there are some number of wpt test started to PASS with this PR. Is this legit side effect, or something incorrect by current implementation?
- etcs, vice versa

---
<!-- 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 #20346 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
- wpt test has changed in PR, need to be reviewed.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 23b2f42a368cdc68548310e79b31306f40f95553
2018-03-24 13:46:20 -04:00
Christian Poveda
dc4560354a servo: Merge #20405 - Add constructors for typed arrays in DOMMatrix and DOMMatrixReadOnly (from christianpoveda:issue_20349); r=jdm
<!-- Please describe your changes on the following line: -->

- DOMMatrix now have the functions: FromFloat32Array, FromFloat64Array.
- DOMMatrixReadOnly now have the functions: FromFloat32Array, FromFloat64Array, ToFloat32Array, ToFloat64Array.

r? @jdm

---
<!-- 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 #20349 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d789646345a21c32f9bed0f7380526469384238
2018-03-24 12:41:44 -04:00
Anthony Ramine
1e85467212 servo: Merge #20411 - Implement WebGLRenderingContextBase.getAttachedShaders (from servo:webgl); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ab34d59691f969f945f6d313d1a68a2fbc11872
2018-03-24 10:25:35 -04:00
Anthony Ramine
f8afb92666 servo: Merge #20400 - Implement HTMLCanvasElement.toDataURL for WebGL canvas (fixes #19147) (from servo:webgl); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 72f326b22bfa9dfae30941883979fd9f3090d044
2018-03-24 00:18:28 -04:00
MaximilianDauner
aa33c07835 servo: Merge #20404 - GamepadButtonList::sync_from_vr should use more iterators #20392 (from MaximilianDauner:issue_20392); r=jdm
<!-- Please describe your changes on the following line: -->
Used the zip function instead of iterating over both vectors with an indexing variable and using unwrap.

---
<!-- 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 #20392(github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it says in the issue description no need for tests
<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a432eaad33f36591f62c3d2671ffd9956be3594
2018-03-23 23:15:51 -04:00
Igor Matuszewski
1f5e711bbc servo: Merge #20396 - Replace object function arguments in WebGL with typed arrays (from Xanewok:webgl-typed-arrays); r=jdm
<!-- Please describe your changes on the following line: -->

Could use a https://github.com/servo/rust-mozjs/pull/402 in some places, as this should simplify a little bit and remove unnecessary `#[allow(unsafe_code)]` attributes.

I sort of hacked my way through for https://github.com/servo/servo/issues/20394 since I encountered this issue as well. I agree that the comment above makes me feel uneasy about this and feels like I'm missing something and this shouldn't be the way we eventually resolve the overloads with auto rootable types (talking about this: https://github.com/servo/servo/pull/20396/files#diff-60d01595cff328c165842fea9e4ccbc2R428).

r? @jdm

---
<!-- 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 #20342 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because if the bindings compile now, it 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e8fdc677f440919507209ed42d0ea042c700042c
2018-03-23 15:15:38 -04:00
Igor Matuszewski
e97402755e servo: Merge #20399 - Sanitize Heap::handle(_mut) functions (from Xanewok:remove-heap-handle-mut); r=jdm
<!-- Please describe your changes on the following line: -->
Complementary to https://github.com/servo/rust-mozjs/pull/404.

Removing `Heap::handle_mut` didn't warrant any changes on Servo side, and so the changes here are only to fix compilation with `Heap::handle` being now marked as `unsafe`.

The main idea is that we can't hand out handles to heap values themselves, since they're not guaranteed to be rooted, but it's safe to do when we are - hence why the safe impl on `RootedTraceableBox<Heap<T>>` and why it's safe to use inside structs that hold a Heap and are `#[must_root]`.

---
<!-- 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 the compiler forces correctness here.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 18ef5874dd3e11551e2f9503746540847eeb974c
2018-03-23 13:06:01 -04:00
Anthony Ramine
9ab8437e48 servo: Merge #20397 - Implement OES_element_index_uint (fixes #20384) (from servo:webgl); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 4a6453ac9ad956502ec6d39093b83820d94a409e
2018-03-23 10:14:04 -04:00
Christian Poveda
41a8b9aec9 servo: Merge #20389 - getRandomValues uses ArrayBufferView now (from christianpoveda:issue_20350); r=jdm
<!-- Please describe your changes on the following line: -->

- Changed the `Crypto.webidl` file to allow getRandomValues to recieve an ArrayBufferView as input
- Removed unnecesary checks from `crypto.rs` and did the necessary changes to match the `webidl` changes.

---
<!-- 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 #20350 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e5b606f6a41058bdcc5745ab0da075d0e6ed52fb
2018-03-22 17:28:54 -04:00
Nakul Jindal
208004c18f servo: Merge #20132 - Profiler for blocked IpcReceiver::recv() (from nakul02:issue_19223); r=jdm
<!-- Please describe your changes on the following line: -->

Implements feature #19223

---
<!-- 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 #19223 (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. -->

WIP.
@jdm - this is the new profiler : "Blocked at IPC Receive"
Should I dig through all the calls to `ipc::channel` and replace them with this profiled `IpcReceiver`?

![screenshot from 2018-02-27 01-35-37](https://user-images.githubusercontent.com/5394361/36721061-b46edea4-1b5e-11e8-91d6-7faba742f237.png)

Source-Repo: https://github.com/servo/servo
Source-Revision: f467bdce1ba95e950b01f59ba284873137bca5d5
2018-03-22 16:38:32 -04:00
Anthony Ramine
8794211c36 servo: Merge #20375 - Fall down the WebGL rabbit hole and fix some bugs there (from servo:webgl); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: c20d0c00d711cda61ad1b35f15f2fb563c042c5e
2018-03-22 15:32:45 -04:00
Igor Gutorov
d38a0e9238 servo: Merge #20317 - Implement WebGL getFrameBufferAttachmentParameter API (from gootorov:webgl-getFramebufferAttachmentParameter); r=jdm
<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of https://github.com/servo/servo/issues/10209.

r? emilio or jdm.

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 4aaac61a87f4e45e46d0591be73ce108e562c33f
2018-03-22 12:28:30 -04:00
Bastien Orivel
d2f3433543 servo: Merge #20378 - Bump parking_lot to 0.5 (from Eijebong:parking_lot); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1c2bed5a6909268c85d61ec73b2ab63602294eb1
2018-03-21 14:16:57 -04:00
Christian Poveda
aeb4205ca0 servo: Merge #20370 - Blobs support typed arrays now (from christianpoveda:issue_20348); r=jdm
<!-- Please describe your changes on the following line: -->
Blobs support typed arrays now, the relevant test were modified

---
<!-- 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 #20348 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: de04783fd9593cc21ce1b4709cf572f4450880ad
2018-03-21 11:10:27 -04:00
Bastien Orivel
052cff7bc3 servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 02c758a2266f51a95dc2ef647462e13fad4bb6a8
2018-03-21 09:00:16 -04:00
Igor Gutorov
5cca697b3b servo: Merge #20369 - Move WebGL validation (from gootorov:move-validation); r=emilio
This moves validation from `canvas/webgl_thread` to `dom/webglrenderingcontext` for consistency and speed and simplifies it where it is possible.

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: f92f0809f89593d4b70eb0f507f6ca4409c9ed91
2018-03-20 19:58:58 -04:00
CYBAI
f242f0f2f0 servo: Merge #20367 - Ignore type in document.open (from CYBAI:ignore-type-in-document-open); r=jdm
Spec: https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-document-open

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #20279
- [x] There are tests for these changes; the tests in `dynamic-markup-insertion/opening-the-input-stream/type-argument.window.js` should pass

Source-Repo: https://github.com/servo/servo
Source-Revision: 730bd5ec807fec0ed65bbf85afebe3bbca64b32c
2018-03-20 12:32:00 -04:00
Igor Matuszewski
e87d425d2d servo: Merge #20314 - Don't use unsafe Heap::new constructor (from Xanewok:remove-heap-constructor); r=jdm
<!-- Please describe your changes on the following line: -->
Pulls https://github.com/servo/rust-mozjs/pull/398 and aims to close https://github.com/servo/rust-mozjs/issues/343.

We can't convert from `JSVal` to `Heap<JSVal>` safely (due to GC barriers we can't move Heap value after changing its underlying value to something meaningful, e.g. non-null or non-undefined), so I decided to also wrap the Heap values in a Box (and in dictionaries in RootedTraceableBox, see https://github.com/servo/servo/pull/20265#issuecomment-372838379 and the issue for more details) in dictionaries.

Since we allocate more to be safe, I think it'd be good to also do some sort of a JS perf run, if there is any to see if there's any significant overhead.

r? @jdm

---
<!-- 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 checking for not moving Heap after setting a value would require encoding a lot more info in type system (Heap) and I'm not sure how to do that and end up with an ergonomic and consistent API

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 23b6f569d09f9b10a70ca1b5c8a48f7da45853e2
2018-03-18 15:22:23 -04:00
Paul Rouget
229c6aafb3 servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw
Requires https://github.com/servo/servo/pull/19895

We use Size2D and Point2D across compositing, constellation and script, loosing the type of pixels we use (DevicePixel, DeviceIndepententPixel or CSSPixel) along the way, which might lead to bugs like `window.outerHeight` not taking into account the page zoom (using DeviceIndepententPixel instead of CSSPixel).

This should make the situation a bit better.

---
<!-- 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 we can't zoom in a test

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

Source-Repo: https://github.com/servo/servo
Source-Revision: fc90e613d8851b663e3304d713b2ca08aa397bf4
2018-03-16 17:18:24 -04:00
Anthony Ramine
a0e0e3b201 servo: Merge #20305 - Don't access the reflector when dropping a Promise (fixes #18651) (from servo:OMAE-WA-MOU-SHINDEIRU); r=jdm
The reflector may be dead already.

Source-Repo: https://github.com/servo/servo
Source-Revision: 46a8e7184b949d3c03d3a66aa3a9d6fdf7156254
2018-03-15 10:17:43 -04:00
Igor Matuszewski
a675373a0f servo: Merge #20267 - Support JS typed arrays as arguments and in WebIDL unions (from Xanewok:typed-arrays-stack-heap-variants); r=Xanewok
<!-- Please describe your changes on the following line: -->
Supersedes #20205.
This brings support to receiving typed arrays as function arguments (those are stack-rooted with CustomAutoRooter) and also being a member of a union (which is basically heap-rooted? similarly to other webidl unions).

This is based on my other PR #20265 (which means it has to pull an external rust-mozjs branch and contains some also slightly unrelated changes here) since it shares `RootedTraceableBox::from_box` here and some other additional changes at rust-mozjs, but it can be easily separated if needed.

I tried adding support to nullable typed arrays but couldn't work around an issue of codegen always sticking a "OrNull" at the end of my type (presumably because of [this](https://github.com/servo/servo/blob/master/components/script/dom/bindings/codegen/parser/WebIDL.py#L2241)?). How would I go about avoiding the suffix with nullable arguments?

If we were to add also support for nullable typed arrays then I think we wouldn't be blocked anymore on this in WebGL 1.0.

r? @jdm

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

Source-Repo: https://github.com/servo/servo
Source-Revision: f7ee1befc51276f82375c0e366118172682c91b0
2018-03-14 15:43:18 -04:00
Igor Matuszewski
db421946d2 servo: Merge #20265 - Fix JS object conversion in unions (from Xanewok:fix-js-objects-in-unions); r=jdm
<!-- Please describe your changes on the following line: -->
Requires safe `Heap::boxed` constructor from https://github.com/servo/rust-mozjs/pull/395 (more info on it is in the PR).

Since unions currently assume that their respective members root themselves and can be stored on heap, I modified the union member object conversion branch to convert to a `RootedTraceableBox<Heap<*mut JSObject>>` (which is the currently generated type for objects in said unions).

I did it only for Unions and not dictionaries, since some dictionaries had bare `*mut JSObject` members - is this a mistake and something that needs further fixing?

Does this need a test, e.g. passing a union with object to a function that returns said object, and comparing the results for equality?

r? @jdm

Generated code with this patch (for `StringOrObject`):
```rust
impl FromJSValConvertible for StringOrObject {
    type Config = ();
    unsafe fn from_jsval(cx: *mut JSContext,
                         value: HandleValue,
                         _option: ())
                         -> Result<ConversionResult<StringOrObject>, ()> {
        if value.get().is_object() {
            match StringOrObject::TryConvertToObject(cx, value) {
                Err(_) => return Err(()),
                Ok(Some(value)) => return Ok(ConversionResult::Success(StringOrObject::Object(value))),
                Ok(None) => (),
            }

        }
        // (...)
    }
}

impl StringOrObject {
    // (...)
    unsafe fn TryConvertToObject(cx: *mut JSContext, value: HandleValue) -> Result<Option<RootedTraceableBox<Heap<*mut JSObject>>>, ()> {
        Ok(Some(RootedTraceableBox::from_box(Heap::boxed(value.get().to_object()))))
    }
}
```

---
<!-- 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 #17011 (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e597cd9e1adc23ae30587ff6bffc05119ac33fb9
2018-03-14 12:04:23 -04:00
Emilio Cobos Álvarez
ce3f293edd servo: Merge #20243 - style: add infrastructure to match the :host selector (from emilio:host-selector-on-the-way); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 148beb4ea5f8f1680e694ac48045a632da58269c
2018-03-14 10:38:45 -04:00
OJ Kwon
295f7a83b7 servo: Merge #20290 - build(cmake): detect python binary for specified version (from kwonoj:build-python-version); r=jdm
<!-- Please describe your changes on the following line: -->
This PR aims to address #20268, by updating cmake definition to lookup python binary to use. Instead of directly asking `python` binary, this PR uses `${PYTHON_EXECUTABLE}` to lookup desired python binary where applicable.

This PR was locally tested on win32 / mac / arch linux via `mach build --dev`, so far local testing shows no build failure regressions, not sure if this is sufficient test.

---
<!-- 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 #20268 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because _it's build script update_

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a6c96808b314a3dfaffa23803df73ee904e4dbe
2018-03-13 16:29:19 -04:00
Anthony Ramine
65bb006e8c servo: Merge #20277 - Enable /webvr/ tests (from servo:test-webvr); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 5feb13ac66eb256db8ef41d75ddf9c6c4e0ecd54
2018-03-12 10:32:52 -04:00
Simon Sapin
c6c440a876 servo: Merge #20216 - Switch from servo/angle to the mozangle crate (from servo:mozangle); r=emilio
https://github.com/servo/mozangle

Source-Repo: https://github.com/servo/servo
Source-Revision: 345c373192a30329c2c4f70631ab0792fc348f7d
2018-03-12 09:23:52 -04:00
Emilio Cobos Álvarez
2885def03e servo: Merge #20262 - constellation: Make setting up the WebGL state fallible (from emilio:webgl-fallible); r=jdm
This fixes a regression caused by the glutin update.

We now are creating EGL contexts in Linux Wayland, instead of X context, so the
GLContextFactory assumption of one GL back-end per platform is broken.

This just works around it, for now, but in general I think not relying on
available WebGL state is a good thing, and we do that already for WebVR anyway.

Source-Repo: https://github.com/servo/servo
Source-Revision: 95f9e14e67766b36a8b72e62925a34b1818be2c8
2018-03-09 18:24:56 -05:00
Xidorn Quan
98847d6862 servo: Merge #20238 - Construct URLValue eagerly and share it between specified value and style structs (from upsuper:url-value); r=emilio
This is the Servo side change of [bug 1443046](https://bugzilla.mozilla.org/show_bug.cgi?id=1443046).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1d122c250c906358a91b607b0fcc720546d04134
2018-03-08 08:06:35 -05:00
Martina Kollarova
7730b21490 servo: Merge #20212 - Regenerate all WebIDLs when one of them changes (from mkollaro:webidlcmake); r=jdm
WebIDL files have dependencies between each other, but cmake doesn't have any
information about them. This can cause it to not update all the changed bindings
when switching branches.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a minor change in the build dependencies.
Switching between two of my branches was previously failing because a change in WebGL1 bindings didn't re-generate the WebGL2 bindings. I verified that it works with this patch.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 96b9000fa25ca34ad56c8e95c9eabe5636174655
2018-03-06 12:37:58 -05:00
Fabrice Desré
72c9be4d76 servo: Merge #20181 - Fire the pageshow event at the end of the page load (from fabricedesre:end-load-pageshow); r=jdm
<!-- Please describe your changes on the following line: -->
This implements step 8 of https://html.spec.whatwg.org/multipage/parsing.html#the-end

---
<!-- 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 I could not find a wpt test for that, which is strange. I likely missed it :(

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 94a6c2c429eb0415a277ff49fa19ae0eaefb0be9
2018-03-06 10:49:51 -05:00
Martina Kollarova
17c4e8f951 servo: Merge #20144 - Add WebGL function glGetTexParameter (from mkollaro:gettexparameter); r=jdm
<!-- Please describe your changes on the following line: -->
Add WebGL function glGetTexParameter

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: f5037cf6219cafbc86bfaf6483b81b4ffb3496fa
2018-03-06 09:48:56 -05:00
Paul Rouget
f121705bd5 servo: Merge #20182 - Prompt URL on Cmd/Ctrl-L (from paulrouget:ctrl_l); r=jdm
<!-- Please describe your changes on the following line: -->

The `sanitize_url` code is very naive. I'm sure we can do better.
This ServoShell issue describes the problem: https://github.com/paulrouget/servoshell/issues/59

I can fix that now if someone can help me figure out how to tell if a string is a valid url which is just missing a scheme. Or we can do that in a follow up.

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: ec3aa8bd7a985b26f894a73f9b84fc53a005d453
2018-03-04 12:48:30 -05:00
Manish Goregaokar
30e0b6e798 servo: Merge #20152 - Support zero rowspans (from Manishearth:rowspan-zero); r=mbrubeck
This makes rowspan=0 work by storing notes on which group of rows we're in
for tables containing both rowgroups and rows, and using that to respan
cells with overlarge or zero rowspans.

This also gets rid of the largest_leftover_incoming_size business, because
now spans will always be correct and we'll never have any left over.

Based on https://github.com/servo/servo/pull/20128

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f2cd86b8ee7bbe71ff30758cf5c2174e008e9b5
2018-03-01 13:36:43 -05:00
Bastien Orivel
431c333b78 servo: Merge #20143 - Bump itertools, image, flate2 and caseless (from Eijebong:bump); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: af92c06223a65fee3037b64b29ed9f089ef87310
2018-02-28 13:10:59 -05:00
Emilio Cobos Álvarez
2e57800fc3 servo: Merge #20138 - style: Only expose longhands to rust via iterators (from emilio:longhand-iterator); r=nox
The key here is that we only filter longhands if the shorthand is accessible to
content and vice-versa. This prevents the bug that prevented me to land this
patch before, which was us not expanding properly chrome-only shorthands.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0be3a7fae2730bfef52db94db7f3af14b60be67
2018-02-28 06:28:41 -05:00