Commit graph

1541 commits

Author SHA1 Message Date
bors-servo
11b960cb16 Auto merge of #17436 - bradwerth:updateStylesheet, r=xidorn,emilio
Add an update_stylesheet method to StylesheetSet.

MozReview-Commit-ID: KlRkApYL8wk

<!-- Please describe your changes on the following line: -->
Provides a method for just-cloned sheets to be swapped in to stylesheet_sets without changing the order or triggering restyle.

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

<!-- 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/17436)
<!-- Reviewable:end -->
2017-06-21 04:36:52 -07:00
Hiroyuki Ikezoe
6c69771ea5 Use FnvHashmap instead of HashMap for AnimationValueMap. 2017-06-21 08:36:48 +09:00
Emilio Cobos Álvarez
8a9949f929
style: Update bindings. 2017-06-21 01:27:16 +02:00
Brad Werth
c617649e67 Add an update_stylesheet method to StylesheetSet.
MozReview-Commit-ID: KlRkApYL8wk
2017-06-20 12:24:39 -07:00
Bobby Holley
1d242ad760 Store selectors in matching order, rather than parse order.
We add a slow in-place reverse during parsing to achieve this for now, which
gets fixed up later on.

MozReview-Commit-ID: 42QkOzSgV3T
2017-06-20 11:59:10 -07:00
Bobby Holley
db8f59407f Hoist sink into selectors.
It probably makes more sense (eventually) to put it in SmallVec.

MozReview-Commit-ID: AIBKCLiMNN2
2017-06-20 11:59:10 -07:00
Emilio Cobos Álvarez
ce9cd802de
style: Clean up after #17427. 2017-06-20 15:42:23 +02:00
Fernando Jiménez Moreno
632c5571a9 stylo: make font-weight descriptor in @font-face preserve keyword values 2017-06-20 15:28:39 +02:00
bors-servo
b2549bb6c4 Auto merge of #17427 - CJKu:cku-master, r=emilio
Stylo: Correct style match for element instances under a use-element …

<!-- Please describe your changes on the following line: -->
This patch is the last one of bug 265894.
It fixes two things:
1. Do not cross shadow tree boundary while matching rules.
2. Change display value to 'inline' while cloning a root symbol element instance.

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

<!-- 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/17427)
<!-- Reviewable:end -->
2017-06-20 05:17:45 -07:00
Emilio Cobos Álvarez
59a0d6616e
style: Update bindings. 2017-06-20 13:09:38 +02:00
Emilio Cobos Álvarez
ae5a6c9c69
style: Get restyle hints right in presence of XBL.
Bug: 1371130
Reviewed-By: heycam
MozReview-Commit-ID: 56lMyXEYT1I
2017-06-20 13:09:36 +02:00
Emilio Cobos Álvarez
b894c361e0
style: expose methods to get ::before, ::after, and the other NAC.
Reviewed-By: heycam
Bug: 1371130

