Commit graph

31404 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
94e895c61e
style: Slightly simplify push_applicable_declarations. 2017-12-14 18:04:02 +01:00
Matt Brubeck
fd664ec72f Make layout depend on style/servo feature
This fixes an error when running commands like `./mach check -p layout`.
2017-12-14 10:34:43 -06:00
bors-servo
370f5acf6d Auto merge of #19558 - emilio:sadness, r=heycam
selectors: Manually inline any(..) in matches_selector_list.

Since the compiler refuses to inline the inner closure even with -O3, which is
sad :(.

Sad try run:

  https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=c2724c47e98f990826327da05220cd83b772d144&newProject=try&newRevision=52ac88b40a08a5ef6a629bd681f2e5a444b75f54&framework=1

<!-- 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/19558)
<!-- Reviewable:end -->
2017-12-14 10:19:23 -06:00
Pyfisch
9502e9f42a layout: support tiled gradients
Use background-size, background-position properties to render
CSS gradients.

Some cleanup in display_list_builder.rs related to gradient
calculations.

Adds two wpt tests for tiled gradients.

Note: For now even gradients with background-repeat: no-repeat
are repeated. Sometimes the gradient is not repeated everywhere.

Enable vars-background-shorthand-001.html CSS test.
2017-12-14 09:25:30 +01:00
bors-servo
26feea3be5 Auto merge of #19556 - emilio:quotes-mako, r=emilio
Move list quotes out of mako.

Rebase of https://github.com/servo/servo/pull/19154.

<!-- 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/19556)
<!-- Reviewable:end -->
2017-12-14 01:39:38 -06:00
bors-servo
f5129ef7b5 Auto merge of #19541 - emilio:parse-slotted, r=heycam
selectors: Add parsing support for ::slotted().

Without turning it on yet, of course.

The reason why I didn't use the general PseudoElement mechanism is because this
pseudo is a bit of its own thing, and I found easier to make ::selectors know
about it (because you need to jump to the assigned slot) than the other way
around.

Also, we need to support ::slotted(..)::before and such, and supporting multiple
pseudo-elements like that breaks some other invariants around the SelectorMap,
and fixing those would require special-casing slotted a lot more in other parts
of the code.

Let me know if you think otherwise.

I also don't like much the boolean tuple return value, but I plan to do some
cleanup in the area in a bit, so it should go away soon, I'd hope.

<!-- 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/19541)
<!-- Reviewable:end -->
2017-12-14 00:22:45 -06:00
Emilio Cobos Álvarez
ddd3d126e9
selectors: Manually inline any(..) in matches_selector_list.
Since the compiler refuses to inline the inner closure even with -O3, which is
sad :(.

Sad try run:

  https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=c2724c47e98f990826327da05220cd83b772d144&newProject=try&newRevision=52ac88b40a08a5ef6a629bd681f2e5a444b75f54&framework=1
2017-12-14 06:32:48 +01:00
Emilio Cobos Álvarez
7886e033aa
selectors: Add parsing support for ::slotted().
Without turning it on yet, of course.

The reason why I didn't use the general PseudoElement mechanism is because this
pseudo is a bit of its own thing, and I found easier to make ::selectors know
about it (because you need to jump to the assigned slot) than the other way
around.

Also, we need to support ::slotted(..)::before and such, and supporting multiple
pseudo-elements like that breaks some other invariants around the SelectorMap,
and fixing those would require special-casing slotted a lot more in other parts
of the code.

Let me know if you think otherwise.

I also don't like much the boolean tuple return value, but I plan to do some
cleanup in the area in a bit, so it should go away soon, I'd hope.
2017-12-14 06:28:11 +01:00
bors-servo
c258bfb430 Auto merge of #19551 - emilio:anon-box-visited, r=heycam
style: Make anon boxes account for :visited.

This should fix one of the test failures of:

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

<!-- 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/19551)
<!-- Reviewable:end -->
2017-12-13 22:47:38 -06:00
Emilio Cobos Álvarez
604c520343
style: Make anon boxes account for :visited.
This should fix one of the test failures of:

  https://bugzilla.mozilla.org/show_bug.cgi?id=616436
2017-12-14 05:02:54 +01:00
Emilio Cobos Álvarez
03f3521216
style: Use more Box<[]> and Box<str> for quotes. 2017-12-14 04:05:25 +01:00
Connor Brewster
16f627a18a
style: Move list quotes out of mako 2017-12-14 03:43:10 +01:00
bors-servo
11d32d8800 Auto merge of #19539 - emilio:cargo-geckolib, r=SimonSapin
mach: Fix cargo-geckolib check / cargo-geckolib build after #19476.

<!-- 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/19539)
<!-- Reviewable:end -->
2017-12-13 20:26:43 -06:00
bors-servo
714c1b2455 Auto merge of #19548 - CYBAI:move-outline-style-out-of-mako, r=emilio
style: Move outline-style outside of mako

