Commit graph

20444 commits

Author SHA1 Message Date
Paul Rouget
d27cfb3ee9 Update mozjs and enable 'init_once' feature for Android 2018-11-19 09:11:54 +01:00
bors-servo
eb3af18581
Auto merge of #22142 - Eijebong:crossbeamup, r=jdm
Update crossbeam-channel to 0.3

https://github.com/servo/ipc-channel/pull/210

<!-- 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/22142)
<!-- Reviewable:end -->
2018-11-18 14:39:57 -05:00
Bastien Orivel
9a7eeb349a Update crossbeam-channel to 0.3 2018-11-18 19:33:19 +01:00
bors-servo
ac17f08d19
Auto merge of #22217 - yawboakye:fix-duplicate-code, r=jdm
Remove duplicate code

`req.pipeline_id` is already set with `init.pipeline_id` during initialization.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22217)
<!-- Reviewable:end -->
2018-11-18 13:31:47 -05:00
Bastien Orivel
db34ea668a Update image related dependencies 2018-11-18 16:42:42 +01:00
Yaw Boakye
5252ad2690
Remove duplicate code
`req.pipeline_id` is already set with `init.pipeline_id` during
initialization.
2018-11-18 12:31:14 +01:00
bors-servo
34bf312e0c
Auto merge of #22214 - jabedude:validate-argument, r=jdm
Add GetShaderPrecisionFormat argument validation

This patch adds a check on the shader_type argument. If it is not one either
FRAGMENT_SHADER or VERTEX_SHADER, we return INVALID_ENUM.

<!-- 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  #22080
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because @jdm wants to wait until the PR is open to 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. -->

<!-- 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/22214)
<!-- Reviewable:end -->
2018-11-17 16:47:14 -05:00
Josh Abraham
4b5b3c3adb Add GetShaderPrecisionFormat argument validation
This patch adds a check on the shader_type argument. If it is not one either
FRAGMENT_SHADER or VERTEX_SHADER, we return INVALID_ENUM.
2018-11-17 08:18:12 -05:00
bors-servo
b20fab699e
Auto merge of #22213 - emilio:gecko-sync, r=emilio
style: Sync changes from mozilla-central.

See each individual commit for details.

https://bugzilla.mozilla.org/show_bug.cgi?id=1508026

<!-- 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/22213)
<!-- Reviewable:end -->
2018-11-17 07:31:17 -05:00
Emilio Cobos Álvarez
06fe0a1fc0
style: Fix formatting. 2018-11-17 09:56:05 +01:00
Alex Gaynor
cd75cd6a86
style: fixed an unused import warning.
Differential Revision: https://phabricator.services.mozilla.com/D12028
2018-11-17 09:56:05 +01:00
Emilio Cobos Álvarez
ebb57eff22
style: Add a mechanism to serialize shorthands for getComputedStyle().
This implements the mechanism reusing the animation machinery for now, so it
asserts in a few cases that this wouldn't handle correctly.

For shorthands that have colors and other bits we'd need a more sophisticated
mechanism with a bit more code (that resolves colors and such), but it'd look
something like this regardless, and we should have this in any case.

Differential Revision: https://phabricator.services.mozilla.com/D11944
2018-11-17 09:56:05 +01:00
Emilio Cobos Álvarez
60331f01d0
style: Make the serialization of the mask shorthand more compact.
This helps to preserve the old longhand form when possible (mask used to be a
longhand), which will be relevant when we serialize this for the computed
value.

Differential Revision: https://phabricator.services.mozilla.com/D11943
2018-11-17 09:56:04 +01:00
Emilio Cobos Álvarez
0e7adcf18a
style: Simplify background-repeat.
This way we always serialize in the shortest form, and take less space.

This is useful because when serializing uncomputed values we'd like to compare
to the initial value to avoid serializing parts of a shorthand, but with the
existing implementation we would generate always a second keyword, which means
that we'll never match it.

This also matches Chrome and WebKit, incidentally, so I'm pretty confident the
behavior change when serializing specified style is web-compatible.

