Commit graph

25052 commits

Author SHA1 Message Date
Simon Sapin
1ff5433aef Upgrade to rustc 1.42.0-nightly (9b98af84c 2019-12-22) 2019-12-23 14:07:01 +01:00
bors-servo
7e8a305394
Auto merge of #25366 - pshaughn:hasinstance, r=jdm
Remove obsolete HasInstance behavior per heycam/webidl #356

This turns one WPT test from fail to pass and it leaves Servo with a little less platform object special-case code to worry about.

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

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-23 02:20:36 -05:00
Patrick Shaughnessy
14d278ff1c apply is: to Document.createElement even when name isn't registered yet 2019-12-22 20:46:31 -05:00
Patrick Shaughnessy
c99e0d1b98 Remove obsolete behavior per heycam/webidl #356 2019-12-22 17:58:26 -05:00
Kunal Mohan
9b59b9602c
Add track_list member to AudioTrack, VideoTrack, TextTrack structs
Add member to the track structs pointing at their associated tracklist
and update it when the track is added or removed from a tracklist.
2019-12-23 01:06:58 +05:30
bors-servo
43a5f65940
Auto merge of #25359 - pshaughn:auto_ct_header, r=jdm
Autocomputed content-type header now reaches net request

The spec expects that for a DOM Request r, r.headers and r.request can actually refer to the same header list in RAM, with changes to one affecting the other. This is mostly unobservable, but it happens to come up at the point in the Request constructor that auto-infers a content type from the body, so now after inferring the content type it injects it into both header lists instead of one.
Remaining test failures are due to the way Hyper crates normalize semicolons in MIME types, and an actually separate problem about content-lengths that I haven't sniffed out yet.