This is a sub-PR of #19015
r? emilio

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #19546
- [x] These changes do not require tests

<!-- 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/19548)
<!-- Reviewable:end -->
2017-12-13 19:30:26 -06:00
Emilio Cobos Álvarez
5dfa144c5d
mach: Remove redundant with(crate_dir). 2017-12-13 22:03:27 +01:00
bors-servo
8ca43e41ef Auto merge of #19552 - glennw:update-wr-fixes, r=emilio
Update WR (fix transformed primitives with hidpi).

<!-- 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/19552)
<!-- Reviewable:end -->
2017-12-13 11:20:12 -06:00
Glenn Watson
05adae23f9 Update WR (fix transformed primitives with hidpi). 2017-12-14 02:54:36 +10:00
CYBAI
b9b91b33be style: Move outline-style outside of mako 2017-12-13 11:41:59 +08:00
bors-servo
b93579a8f0 Auto merge of #19507 - asajeffrey:test-perf-date-option, r=avadacatavra
Add a --date option to test-perf.

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

To generate old test-perf results, we need a way to set the date when running `./mach test-perf`.

---
<!-- 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 do not require tests because they're test infrastructure

<!-- 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/19507)
<!-- Reviewable:end -->
2017-12-12 13:52:59 -06:00
bors-servo
80341b291b Auto merge of #19549 - Manishearth:telemetry, r=emilio
Add telemetry probe for measuring frequency of parallel restyles

Servo side of https://bugzilla.mozilla.org/show_bug.cgi?id=1421195

r=emilio
2017-12-12 10:14:31 -06:00
Manish Goregaokar
337e5288c2 Add weighted telemetry probes for parallel restyles 2017-12-12 10:13:23 -06:00
Manish Goregaokar
d573081fe5 Add telemetry probe for fraction of restyles that are parallel 2017-12-12 10:08:11 -06:00
bors-servo
0fa605d243 Auto merge of #19542 - atouchet:readme-windows, r=jdm
Add Windows as a development platform in Readme

