Commit graph

5454 commits

Author SHA1 Message Date
Nicholas Nethercote
7628c1236a Rename nsIAtom as nsAtom.
Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than
nsIAtom.
2017-10-09 09:27:11 +11:00
Emilio Cobos Álvarez
d0f080d5dd
style: Introduce CustomPropertiesBuilder.
I'm about to introduce more state here to implement optimizations for custom
property cascading, so this abstraction is useful to encapsulate that state.
2017-10-08 15:01:21 +02:00
Emilio Cobos Álvarez
851b3e32bd
style: allow re-initializing thread_state as long as it's with the same value.
This unbusts running multiple rule-tree benchmarks at the same time.
2017-10-08 12:56:24 +02:00
Emilio Cobos Álvarez
8ea275a376
style: Avoid unused context argument.
In custom_properties::SpecifiedValue::parse.

It's not a big deal now, but it's useful to simplify testing this stuff, since
it avoids forcing us to mock it.
2017-10-08 12:56:24 +02:00
Bobby Holley
f5c5be00a7 Diagnostic map semantics.
MozReview-Commit-ID: C0a5g6xMPY0
2017-10-07 12:54:15 -07:00
Emilio Cobos Álvarez
b0706d5cf0
stylo: Add a mechanism to restrict media-features to UA and chrome sheets.
Reviewed-by: xidorn
Bug: 1396066
MozReview-Commit-ID: 38jRV6mPbE3
2017-10-07 13:13:36 +02:00
Emilio Cobos Álvarez
04b7386070
style: Update bindings. 2017-10-07 13:13:34 +02:00
Xidorn Quan
8fc24bc5fa Backout #18759 2017-10-07 12:27:04 +11:00
bors-servo
04f787dbf9 Auto merge of #18763 - emilio:transition-longhand-id, r=hiro,birtles
style: Check transitions per longhand to know which transitions to keep.

This fixes bug https://bugzilla.mozilla.org/show_bug.cgi?id=1406111

This fixes the fishy TransitionProperty mapping which I complained about in my
previous refactor.

Turns out that those properties could only be longhands, and thus the expansion
we did before that (and which I removed) was correct.

This fixes the bug by moving back to the previous correct behavior but using the
correct types.

The optimization to avoid creating a HashSet if we're transitioning all
properties or had no existing transition is removed since now we're creating a
LonghandIdSet, which is cheap, and that was only a performance optimization.

<!-- 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/18763)
<!-- Reviewable:end -->
2017-10-06 12:56:27 -05:00
bors-servo
a468d05fff Auto merge of #18765 - emilio:unship-moz-se-transitioning, r=upsuper
stylo: Make :-moz-styleeditor-transitioning only valid in UA sheets.

Bug: 1396099
Reviewed-by: xidorn

<!-- 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/18765)
<!-- Reviewable:end -->
2017-10-06 05:28:28 -05:00
bors-servo
6421332fb3 Auto merge of #18764 - bradwerth:onlyDPPX, r=heycam
Change MediaExpressionValue::from_css_value to only accept pixels

MozReview-Commit-ID: Hn3twVa8xLo

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1404097
https://reviewboard.mozilla.org/r/184746/

---
<!-- 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
- [X] These changes do not require tests because existing tests provide coverage.

<!-- 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/18764)
<!-- Reviewable:end -->
2017-10-06 03:39:42 -05:00
Emilio Cobos Álvarez
4d8110c844
style: Simplify it even more. 2017-10-06 10:06:46 +02:00
Emilio Cobos Álvarez
c60b8288bc
style: Check transitions per longhand to know which transitions to keep.
This fixes the fishy TransitionProperty mapping which I complained about in my
previous refactor.

Turns out that those properties could only be longhands, and thus the expansion
we did before that (and which I removed) was correct.

This fixes the bug by moving back to the previous correct behavior but using the
correct types.

The optimization to avoid creating a HashSet if we're transitioning all
properties or had no existing transition is removed since now we're creating a
LonghandIdSet, which is cheap, and that was only a performance optimization.
2017-10-06 10:02:06 +02:00
Boris Zbarsky
b488b321ed Don't assume that inputs to compute_style_with_inputs have any rules.
It could be a text style, which never has any rules attached to it.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1406222
2017-10-05 23:16:14 -04:00
Emilio Cobos Álvarez
3916257db7
style: Update bindings. 2017-10-05 20:51:42 +02:00
Emilio Cobos Álvarez
43636e676d
stylo: Restrict system-metric media features to UA and chrome sheets only. r=xidorn
Reviewed-by: xidorn
Bug: 1396066
MozReview-Commit-ID: 38jRV6mPbE3
2017-10-05 20:51:21 +02:00
Emilio Cobos Álvarez
8ec805874d
stylo: Restrict :-moz-system-metric to chrome and ua sheets. r=xidorn
Bug: 1396066
Reviewed-by: xidorn
MozReview-Commit-ID: AyHWP3QgGlA
2017-10-05 20:51:20 +02:00
Emilio Cobos Álvarez
e513aefa8c
stylo: Make :-moz-styleeditor-transitioning only valid in UA sheets.
Bug: 1396099
Reviewed-by: xidorn
2017-10-05 20:40:46 +02:00
Brad Werth
61b9b68278 Change MediaExpressionValue::from_css_value to only accept one type of unit (pixels).
MozReview-Commit-ID: Hn3twVa8xLo
2017-10-05 11:12:56 -07:00
bors-servo
f2879a568d Auto merge of #18753 - upsuper:binding-structs, r=emilio
Only generate structs file for the current build