Differential Revision: https://phabricator.services.mozilla.com/D11941
2018-11-17 09:56:04 +01:00
Emilio Cobos Álvarez
a5f0eb9205
style: Also move page-break-inside outside of mako.
Differential Revision: https://phabricator.services.mozilla.com/D11876
2018-11-17 09:56:04 +01:00
Emilio Cobos Álvarez
d9de68ad6a
style: Move the page-break-{before,after} properties to not use mako.
And respect the computed value of `left` / `right` / etc.

Differential Revision: https://phabricator.services.mozilla.com/D11872
2018-11-17 09:56:03 +01:00
Timothy Guan-tin Chien
9f28242def
Remove dom.webcomponents.customelements.enabled pref.
This patch removes the following functions:

* nsContentUtils::IsCustomElementsEnabled()
* CustomElementRegistry::IsCustomElementEnabled(JSContext* aCx, JSObject* aObject)
* CustomElementRegistry::IsCustomElementEnabled(nsIDocument* aDoc)

and all references of the pref.

Depends on D11183

Differential Revision: https://phabricator.services.mozilla.com/D11249
2018-11-17 09:56:03 +01:00
Timothy Guan-tin Chien
3977854ee2
Remove dom.webcomponents.shadowdom.enabled.
This patch removes the dom.webcomponents.shadowdom.enabled pref and all its
references, including the following functions:

* nsContentUtils::IsShadowDOMEnabled()
* nsIDocument::IsShadowDOMEnabled()
* nsDocument::IsShadowDOMEnabled(JSContext* aCx, JSObject* aGlobal)
* nsDocument::IsShadowDOMEnabled(const nsINode* aNode)
* nsTextNode::IsShadowDOMEnabled(JSContext* aCx, JSObject* aObject)

This function is renamed and updated to nsDocument::IsCallerChromeOrAddon():

* nsDocument::IsShadowDOMEnabledAndCallerIsChromeOrAddon(JSContext* aCx, JSObject* aObject)

I didn't change the tests that load Shadow DOM tests in an iframe, in the interest of keeping hg annotation history.

Differential Revision: https://phabricator.services.mozilla.com/D11183
2018-11-17 09:56:02 +01:00
Cameron McCormack
dad9ad6b31
style: Store MediaFeatureDescription references as an index into the MEDIA_FEATURES array.
The current use of a static reference is incompatible with sharing style sheet data
across processes.

Differential Revision: https://phabricator.services.mozilla.com/D11845
2018-11-17 09:56:02 +01:00
Cameron McCormack
1576dd4c5b
style: Store variable references with a boxed slice rather than a PrecomputedHashSet.
Once we've parsed the variable references, there is no need to keep an entire HashSet
object around, as all we do is iterate over the values.

Differential Revision: https://phabricator.services.mozilla.com/D11735
2018-11-17 09:56:01 +01:00
Boris Chiou
41d2f7f3a2
style: Support keywords [x|y|z] on rotate.
Update the parser and the serialization to support the keywords, [x|y|z].

Differential Revision: https://phabricator.services.mozilla.com/D11531
2018-11-17 09:56:01 +01:00
Emilio Cobos Álvarez
f486ef7e47
style: Add an atom bit to know whether we're ascii lowercase.
And thus massively speed up ascii-case-insensitive atom comparisons when both
atoms are lowercase (which is the common case by far).

This removes almost all the slow selector-matching in this page, and it seems
an easier fix than storing the lowercased version of all class-names in quirks
mode in elements and selectors...

Differential Revision: https://phabricator.services.mozilla.com/D10945
2018-11-17 09:56:01 +01:00
Boris Chiou
d8bd29292e
style: Parse any order of number and angle for Rotate.
Rotate accepts rotate axis and angle in any order
(i.e. <number>{3} <angle> or <angle> <number>{3}), so we rewrite the
parser.

Differential Revision: https://phabricator.services.mozilla.com/D11417
2018-11-17 09:56:00 +01:00
Boris Chiou
0b9ecbccfe
style: Rewrite the interpolation of Rotate to return correct type.
The original implementation always returns Rotate::Rotate3D, but it is
not correct, so we have to rewrite it:
1. If both from value and to value are none, we don't have to convert it
   into identity value, so just return None.
2. If one of the value is none, we replace it with an identity value based on
   the other one's rotate axis.
3. If we only have 2D rotation, we just animate the <angle>.
4. Otherwise, we do interpolation by 3D rotation.

