Commit graph

9439 commits

Author SHA1 Message Date
bors-servo
f8b2be1ea4 Auto merge of #12943 - servo:merged-declaration-block, r=emilio
Merge normal and important declarations in style rules

Have a single Vec instead of two. Fix #3426

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

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

<!-- 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/12943)
<!-- Reviewable:end -->
2016-08-21 03:43:25 -05:00
Simon Sapin
f9150af936 Keep track of the number of important and normal declarations in a block
… instead of the presence (`bool` flags) of each.

This allows removing `recalc_any` which iterated over the `Vec`.
2016-08-21 10:41:26 +02:00
bors-servo
530c36a99a Auto merge of #12955 - nox:try-borrow, r=emilio
Use try_borrow instead of borrow_state

<!-- 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/12955)
<!-- Reviewable:end -->
2016-08-21 00:47:10 -05:00
Simon Sapin
5e4bdac2bd Import SelectorMap unit tests from the selectors crate. 2016-08-21 03:40:39 +02:00
Simon Sapin
dec28a13ea Use FNV hash in SelectorMap 2016-08-21 03:40:38 +02:00
Simon Sapin
a175c9981e Only cascade at a priority level rules that have declarations of that priority. 2016-08-21 03:40:37 +02:00
Simon Sapin
16bbc2f26e Merge normal and important declarations in style rules.
Have a single Vec instead of two. Fix #3426
2016-08-21 03:40:35 +02:00
Simon Sapin
577d2dc3fa Make SelectorMap and friends concrete 2016-08-21 03:40:31 +02:00
Simon Sapin
35b01cd324 Sort rules by key in selector matching 2016-08-21 03:40:30 +02:00
Simon Sapin
4062899fd8 Import SelectorMap back from the selectors crate.
Nobody else uses it, and I want to make breaking changes to it.
2016-08-21 03:40:30 +02:00
Simon Sapin
bc71e8b65b Add some fmt::Debug implementations 2016-08-21 03:40:28 +02:00
Simon Sapin
477cae67df Unreverse declarations in memory. 2016-08-21 03:40:27 +02:00
Simon Sapin
31864954ed Typo fixes 2016-08-21 03:40:26 +02:00
Simon Sapin
ab846ab196 Make parsing of keyframe declaration blocks spec-compliant.
Exclude animation properties.
2016-08-21 03:40:24 +02:00
Anthony Ramine
51768844ed Update euclid to 0.10.1 2016-08-21 03:03:45 +02:00
Simon Sapin
901aaeaf68 Remove unused Keyframe::parse method 2016-08-21 00:30:22 +02:00
Simon Sapin
24fbb26475 Add an Importance enum replacing booleans to indicate !important. 2016-08-21 00:30:22 +02:00
Simon Sapin
8218b463fb Revert "Simplify CSSStyleDeclaration::GetPropertyValue"
This reverts commit 1637b0ba8a.

* As far as I know, `fn` pointers don’t necessarily inline well
* Upcoming commits are gonna change this mapping to be less trivial,
  so this would at least need a new `fn` declaration, making this
  less of a simplification.
2016-08-21 00:28:48 +02:00
Anthony Ramine
2e310f83ad Use feature try_borrow instead of borrow_state in script 2016-08-20 20:37:54 +02:00
bors-servo
8a75810eba Auto merge of #12861 - nox:impl-trait, r=Ms2ger
Clean up some iterators

<!-- 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/12861)
<!-- Reviewable:end -->
2016-08-20 13:35:04 -05:00
Anthony Ramine
79b1f566b8 Update Rust to 1.13.0-nightly (499484f56 2016-08-18) 2016-08-20 17:29:49 +02:00
bors-servo
6d56b21adf Auto merge of #12947 - nox:selectors, r=SimonSapin
Update selectors to 0.11

This brings :not() with proper list of complex selectors as argument.