---
<!-- 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 some WPT results from #24904

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-22 11:12:56 -05:00
Patrick Shaughnessy
b9c4b64978 Autocomputed content-type header now reaches net request 2019-12-21 19:37:38 -05:00
lberrymage
cd9195056c Add lint check for &DomRoot<T>
`&DomRoot<T> is strictly less expressive than `&T`, so using it is
pointless.
2019-12-21 12:44:35 -09:00
bors-servo
bac9903fbe
Auto merge of #24123 - gterzian:redo_blob, r=jdm
Restructure Blob, structured serialization

<!-- Please describe your changes on the following line: -->
FIX #24052 and also address the "cloning" half of FIX #23917

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (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. -->

<!-- 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/24123)
<!-- Reviewable:end -->
2019-12-19 16:16:56 -05:00
Warren Fisher
5c3bda0251 Remove Optional pipeline_id 2019-12-19 02:25:43 -04:00
bors-servo
f183d66217
Auto merge of #25276 - kunalmohan:25192-initMessageEvent, r=jdm
Implement MessageEvent.InitMessageEvent

<!-- Please describe your changes on the following line: -->
InitMessageEvent had to be implemented as required by wpt. For this few keys of struct `MessageEvent` are now wrapped inside DomRefCell wrapper.

---
<!-- 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 #25192  (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. -->
2019-12-18 17:01:36 -05:00
Kunal Mohan
cb1cb40a51
Implement MessageEvent.InitMessageEvent
InitMessageEvent had to be implemented as required by wpt.
For this few keys of struct `MessageEvent` are now wrapped inside
DomRefCell wrapper.
2019-12-18 23:01:53 +05:30
bors-servo
b49e74b1f2
Auto merge of #25330 - emilio:selectors, r=jdm
Bump selectors.

I realized I missed doing this even though @atouchet asked me to.
2019-12-18 12:12:49 -05:00
bors-servo
dcdf910a25
Auto merge of #24470 - pylbrecht:raqote, r=jdm
Enable raqote as 2D canvas rendering backend by default

<!-- Please describe your changes on the following line: -->
This will enable raqote by default and make all WPT tests pass.

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

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-18 09:36:25 -05:00
Emilio Cobos Álvarez
151fe4a0d0
Bump selectors. 2019-12-18 14:36:47 +01:00
bors-servo
c65e2685db
Auto merge of #25308 - atouchet:win10, r=jdm
Use Windows 10 instead of 7 in user agent string

<!-- Please describe your changes on the following line: -->
I tried testing https://my.panomoments.com/ in the latest nightly version of Servo but it wouldn't load because it requires Windows 8 or newer and Servo's user agent string says it's using Windows 7. This change should allow sites requiring a modern version of Windows to run. This could potentially cause issues for users running older versions of Windows however. A better long term solution would be to do #18194.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-17 20:44:45 -05:00
bors-servo
79408fa36b
Auto merge of #25294 - Darkspirit:h2, r=jdm
Let hyper automatically set the host header if needed

Google's gws web server did not expect to receive an unneeded Host header via HTTP/2, therefore it responded with 400 Bad Request over a working HTTP/2 connection.

https://tools.ietf.org/html/rfc7540#page-55
> Clients that generate HTTP/2 requests directly SHOULD use the ":authority" pseudo-header field instead of the Host header field.

It's hyper's job to take care of this for the HTTP/1 case, therefore we can remove old code.
When calling [Client::builder()](1974c875a1/components/net/connector.rs (L116-L119)) we do not disable hyper's default [set_host](4b6099c7aa/src/client/mod.rs (L1019-L1024)) config option, therefore hyper [automatically adds a Host header for non-HTTP/2 connections](4b6099c7aa/src/client/mod.rs (L289-L292))  based on the [URI](3f663d7ab2/components/net/http_loader.rs (L418-L421)).

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 #25286.
2019-12-17 18:16:13 -05:00
pylbrecht
e0547855df Remove duplication for creating gradient stops 2019-12-17 19:52:03 +01:00
pylbrecht
7c8c230d93 Add transform to Pattern::Surface to properly draw images 2019-12-17 19:52:03 +01:00
pylbrecht
9a2370a3a8 Consider empty gradients in is_zero_size_gradient() 2019-12-17 19:52:02 +01:00
pylbrecht
ada7986fef Handle BlendMode::Clear in GenericDrawTarget::fill() 2019-12-17 19:52:02 +01:00
pylbrecht
a50aef6f00 Add a layer to store Pattern related information
Some information of `canvas_data::Pattern` was lost by
converting it to `raqote::Source` due to the fact that Raqote
did not store this information (e.g. linear gradient's start/end
points). We introduce another layer to keep this information for later
use (like in `is_zero_size_gradient()`).
2019-12-17 19:52:02 +01:00
pylbrecht
1aecf40922 Implement "repeat-x" and "repeat-y" for images 2019-12-17 19:52:02 +01:00
pylbrecht
25d036f05c Set images' ExtendMode based on available information 2019-12-17 19:52:02 +01:00
pylbrecht
1cdcbb25fa Handle overlapping gradient stops for linear gradients
From `addColorStop(offset, color)`s spec:
If multiple stops are added at the same offset on a gradient, they must
be placed in the order added, with the first one closest to the start of
the gradient, and each subsequent one infinitesimally further along
towards the end point (in effect causing all but the first and last stop
added at each point to be ignored)

https://www.w3.org/html/test/results/2dcontext/annotated-spec/canvas.html#testrefs.2d.gradient.interpolate.overlapu
2019-12-17 19:52:01 +01:00
pylbrecht
04e9523e5f Use push_layer_with_blend() only when necessary
push_layer_with_blend() comes at a performance cost, so we only use it
on blend modes that require it.
2019-12-17 19:52:01 +01:00
pylbrecht
a02daef7b2 Make arc() wrap angles mod 2pi 2019-12-17 19:52:01 +01:00
pylbrecht
02e3325416 Make arc() use anticlockwise argument 2019-12-17 19:52:01 +01:00
pylbrecht
da9b4c33cd Make fill() handle all composition operations 2019-12-17 19:52:00 +01:00
pylbrecht
47ee2729ec Make fill() draw uncovered pixels as (0,0,0,0) for certain composition ops 2019-12-17 19:52:00 +01:00
pylbrecht
4d4e68ca6b Respect direction when drawing arcs 2019-12-17 19:52:00 +01:00
pylbrecht
a473f50245 Respect FilterMode when drawing images 2019-12-17 19:51:59 +01:00
pylbrecht
16f06f24c5 Add check for handling equal radial gradients 2019-12-17 19:51:59 +01:00
pylbrecht
d87e5d831b Add check to handle zerosize linear gradients 2019-12-17 19:51:59 +01:00
pylbrecht
55256df0ba Use tolerance > 0 in Path::contains_point() 2019-12-17 19:51:58 +01:00
pylbrecht
5c6a12a116 Create raqote::SolidSource with premultiplied color
SolidSource expects a premultiplied color.
2019-12-17 19:51:57 +01:00
pylbrecht
77a8bc4a1d Fix conversion of image data slice 2019-12-17 19:51:57 +01:00
pylbrecht
b8b33788b6 Handle empty paths in PathBuilder::get_current_point()
The case of calling get_current_point() on empty paths has not been
handled and caused panics.
2019-12-17 19:51:57 +01:00
pylbrecht
d6f46b5513 Apply transformation in Path::contains_point() 2019-12-17 19:51:56 +01:00
pylbrecht
c8025c9147 Don't reuse PathBuilder after calling finish() 2019-12-17 19:51:56 +01:00
Istvan Miklos
ebfcd0f27f Initial implementation of GPUBuffer for WebGPU
Added WebIDL bindings for GPUBuffer, GPUBufferDescriptor, GPUBufferUsage
Implemented the `createBuffer` and `createBufferMapped` functions of GPUDevice
2019-12-17 11:00:08 +01:00
bors-servo
6ccad53937
Auto merge of #25254 - pshaughn:stop_creating_outofspec_events, r=jdm
Removed createEvent cases, removed now-unused new_uninitializeds

<!-- Please describe your changes on the following line: -->
document.createEvent was creating some event types WHATWG now says shouldn't be created that way. This was the only caller of a few new_uninitialized methods, so those are removed too.

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

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-17 02:13:13 -05:00
bors-servo
a8b8f46476
Auto merge of #25299 - emilio:gecko-sync, r=emilio,nox
style: Sync changes from mozilla-central.

See individual commits for details.
2019-12-16 23:51:18 -05:00
bors-servo
b274d59875
Auto merge of #25236 - pshaughn:safelistct, r=jdm
De-deplicate is_cors_safelisted_request_header helper functions

<!-- Please describe your changes on the following line: -->
Separate is_cors_safelisted_request_header implementations in script::dom::request and net::fetch::methods have been merged to a single implementation in net_traits::request, with additional logic for spec requirements that weren't previously there. This doesn't pass all the failing tests, but it doesn't fail any passing ones either and it reduces confusion about what's supposed to happen where.

---
<!-- 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 #25235 and some but not all subcases in #25175

<!-- Either: -->
- [X] There are tests for these changes, in that the WPT CORS tests that did already pass still do

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-16 20:51:09 -05:00
bors-servo
d205194618
Auto merge of #25070 - cagandhi:named-form-getter, r=jdm
Named form getter

This PR contains changes related to adding named getter in Servo for getting the list of all meaningful property names for a HTMLFormElement object, and getting the value of a specific property name. The following changes have been made:

* uncomment the [named getter](f63b404e0c/components/script/dom/webidls/HTMLFormElement.webidl (L30)) from HTMLFormElement.webidl
* add the missing `NamedGetter` and `SupportedPropertyNames` methods to [HTMLFormElement](f63b404e0c/components/script/dom/htmlformelement.rs (L113))
* implement `SupportedPropertyNames` according to [the specification](https://html.spec.whatwg.org/multipage/forms.html#the-form-element:supported-property-names):
  * create an enum to represent the `id`, `name`, and `past` states for the sourced names
  * create a vector of `(SourcedName, DomRoot<HTMLElement>)` by iterating over `self.controls` and checking the element type and calling methods like `HTMLElement::is_listed_element`
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #16479 (GitHub issue number if applicable)
2019-12-16 18:10:12 -05:00
bors-servo
fb5ab1fc74
Auto merge of #25306 - paulrouget:lessAnimMsg, r=jdm
Do not wake up embedder on each animation tick

The constellation should only update the compositor if the animation state actually changed.
2019-12-16 14:59:50 -05:00
Alex Touchet
f634100c69
Use Windows 10 instead of 7 in user agent string 2019-12-16 10:34:18 -08:00
bors-servo
c9baa5b9fc
Auto merge of #25211 - kunalmohan:6631-Worker-Id, r=jdm
`worker_id` type changed to uuid

<!-- Please describe your changes on the following line: -->
Fixes #6631
`worker_id` is now generate as uuid and saved as string.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
2019-12-16 11:31:44 -05:00
Paul Rouget
016d9a62ab Do not wake up embedder on each animation tick 2019-12-16 16:50:36 +01:00
Patrick Shaughnessy
67827debd8 Now just one is_cors_safelisted_request_header, with closer spec alignment 2019-12-16 09:07:02 -05:00