Differential Revision: https://phabricator.services.mozilla.com/D11247
2018-11-17 09:56:00 +01:00
Emilio Cobos Álvarez
c75a3e4db1
style: Remove serialize_basicshape_position.
Per https://github.com/w3c/csswg-drafts/issues/2274. There's a whole lot of new failures, but those need to be updated along with the spec changes in that issue.

We did resolve that position serialized the same everywhere though.

Differential Revision: https://phabricator.services.mozilla.com/D1933
2018-11-17 09:55:59 +01:00
Emilio Cobos Álvarez
6b5117d82d
style: Remove outdated comment. 2018-11-17 09:55:59 +01:00
Emilio Cobos Álvarez
4c3646eff0
style: Allow user-select: -moz-text on user-agent stylesheets only.
It's only used in contenteditable.css, and same usage in comm-central. That
sheet is loaded as a ua sheet so let's restrict it to that. No relevant
external usage either. This value was introduced in bug 1181130.

Differential Revision: https://phabricator.services.mozilla.com/D11584
2018-11-17 09:55:59 +01:00
Emilio Cobos Álvarez
4bc9bc11e1
style: Remove user-select: -moz-all.
It's an attempt of an alias to `all`, except it doesn't get handled in all
places.

Seems unused both in comm-central and mozilla-central, and all external usage I
could find is followed by -webkit-user-select: all.

Differential Revision: https://phabricator.services.mozilla.com/D11582
2018-11-17 09:55:55 +01:00
Emilio Cobos Álvarez
0c8b1a9004
style: Remove unimplemented values of the user-select property.
Can't believe we literally had no code to handle them.

Differential Revision: https://phabricator.services.mozilla.com/D11581
2018-11-17 09:55:51 +01:00
Emilio Cobos Álvarez
1aa6725f9a
style: Move user-select outside of mako.
This is the first step to unprefix user-select.

This has no behavior change, it's just a nicer way to do the same thing which
allows us to unship individual values more easily using parse(condition).

Differential Revision: https://phabricator.services.mozilla.com/D11580
2018-11-17 09:55:47 +01:00
Emilio Cobos Álvarez
fcada8a71e
style: Remove outdated comment. 2018-11-17 09:52:52 +01:00
bors-servo
94991db145
Auto merge of #22202 - servo:webgl, r=jdm
Clean up some code on the WebGL texture upload paths

This doesn't actually change anything… yet.

<!-- 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/22202)
<!-- Reviewable:end -->
2018-11-17 02:35:22 -05:00
bors-servo
e50e2621fe
Auto merge of #22191 - mandreyel:update-sw-global-scope, r=paulrouget
Update webidl of ServiceWorkerGlobalScope

Part of #19302.

---
<!-- 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 are part of #19302  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they just update the webidl for `ServiceWorkerGlobalScope`; related tests should be updated when we start to implement its functions.

<!-- 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/22191)
<!-- Reviewable:end -->
2018-11-16 19:55:30 -05:00
bors-servo
fa77675488
Auto merge of #22171 - CYBAI:sw-up-to-date, r=jdm
Update webidl of ServiceWorkerRegistration

I'll start to work on #19302 and I'd like to update these sw related webidl one by one.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes is part of #19302
- [x] These changes do not require tests because it just updates the webidl for `ServiceWorkerRegistration`; related tests should be updated when we start to implement its functions.

<!-- 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/22171)
<!-- Reviewable:end -->
2018-11-16 15:11:25 -05:00
bors-servo
369983211d
Auto merge of #22170 - CYBAI:fix-promiserejectevent, r=jdm
Fix PromiseRejectionEvent constructor when promise argument is None

Due to lack of `required` of the `promise` argument in webidl, we need to handle this so that it can be correct behavior. And then the constructor test will be passed!

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

<!-- 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/22170)
<!-- Reviewable:end -->
2018-11-16 12:27:08 -05:00
bors-servo
831f966b0c
Auto merge of #21978 - jimberlage:input-value-fix, r=jdm
Fixes panic on DOMString::strip_leading_and_trailing_ascii_whitespace

<!-- Please describe your changes on the following line: -->
This changes `DOMString::strip_leading_and_trailing_ascii_whitespace` to handle multi-byte unicode characters.

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