This PR changes build_gecko.rs to only generate the `structs.rs` for the current build (rather than both), depending on whether `gecko_debug` feature is set.

The in-tree files are switched to use the previous release one, because that's what we currently use for stylo test and it is in general what we really care about. For this change, `gecko_debug` mode is removed from Servo CI (in `build-geckolib`) with the assumption that people general do that build locally for stylo development, so it is less likely to be broken than release.

<!-- 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/18753)
<!-- Reviewable:end -->
2017-10-05 11:24:22 -05:00
bors-servo
00a2f55e5f Auto merge of #18761 - emilio:custom-props-iter, r=SimonSapin
style: Iterate in the expected order in the custom_properties module.

In #18745, I replaced a few manual iterations over `index` with the iterator,
and it changed the behavior of `layout/style/test/test_variables_order.html`,
since it turns out that the iterator iterates right to left.

I think this is just an accident that happened due to inconsistencies in how we
were iterating over it, and that our behavior was inconsistent (since we
iterated rtl in some cases, but ltr in others seems like it'd be inconsistent
depending on the depth of the tree and different stuff).

This brings back the expected behavior again, and ensures we iterate over a
consistent order every time.

<!-- 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/18761)
<!-- Reviewable:end -->
2017-10-05 09:22:24 -05:00
Emilio Cobos Álvarez
72497330a9
style: Iterate in the expected order in the custom_properties module.
In #18745, I replaced a few manual iterations over `index` with the iterator,
and it changed the behavior of `layout/style/test/test_variables_order.html`,
since it turns out that the iterator iterates right to left.

I think this is just an accident that happened due to inconsistencies in how we
were iterating over it, and that our behavior was inconsistent (since we
iterated rtl in some cases, but ltr in others seems like it'd be inconsistent
depending on the depth of the tree and different stuff).

This brings back the expected behavior again, and ensures we iterate over a
consistent order every time.
2017-10-05 14:08:04 +02:00
bors-servo
35e84c5cdf Auto merge of #18752 - emilio:cc-parent, r=bzbarsky
style: Use the flattened tree parent to find the closest non-nac ancestor of an element.

This only matters for document level NAC like canvas custom content, in which
case otherwise we inherit from the document element (which is wrong).

Bug: 1405635

<!-- 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/18752)
<!-- Reviewable:end -->
2017-10-05 05:49:06 -05:00
bors-servo
9bf299bba9 Auto merge of #18745 - emilio:custom-props-less-unwrap, r=nox
style: Custom properties cleanup.

Use less unwrap and custom types in custom properties.

The idea is for this to shed some light in https://bugzilla.mozilla.org/show_bug.cgi?id=1403845.

<!-- 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/18745)
<!-- Reviewable:end -->
2017-10-05 02:18:52 -05:00
Xidorn Quan
23d9d12430 Only generate structs file for the current build 2017-10-05 15:29:32 +11:00
bors-servo
43686a8738 Auto merge of #18734 - Manishearth:stylo-all, r=upsuper
stylo: `all` shorthand should not apply to internal properties

r=xidorn https://bugzilla.mozilla.org/show_bug.cgi?id=1404057

<!-- 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/18734)
<!-- Reviewable:end -->
2017-10-04 20:57:24 -05:00
Emilio Cobos Álvarez
6f836bed5a
style: Use the flattened tree parent to find the closest non-nac ancestor of an element.
This only matters for document level NAC like canvas custom content, in which
case otherwise we inherit from the document element (which is wrong).

Bug: 1405635
2017-10-05 01:07:05 +02:00
bors-servo
3f07cfec7c Auto merge of #18733 - bradwerth:nativeDPPX, r=heycam
Change resolution queries to compare in unconverted dppx units.

MozReview-Commit-ID: 7wYlixTQTIC

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1376931
https://reviewboard.mozilla.org/r/182424/

---
<!-- 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
- [X] These changes do not require tests because the tests are in Gecko