MozReview-Commit-ID: JVeQevmjI3j
2017-06-20 12:16:31 +02:00
cku
727725ac3d Stylo: Correct style match for element instances under a use-element tree. 2017-06-20 18:07:36 +08:00
Boris Zbarsky
0527190c8f Add pseudo-classes to match on the state of the "dir" attribute.
Fixes the servo parts of Gecko bug 1373798 <https://bugzilla.mozilla.org/show_bug.cgi?id=1373798>
2017-06-19 22:09:03 -04:00
Wes Kocher
10917ce73f Revert "Add pseudo-classes to match on the state of the "dir" attribute." for preventing me from backing out a gecko-side patch
This reverts commit e4660c2b5b.
2017-06-19 15:44:00 -07:00
Boris Zbarsky
e4660c2b5b Add pseudo-classes to match on the state of the "dir" attribute.
Fixes the servo parts of Gecko bug 1373798 <https://bugzilla.mozilla.org/show_bug.cgi?id=1373798>
2017-06-19 14:44:12 -04:00
Mantaroh Yoshinaga
0ca9a01be4 Add function which convert from URLValueData to SpecifiedUrl.
We will need to convert from URLValueData to SpecifiedUrl when cloning the
stylo's data from gecko's data. Because the filter structure on gecko has url as
URLValue type. We will use this convert function when interpolating as
discrete also(Bug 1368610).
2017-06-19 09:47:26 +09:00
Simon Sapin
a5bb55790f Untry style 2017-06-18 13:18:13 +02:00
Boris Zbarsky
eddca4d6f6 :-moz-locale-dir shouldn't be a revalidation selector.
Fixes Gecko bug 1374019 <https://bugzilla.mozilla.org/show_bug.cgi?id=1374019>
2017-06-17 23:01:02 -04:00
Anthony Ramine
3217d1404e Derive ToCss for font-face sources 2017-06-17 13:46:30 +02:00
Simon Sapin
b83afdedc8 Upgrade cssparser to 0.15 2017-06-16 15:05:46 +02:00
bors-servo
0142d193a3 Auto merge of #17338 - servo:derive-all-the-things, r=emilio,waffles
Derive ToCss for computed LengthOrPercentage types

<!-- 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/17338)
<!-- Reviewable:end -->
2017-06-15 13:37:04 -07:00
Anthony Ramine
608e7f71a2 Make computed types hold Percentage instead of bare CSSFloat 2017-06-15 16:59:03 +02:00
Bobby Holley
ce19c949db Enable breadth-first traversal.
MozReview-Commit-ID: KJA2drcLTb5
2017-06-14 22:50:27 -07:00
Brian Birtles
d249c61c0d Add IsTransitionable FFI 2017-06-15 10:20:46 +09:00
Brian Birtles
e74f7792f5 Make TransitionProperty treat all properties that are not transitionable as unsupported
Currently properties that are discretely animated cannot be
transitioned. Now that TransitionProperty should only be used for
transitions, we can redefine it to treat non-transitionable properties
as unsupported. This should allow us to simplify the code and make it
more self-documenting (e.g. making TransitionProperty actually relate to
transitions).
2017-06-15 10:19:48 +09:00
Brian Birtles
5ce7b1cc55 Move is_discrete from TransitionProperty to AnimatableLonghand 2017-06-15 10:19:22 +09:00
Brian Birtles
a2307adf46 Convert AnimationValue::from_computed_values to take an AnimatableLonghand 2017-06-15 10:18:55 +09:00
Brian Birtles
8f3dad598f Use AnimatableLonghand for AnimationValueMap and related code
In the next few patches we move all non-transition related code over to
using AnimatableLonghand instead of TransitionProperty. This will allow
us to re-purpose TransitionProperty to represent only properties that
can be transitioned (i.e. excluding discrete properties) as well as
simplifying the code by removing the need to deal with shorthands and
the "all" value in places that do not need to handle those values.
2017-06-15 10:18:18 +09:00
Brian Birtles
f8e2f85cdc Drop Servo_AnimationValueMap_Push 2017-06-15 10:10:51 +09:00
bors-servo
5dce166266 Auto merge of #17318 - aethanyc:fix-pseudo-xbl-stylesheet, r=emilio
stylo: Fix pseudo element matching for XBL stylesheets (Bug 1371577)

This change is reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1371577#c9

<!-- 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/17318)
<!-- Reviewable:end -->
2017-06-14 05:11:31 -07:00
Xidorn Quan
08c12062c7 Resolve counter style during parallel traversal when possible. 2017-06-14 20:05:38 +10:00
Ting-Yu Lin
e80cb09be3 stylo: Fix pseudo element matching for XBL stylesheets (Bug 1371577)
MozReview-Commit-ID: GzWbztqW0V1
2017-06-14 17:58:15 +08:00
Nazım Can Altınova
57d02dc0e9
Handle PseudoElement case in :active and :hover quirk 2017-06-13 17:22:39 +03:00
bors-servo
07f6e11485 Auto merge of #17292 - emilio:better-style-invalidation, r=heycam
style: Implement a more fine-grained invalidation method.