<!-- 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/21978)
<!-- Reviewable:end -->
2018-11-16 11:10:32 -05:00
bors-servo
a2937d9488
Auto merge of #21804 - AgustinCB:unify-task-source-canceller-api, r=gterzian
Unify the task source and task canceller API

To do so, I created a struct `TaskManagement(TaskSource,
TaskCanceller)` and made `*_task_source` return that instead of just
the task source.

Next, I refactored all places in which `task_canceller` by basically
removing them in favour of a previously called `*_task_source`.

I tried to make `task_canceller` a private method in `Window`, with the
hope of enforcing the use of `*_task_source`. However, it's used in
components/script/dom/globalscope.rs:575 in such a way that will make it
harder to avoid. I decided to leave it that way.

It'd be possible to unify `*_task_source` in such a way that we would
have only one method. However, I decided not to do it because one of the
`TaskSource` implementations is special:
`history_traversal_task_source`. Not wanting to over complicate things,
I decided to leave the structure this way.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21154 (github issue number if applicable).

- [x] These changes do not require tests because it's refactoring code that should already be tested.

<!-- 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/21804)
<!-- Reviewable:end -->
2018-11-16 09:54:40 -05:00
bors-servo
050b2bca70
Auto merge of #22165 - pyfisch:assert-glyph, r=jdm
Enable old glyph assertion

The assertion had a note that it should be enabled
when something like debug_assert is available.

This must have been disabled since before Rust 1.0 as it uses invalid syntax.

<!-- 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/22165)
<!-- Reviewable:end -->
2018-11-16 08:22:43 -05:00
Anthony Ramine
af2b4dbc21 Pass a TexPixels value to tex_image_2d and tex_sub_image_2d 2018-11-16 12:43:19 +01:00
Anthony Ramine
947e5afa0c Remove some boolean flags in tex_image_2d and tex_sub_image_2d 2018-11-16 12:42:57 +01:00
Anthony Ramine
3f8a3b2887 Simplify define_resource_id 2018-11-16 12:39:21 +01:00
Anthony Ramine
1c89ac90b9 Send alignment info directly in TexImage2D and TexSubImage2d messages 2018-11-16 12:39:20 +01:00
Anthony Ramine
1675991b12 Fix the data type sent in tex_sub_image_2d 2018-11-16 12:38:33 +01:00
Anthony Ramine
65d1b11929 Make TexImage2D and TexSubImage2D struct variants 2018-11-16 12:38:07 +01:00
Anthony Ramine
da43e35ab2 Optimise memory allocation in set_webrender_image_key 2018-11-16 12:37:53 +01:00
Anthony Ramine
a5779ad372 Prefix some pixels functions with rgba8_ 2018-11-16 12:37:34 +01:00
Anthony Ramine
adf363a208 Move prepare_pixels helper functions to canvas_traits 2018-11-16 12:37:31 +01:00
Anthony Ramine
86987ed75d Introduce TexPixels 2018-11-16 12:18:22 +01:00
Anthony Ramine
1e2a72abfe Call prepare_pixels in tex_image_2d and tex_sub_image_2d 2018-11-16 12:17:07 +01:00
Agustin Chiappe Berrini
75eb94afca Unify the task source and task canceller API
I moved away from the `Window` struct all the logic to handle task
sources, into a new struct called `TaskManager`. In a happy world, I'd
be able to just have there two functions, of the types:

```rust
fn task_source<T: TaskSource>(&self, name: TaskSourceName) -> Box<T>
fn task_source_with_canceller<T: TaskSource>(&self, name: TaskSourceName)
  -> (Box<T>, TaskSourceCanceller)
```

And not so much duplicated code. However, because TaskSource can't be a
trait object (because it has generic type parameters), that's not
possible. Instead, I decided to reduce duplicated logic through macros.

For reasons[1], I have to pass both the name of the function with
canceller and the name of the function without, as I'm not able to
concatenate them in the macro itself. I could probably use
`concat_idents` to create both types already defined and reduce the
amount of arguments by one, but that macro is nightly only. At the same
time, not being able to declare macros inside `impl` forces me to pass
`self` as an argument.

All this makes this solution more verbose than it would be ideally. It
does reduce duplication, but it doesn't reduce the size of the file.

[1](https://github.com/rust-lang/rust/issues/29599)
2018-11-14 06:36:44 -05:00