<!-- 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/18733)
<!-- Reviewable:end -->
2017-10-04 15:31:17 -05:00
bors-servo
1a84dd594b Auto merge of #18719 - hiikezoe:use-normal-declaration-iterator, r=emilio
Use NormalDeclarationIterator for AnimationValueIterator

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

<!-- 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/18719)
<!-- Reviewable:end -->
2017-10-04 11:56:42 -05:00
Emilio Cobos Álvarez
089d5eecb7
style: Reformat the substitute_block function. 2017-10-04 14:55:23 +02:00
Emilio Cobos Álvarez
c4dbbf0656
style: Use map_or instead of map(..) == Some(false). 2017-10-04 14:53:05 +02:00
Emilio Cobos Álvarez
583d89ac08
style: Use the OrderedMap iterator instead of doing our own thing. 2017-10-04 14:51:53 +02:00
Emilio Cobos Álvarez
f072c0bb05
style: Use the hashmap indexed getter in the custom props iterator code.
This will give a nicer error message, plus it's more compact.
2017-10-04 14:51:52 +02:00
Emilio Cobos Álvarez
08fd5ba8c1
style: Use Option<&mut> instead of &mut Option in custom_properties.rs 2017-10-04 14:51:51 +02:00
bors-servo
1f9182507f Auto merge of #18716 - jdm:parseSrcset, r=jdm
Parse srcset attribute values

Squashed version of #18313.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix (partially) #11416
- [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/18716)
<!-- Reviewable:end -->
2017-10-04 07:32:53 -05:00
Cameron McCormack
fde77ee693 style: Regenerate Gecko bindings. 2017-10-04 13:38:07 +08:00
Cameron McCormack
4d9dd4b757 style: Use a SharedFontList object to store font-family values for Gecko. 2017-10-04 13:38:07 +08:00
bors-servo
c0f404999c Auto merge of #18736 - nnethercote:bug-1403506, r=erahm,mystor
Remove nsTFixedString<T>.

This is for https://bugzilla.mozilla.org/show_bug.cgi?id=1403506, which is r=erahm,mystor.

<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1403506.

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are tested in Gecko.

<!-- 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/18736)
<!-- Reviewable:end -->
2017-10-03 23:21:18 -05:00
Nicholas Nethercote
365ae0b637 Remove nsTFixedString<T>.
nsTFixedString<T> is only used as a base class for nsTAutoStringN<T, N>, so
this patch merges the former into the latter, cutting some code and simplifying
the string class hierarchy.

Because the "Fixed" name is now gone, the patch also renames
StringDataFlags::FIXED as INLINE and ClassDataFlags::FIXED as INLINE.

The patch also removes nsFixed[C]String and ns_auto_[c]string! from Rust code
because nsAutoString can't be implemented directly in Rust due to its move
semantics. There were only two uses of ns_auto_string! outside of tests so this
seems like a minor loss.
2017-10-04 13:31:09 +11:00
bors-servo
a4f642185e Auto merge of #18728 - emilio:rayonup, r=jdm
style: Update rayon.

It has a couple soundness fixes.

<!-- 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/18728)
<!-- Reviewable:end -->
2017-10-03 20:34:09 -05:00
Manish Goregaokar
aac31a35d7
stylo: all shorthand should not apply to internal properties 2017-10-03 18:01:57 -07:00
Manish Goregaokar
8bce37e6ba stylo: use FnvHashMap everywhere, remove default HashMap construction methods 2017-10-03 14:10:31 -07:00
Brad Werth
b8e78d20bf Change resolution queries to compare in unconverted dppx units.
MozReview-Commit-ID: 7wYlixTQTIC
2017-10-03 13:56:14 -07:00
bors-servo
0b69887387 Auto merge of #18732 - bholley:revert_mprotect_diagnostics, r=bholley
Revert #18668 - Add mprotect diagnostics for HashMap crash (except for round-up-to-page behavior).

These diagnostics have served their purpose, time to remove them.

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

<!-- 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/18732)
<!-- Reviewable:end -->
2017-10-03 14:45:33 -05:00
Bobby Holley
15b866d8de Revert #18668 - Add mprotect diagnostics for HashMap crash 2017-10-03 12:44:26 -07:00
Emilio Cobos Álvarez
a08ab7bbec
style: Update rayon.
It has a couple soundness fixes.
2017-10-03 17:18:32 +02:00
Josh Matthews
01c35f99cd Remove 5k from AnimationValue::compute_squared_distance. 2017-10-03 13:22:32 +02:00
Josh Matthews
799014755e Remove 10k from AnimationValue::animate. 2017-10-03 13:22:32 +02:00
Josh Matthews
13df088201 Remove 10k from AnimationValue::from_declaration. 2017-10-03 13:22:31 +02:00
Neha
1f1ca3ac8d Parse srcset attribute 2017-10-03 13:18:01 +02:00