<!-- 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/17292)
<!-- Reviewable:end -->
2017-06-13 04:56:09 -07:00
Emilio Cobos Álvarez
30252ee829
style: Update bindings.
MozReview-Commit-ID: K7X7EyYR2X
2017-06-13 13:27:11 +02:00
Emilio Cobos Álvarez
4434509088
style: Add an AllLinksVisitedAndUnvisited for invalidation.
Otherwise, tests like the following fail, given we always match as unvisited,
and we'd never mark the link as needing invalidation.

<!doctype html>
<style>
a {
  color: red !important;
}

.foo :visited {
  color: green !important;
}
</style>
<div>
  <a href="https://google.es">visit me</a>
  <button onclick="this.parentNode.className = 'foo'">Then click me</button>
</div>

Bug: 1368240
MozReview-Commit-ID: LDv6S28c4ju
2017-06-13 13:27:06 +02:00
Emilio Cobos Álvarez
cb06375fe2
style: Implement a more fine-grained invalidation method.
This commit also removes the old restyle_hints module and splits it into
multiple modules under components/style/invalidation/element/.

The basic approach is to walk down the tree using compound selectors as needed,
in order to do as little selector-matching as possible.

Bug: 1368240
MozReview-Commit-ID: 2YO8fKFygZI
2017-06-13 13:26:41 +02:00
Emilio Cobos Álvarez
fd10729941
style: Also print the class name when logging elements.
Bug: 1368240
MozReview-Commit-ID: 1MSn4rty5RL
2017-06-13 10:59:17 +02:00
Emilio Cobos Álvarez
151b636562
style: Add a way to match a single compound selector.
Also improve the ergonomics of matches_complex_selector.

Bug: 1368240
MozReview-Commit-ID: 9DWDvyZmetM
2017-06-13 10:58:47 +02:00
Emilio Cobos Álvarez
262f6adc30
Record whether an snapshot is recording a class attribute change or id change.
I'll use this information in order to get fewer dependencies out of the
dependency set.

Bug: 1368240
MozReview-Commit-ID: 5HlmKmSNO8p
2017-06-13 10:57:43 +02:00
Anthony Ramine
43a5257a0c Introduce #[css(function)] for #[derive(ToCss)]
Any variant with this attribute gets serialised as a CSS function,
using the variant name as the function name.
2017-06-13 10:19:23 +02:00
bors-servo
8449eb4a62 Auto merge of #17285 - heycam:newly-bound, r=bholley
geckolib: Don't panic when attempting to restyle an element with newly applied XBL bindings.

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

<!-- 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/17285)
<!-- Reviewable:end -->
2017-06-12 18:46:41 -07:00
Cameron McCormack
f989a2c21c style: Update Gecko bindings. 2017-06-13 08:30:45 +08:00
Simon Sapin
138c03b24d Stylo: avoid atom refcount traffic in ID selector matching 2017-06-13 00:51:41 +02:00
Simon Sapin
c5c1c1b350 Classes/IDs case-sensitivity: get quirks mode from matching context. 2017-06-13 00:27:41 +02:00
Simon Sapin
5bccf98aa4 ID and class selectors are ASCII case-insensitive in quirks mode.
https://bugzilla.mozilla.org/show_bug.cgi?id=1363778
2017-06-12 23:33:53 +02:00
Bobby Holley
a98fff1af8 Hoist ApplicableDeclaration{Block,List} into a separate file.
MozReview-Commit-ID: EXnAzfyoZ1e
2017-06-12 12:13:21 -07:00
Fernando Jiménez Moreno
2cc940384d stylo: Implement GetSpecificity for ServoStyleRule 2017-06-12 14:40:16 +02:00
Nazım Can Altınova
309531e5b3
stylo: Fix propagation of quirks mode information to servo side
It was getting inial value from gecko side before and that was always
eCompatibility_NavQuirks. Created an FFI to fetch quirks mode.
2017-06-10 22:18:49 +03:00