<!-- 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/12947)
<!-- Reviewable:end -->
2016-08-20 05:55:00 -05:00
Anthony Ramine
1c4cc6c703 Update selectors to 0.11
This brings :not() with proper list of complex selectors as argument.
2016-08-20 11:24:17 +02:00
bors-servo
bf8b7ba6b0 Auto merge of #12903 - servo:imports, r=nox
Remove unused imports.

<!-- 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/12903)
<!-- Reviewable:end -->
2016-08-19 16:21:31 -05:00
bors-servo
609d47b44f Auto merge of #12878 - Manishearth:clip-path, r=heycam
stylo: Support clip-path

Todo:

 - [x] `set_clip_path` (probably needs a bunch of gecko bindings for running constructors/destructors)
 - [ ] Ensure that I've ordered the coordinates correctly
 - [ ] Check that it works
 - [x] Might want to convert NS_STYLE_FILL_RULE and NS_RADIUS to enum classes

Depends on:

 - https://github.com/servo/rust-bindgen/pull/29
 - https://github.com/Manishearth/gecko-dev/compare/servo:stylo...Manishearth:clip-path

<!-- 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/12878)
<!-- Reviewable:end -->
2016-08-19 14:24:08 -05:00
Manish Goregaokar
3895b7118e
Handle clip-path in stylo 2016-08-19 23:36:37 +05:30
bors-servo
07b217368f Auto merge of #12924 - servo:selectors-ser, r=nox
Update selectors to 0.10, with ToCss serialization.

<!-- Please describe your changes on the following line: -->
r? @emilio

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

<!-- 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/12924)
<!-- Reviewable:end -->
2016-08-19 13:01:29 -05:00
Shing Lyu
a07be4c850 Fixed layout flow tree JSON serialization 2016-08-19 15:29:25 +08:00
Emilio Cobos Álvarez
46afc56c41
stylo: Implement support for the contents property. 2016-08-18 15:59:38 -07:00
Emilio Cobos Álvarez
d85a60e366
stylo: Use the improved version of Gecko_GetStyleContext() 2016-08-18 15:56:03 -07:00
Anthony Ramine
03a0170c91 Update to webrender 0.4.0 2016-08-18 19:33:12 +02:00
bors-servo
fb7cb92076 Auto merge of #12863 - emilio:disable-media, r=larsbergstrom
script: Disable our dependency in ffmpeg until the media madness is over

<!-- Please describe your changes on the following line: -->

r? @larsbergstrom

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

<!-- 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/12863)
<!-- Reviewable:end -->
2016-08-18 11:22:06 -05:00
Ms2ger
4ede9f679a Remove unused imports; handle IO failure in append_serialization. 2016-08-18 18:05:36 +02:00
Simon Sapin
6173e1d339 Atomize namespace prefixes. 2016-08-18 15:43:30 +02:00
Simon Sapin
84fed1a62f Add missing try!() around write!()
Fixes "unused result" warning.
2016-08-18 15:43:09 +02:00
Simon Sapin
d690bd2382 Update selectors to 0.10, with ToCss serialization. 2016-08-18 14:46:24 +02:00
Manish Goregaokar
1d32422fe8 Add clip-path 2016-08-18 11:38:40 +05:30
Manish Goregaokar
254900bd1a
Add ShapeSource to basic-shape values 2016-08-18 11:38:33 +05:30
bors-servo
4e7c689a81 Auto merge of #12909 - ConnorGBrewster:framestate, r=asajeffrey
Add FrameState

<!-- Please describe your changes on the following line: -->
r? @asajeffrey
Might as well get this in now, since it may be a while before I can figure out what is causing the panics on the pending pipelines PR.

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

<!-- 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/12909)
<!-- Reviewable:end -->
2016-08-17 22:11:59 -05:00
Emilio Cobos Álvarez
a46f0c3b24
Lazily compute common style affecting attribute info. 2016-08-17 14:17:44 -07:00
Emilio Cobos Álvarez
63d9f2f56e
style: Fix the handling of the RESTYLE_DESCENDANTS hint.
This was the underlying cause of the restyle_hints_state.html failure.