<!-- 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: -->
- [ ] `./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/19542)
<!-- Reviewable:end -->
2017-12-11 01:01:42 -06:00
bors-servo
db41cc00be Auto merge of #19461 - jonleighton:issue-19171-4, r=KiChjang
Handle cases where selection API doesn't apply

The selection API only applies to certain <input> types:

https://html.spec.whatwg.org/multipage/#do-not-apply

This commit ensures that we handle that correctly.

Some notes:

1. TextControl::set_dom_selection_direction now calls
   set_selection_range(), which means that setting selectionDirection will
   now fire a selection event, as it should per the spec.

2. There is a test for the firing of the select event in
   tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/select-event.html,
   however the test did not run due to this syntax error:

   (pid:26017) "ERROR:script::dom::bindings::error: Error at http://web-platform.test:8000/html/semantics/forms/textfieldselection/select-event.html:50:11 missing = in const declaration"

   This happens due to the us of the "for (const foo of ...)" construct.
   Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
   this should actually work, so it's somewhat unsatisfying to have to
   change the test.

3. I removed tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html
   because it doesn't seem to add any extra value - the selection API
   always applies to textarea elements, and the API is tested elsewhere.

4. If an `<input>`'s type is unset, it defaults to a text, and the
   selection API applies. Also, if an `<input>`'s type is set to an
   invalid value, it defaults to a text too. This second case doesn't
   currently work, and I'll need to do more restructuring of the code in
   a future commit. See discussion with nox in IRC:
   https://mozilla.logbot.info/servo/20171201#c13946454-c13946594

<!-- 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/19461)
<!-- Reviewable:end -->
2017-12-10 18:37:58 -06:00
Alex Touchet
f52d339833
Add Windows as a development platform in Readme 2017-12-10 10:39:17 -08:00
bors-servo
92cbf56309 Auto merge of #19531 - glennw:update-wr-bitmap-fonts, r=jdm
Update WR (bitmap font fixes, serde deserialization optimizations).

<!-- 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/19531)
<!-- Reviewable:end -->
2017-12-10 11:12:20 -06:00
Glenn Watson
f97f80f013 Update WR (bitmap font fixes, serde deserialization optimizations). 2017-12-11 03:10:24 +10:00
Marcin Mielniczuk
f7c8a0cb60 Fix and document build on CentOS 7.4 2017-12-10 16:50:08 +01:00
bors-servo
29d960ee5c Auto merge of #19540 - servo:style-features, r=emilio
Check that 'style' is compiled in a supported configuration.

Provide an explanatory error message when the compilation would fail because of missing or duplicate items.

<!-- 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/19540)
<!-- Reviewable:end -->
2017-12-09 20:00:23 -06:00
Simon Sapin
890257ebc3 Check that 'style' is compiled in a supported configuration.
Provide an explanatory error message when the compilation would fail because of missing or duplicate items.
2017-12-10 02:58:31 +01:00
Emilio Cobos Álvarez
f2314c10ca
mach: Fix cargo-geckolib check / cargo-geckolib build after #19476. 2017-12-10 01:06:19 +01:00
bors-servo
c6bf85eca9 Auto merge of #19536 - emilio:compound-selector-list, r=mbrubeck
style: Move the code to parse a list of compound selectors.

I'll need this for ::slotted().

<!-- 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/19536)
<!-- Reviewable:end -->
2017-12-09 17:15:14 -06:00
bors-servo
95520ca39c Auto merge of #19533 - emilio:unused-code-should-die, r=emilio
style: Remove unused SelectorImpl::pseudo_element_cascade_type.

<!-- 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/19533)
<!-- Reviewable:end -->
2017-12-09 15:27:49 -06:00
bors-servo
548028fd07 Auto merge of #19538 - emilio:questions-questions-questions, r=mbrubeck
Use ? in Option more often.

<!-- 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/19538)
<!-- Reviewable:end -->
2017-12-09 13:58:25 -06:00
Emilio Cobos Álvarez
820c9a1828
net: Use ? on Option more often. 2017-12-09 20:46:20 +01:00
Emilio Cobos Álvarez
828585c685
constellation: Use ? on Option more often. 2017-12-09 20:46:19 +01:00
Emilio Cobos Álvarez
eb00aa4164
gfx: Use ? on Option more often. 2017-12-09 20:27:16 +01:00
Emilio Cobos Álvarez
6c37edf602
hashglobe: Use ? on Option more often. 2017-12-09 20:27:02 +01:00
Emilio Cobos Álvarez
339d633906
script: Use ? on option more often. 2017-12-09 20:26:48 +01:00
Emilio Cobos Álvarez
dbf0183b0f
style: Use ? in Option more often. 2017-12-09 20:26:09 +01:00
bors-servo
5f4f355cea Auto merge of #19537 - mbrubeck:try, r=nox
style: Use the ? operator for Option

This is stable in Rust 1.22 (#19532).

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because it is refactoring only

<!-- 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/19537)
<!-- Reviewable:end -->
2017-12-09 10:50:55 -06:00
Matt Brubeck
3005a26daf style: Use the ? operator for Option 2017-12-09 08:29:53 -08:00
bors-servo
051eb6bcb9 Auto merge of #19534 - emilio:naming-is-a-bit-hard-but-not-that-hard, r=nox
style: Simplify naming and signatures of single-colon pseudo stuff.

Also drop a few FIXMEs while at it, since they look bogus.

<!-- 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/19534)
<!-- Reviewable:end -->
2017-12-09 09:52:27 -06:00
Emilio Cobos Álvarez
b1f25a2b1f
style: Move the code to parse a list of compound selectors.
I'll need this for ::slotted().
2017-12-09 16:47:37 +01:00
Emilio Cobos Álvarez
bf564e0238
style: Simplify naming and signatures of single-colon pseudo stuff.
Also drop a few FIXMEs while at it, since they look bogus.
2017-12-09 16:12:22 +01:00
Emilio Cobos Álvarez
c93b844125
style: Remove unused SelectorImpl::pseudo_element_cascade_type. 2017-12-09 16:03:09 +01:00
bors-servo
051a715721 Auto merge of #19532 - mbrubeck:rustup, r=SimonSapin
Use Rust 1.22.1 for geckolib

This matches the version required for Firefox builds:
https://bugzilla.mozilla.org/show_bug.cgi?id=1421097

<!-- 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/19532)
<!-- Reviewable:end -->
2017-12-09 01:14:02 -06:00
bors-servo
f8a87a76b2 Auto merge of #19530 - emilio:extend-not-much, r=jdm
style: Don't unconditionally extend() the declaration block vector.

Since it appears in profiles when used from CSSOM, like the one in the bug
mentioned in the comment.

<!-- 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/19530)
<!-- Reviewable:end -->
2017-12-08 19:59:38 -06:00
Matt Brubeck
c52d347022 Use Rust 1.22.1 for geckolib
This matches the version required for Firefox builds:
https://bugzilla.mozilla.org/show_bug.cgi?id=1421097
2017-12-08 16:56:09 -08:00
bors-servo
42a3c1631c Auto merge of #19526 - upsuper:moz-bool-pref, r=emilio
Add @supports -moz-bool-pref() support for stylo

This is the Servo side change for [bug 1267890](https://bugzilla.mozilla.org/show_bug.cgi?id=1267890).

<!-- 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/19526)
<!-- Reviewable:end -->
2017-12-08 18:49:39 -06:00