It was uncovered only when fixing the HAS_EDGE_CHILD_SELECTOR flags because this
was the series of events happening.

 * <script> starts executing.
 * All the restyle hint processing takes place.
 * <script> ends executing, gets appended to the body (I think this is also a bug).
 * <body> receives children_changed notification, with an Append mutation.
   * <body> had the HAS_EDGE_CHILD_SELECTOR flag, so due to its bogus value, it
     restyled the whole tree after <body>, fixing any mishandling of restyle
     hints.
2016-08-17 14:17:43 -07:00
Emilio Cobos Álvarez
173ec260e6
Tidy up, make the cache a bit more performant.
Haven't measured a lot, will do tomorrow, but I want a test run.
2016-08-17 14:16:20 -07:00
Emilio Cobos Álvarez
3af774bd75
Rewrite the style sharing candidate cache.
The style candidate cache had regressed a few times (see #12534), and my
intuition is that being able to disable all style sharing with a single rule in
the page is really unfortunate.

This commit redesigns the style sharing cache in order to be a optimistic cache,
but then reject candidates if they match different sibling-affecting selectors
in the page, for example.

So far the numbers have improved, but not so much as I'd wanted (~10%/20% of
non-incremental restyling time in general). The current implementation is really
dumb though (we recompute and re-match a lot of stuff), so we should be able to
optimise it quite a bit.

I have different ideas for improving it (that may or may not work), apart of the
low-hanging fruit like don't re-matching candidates all the time but I have to
measure the real impact.

Also, I need to verify it against try.
2016-08-17 14:16:16 -07:00
Emilio Cobos Álvarez
b9f8905b21
script: Disable our dependency in ffmpeg until the media madness is over. 2016-08-17 13:44:44 -07:00
bors-servo
ec53136863 Auto merge of #11756 - vvuk:servo-msvc, r=larsbergstrom
MSVC support for Servo, and CMake builds for native code

This is the base PR for MSVC builds of servo and dependent crates.  It's got replacements in the Cargo.toml to pull in the right versions, to make sure that crates were properly converted to CMake for all other platforms, not just Windows.  (Servo builds with MSVC 2015 with this PR; also with 2013, though a manual change in rust-mozjs to select a different set of bindings is needed.)

This PR isn't quite ready yet, but I want bors-servo to do builds.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11756)
<!-- Reviewable:end -->
2016-08-17 13:22:52 -05:00
bors-servo
b61c45639a Auto merge of #12572 - craftytrickster:10933/shorthands, r=emilio
10933/shorthands

<!-- Please describe your changes on the following line: -->
This implements the serialization of nearly all of the css shorthand properties with the following exceptions:

1. font - this may be implemented correctly, but I am not 100% sure
2. border-radius - I do not know how to implement this, since I am not familiar with how the property works
3. background - this is implemented, but I think that the implementation might be a tiny bit off.

---
<!-- 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 #10933  (github issue number if applicable). Also fixes issue #11448

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

<!-- 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/12572)
<!-- Reviewable:end -->
2016-08-17 12:17:48 -05:00
Vladimir Vukicevic
ae117c1c04 Update Cargo.toml 2016-08-17 09:51:49 -04:00
Vladimir Vukicevic
5bbec7469d Native MSVC windows build, convert to cmake 2016-08-17 09:50:51 -04:00
bors-servo
fc7053e030 Auto merge of #12826 - Manishearth:addref, r=emilio,bholley
Add safer bindings for dealing with owned Arcs over FFI

Not yet ready to land, since I need to implement the logic for borrowed refs too. Ready for review for the first part.

The corresponding gecko changes are at https://github.com/servo/gecko-dev/compare/crashfix...Manishearth:addref-borrow

(I'll upload them to the bug once the borrow stuff is done)
r? @bholley

<!-- 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/12826)
<!-- Reviewable:end -->
2016-08-17 07:35:43 -05:00
bors-servo
f4f212fd18 Auto merge of #12897 - izgzhen:improve-file-api-comments, r=Manishearth
Improve File API related comments

r? @Manishearth

---
- [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/12897)
<!-- Reviewable:end -->
2016-08-17 06:38:34 -05:00