Commit graph

6718 commits

Author SHA1 Message Date
Bobby Holley
a7447aaf74 Don't require style structs to implement PartialEq.
It turns out this isn't necessary, and requiring it for gecko style structs
would be a pain.
2016-03-30 10:33:57 -07:00
Bobby Holley
4d2cf9e277 Remove unenforced trait bound that generates a warning.
Fixes #10239.
2016-03-30 10:33:57 -07:00
Emilio Cobos Álvarez
92f39ea5cf Implement ::selection pseudo-element 2016-03-30 14:28:11 +02:00
bors-servo
0ec96ac02a Auto merge of #10277 - perlun:rename-tcomputedvalues-to-computedvalues, r=SimonSapin
Renamed TComputedValues to ComputedValues

This is a followup to #10210, and a continuation of #10185.

<!-- 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/10277)
<!-- Reviewable:end -->
2016-03-30 11:04:57 +05:30
Per Lundberg
4cb4cc93e4 Renamed TComputedValues to ComputedValues
This is a followup to #10210, and a continuation of #10185.
2016-03-29 23:30:13 +03:00
Michael Howell
0a82d68f3e Use the new device viewport size for constaints.
Fixes #8443
2016-03-29 09:11:12 -07:00
bors-servo
639fdd6b12 Auto merge of #10210 - perlun:rename-computedvalues-to-servocomputedvalues, r=SimonSapin
ComputedValues is now ServoComputedValues

This is the first part of #10185. More to follow. I have built this locally with both servo and geckolib without errors; let's see if it succeeds on all platforms as well.

<!-- 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/10210)
<!-- Reviewable:end -->
2016-03-29 18:25:40 +05:30
Jussi Räsänen
5098ad7d93 Changed mach test to use generated json file of properties 2016-03-28 17:19:04 +03:00
Jussi Räsänen
8e2af4cf05 Fixed script to output the JSON and create doc directory. 2016-03-28 16:32:14 +03:00
Jussi Räsänen
dbb5d11dd3 HTML generation with Mako instead of JS 2016-03-28 16:32:14 +03:00
Jussi Räsänen
e576fe94b2 Generate html and json of supported css properties.
Outputs html and json file of supported css properties to target/doc/
directory when deploying github-pages.
2016-03-28 16:32:14 +03:00
faineance
7c45a4fea0 change changes effecting verbosity 2016-03-27 13:54:41 +01:00
faineance
418842faf9 use self.0 instead of destructing single item tuple structs 2016-03-27 11:50:08 +01:00
Per Lundberg
c2ad084713 ComputedValues is now ServoComputedValues
This is the first part of #10185. More to follow. I have built this locally with both servo and geckolib without errors; let's see if it succeeds on all platforms as well.
2016-03-27 10:55:43 +03:00
bors-servo
605842f193 Auto merge of #10155 - bholley:generalize_style_structs, r=SimonSapin
Generalize the style structs

This allows geckolib to pass gecko style structs and have the style system write to them directly, provided we implement all the traits.

<!-- 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/10155)
<!-- Reviewable:end -->
2016-03-25 03:27:33 +05:30
Bobby Holley
3c44dbae21 Add a skeleton implementation of TComputedValues in geckolib. 2016-03-24 11:50:58 -07:00
Bobby Holley
c2daea2c9c Parameterize the rest of the style system on TNode. 2016-03-24 11:50:57 -07:00
Bobby Holley
5c749127cc Introduce traits for style structs and computed values. 2016-03-24 11:49:46 -07:00
Corey Farwell
5efbf0fa8f Move util::str::parse_length into 'style' component.
The function is only used in the 'style' component, so we'll move it
there alongside other relevant parse functions.
2016-03-24 10:45:33 -04:00
Bobby Holley
16d2e9af65 Don't return a value from CSS variable substitution, and instead modify the style struct within the closure. 2016-03-23 11:07:24 -07:00
Bobby Holley
8db1ab240a Make derive_ methods accept a style struct rather than a computed_value, and do mutations internally.
This will allow us to specialize these methods for the gecko case without requiring the gecko path
to generate servo computed_values to pass to them.
2016-03-23 11:07:22 -07:00
Emilio Cobos Álvarez
5ed93a5c4a Change old references of ecoal95 2016-03-23 18:12:40 +01:00
bors-servo
41060dbdd7 Auto merge of #10105 - mbrubeck:dirty-viewport-percentages, r=SimonSapin
Don't re-add stylesheets to recompute vw/vh lengths

This is a follow-up to #9876.  It avoids clearing and rebuilding SelectorMaps
when vh and vw units need to be recomputed. Instead it just dirties all nodes,
to force elements to be re-cascaded.

Filed #10104 for later follow-up work to dirty only affected nodes.

r? @SimonSapin

<!-- 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/10105)
<!-- Reviewable:end -->
2016-03-22 18:58:47 +05:30
bors-servo
9a8ba23a76 Auto merge of #10088 - pkondzior:7038-report-memory-usage-in-layout-thread-data-stylist, r=ecoal95
Report memory usage from LayoutThreadData Stylist [#7038]

@jdm PTAL I'm not sure what is the approach of updating cargo components here, I've made a pull request https://github.com/servo/heapsize/pull/54 but it has to be landed first before merge and version bump.

<!-- 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/10088)
<!-- Reviewable:end -->
2016-03-22 06:54:11 +05:30
Matt Brubeck
37636e8377 Don't re-add stylesheets to recompute vw/vh lengths
This is a follow-up to #9876.  It avoids clearing and rebuilding SelectorMaps
when vh and vw units need to be recomputed. Instead it just dirties all nodes,
to force elements to be re-cascaded.

Filed #10104 for later follow-up work to dirty only affected nodes.
2016-03-21 10:05:17 -07:00
bors-servo
090da52913 Auto merge of #9586 - notriddle:details_ui, r=SimonSapin
Details ui

Requires a patch to rust-selectors, and doesn't currently recalculate the styles correctly (which is needed to make actual toggling work correctly).

Still trying to figure out what it takes to get style recalc to do what this needs.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9586)
<!-- Reviewable:end -->
2016-03-20 13:27:59 +05:30
bors-servo
8c92e3f32b Auto merge of #10075 - Ms2ger:deny-unsafe, r=jdm
Deny unsafe code in more crates.

<!-- 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/10075)
<!-- Reviewable:end -->
2016-03-20 08:00:53 +05:30
Michael Howell
9d9c5398a8 Get the fundamentals of the HTMLDetailsElement rendering stuff working.
Still need to implement the style invalidation.

Part of #9395
2016-03-19 16:02:11 -07:00
Matt Brubeck
25c1bce9f6 Recompute viewport-dependent styles on viewport size change
Fixes #8754.
2016-03-19 13:23:39 -07:00
Pawel Kondzior
db2e10a70f Report memory usage from LayoutThreadData Stylist [#7038] 2016-03-19 11:53:13 -07:00
bors-servo
2d6283c64b Auto merge of #9929 - servo:cascade, r=pcwalton
Refactor the cascade

Converting the specified value of some properties into a computed value depends on the value of other properties. For example, the `em` unit of any length depends on the `font-size` property.

Previously, we would do a first pass over applicable declarations to build up a `values::computed::Context` struct with a number of fields for each such piece of data from other properties.

This simplies the struct by instead having it contain the set of computed values (for a given element) that is being populated and classify properties into "early" and "other", such that the only dependencies can be from "other" to "early". We iterate applicable_declarations twice, first cascading "early" properties then "other". Unfortunately, it’s not easy to check that this classification is correct.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9929)
<!-- Reviewable:end -->
2016-03-19 08:08:56 +05:30
Simon Sapin
529164e4a5 Refactor the cascade
Converting the specified value of some properties into a computed value
depends on the value of other properties. For example, the `em` unit
of any length depends on the `font-size` property.

Previously, we would do a first pass over applicable declarations
to build up a `values::computed::Context` struct with a number of fields
for each such piece of data from other properties.

This simplies the struct by instead having it contain the
set of computed values (for a given element) that is being populated
and classify properties into "early" and "other",
such that the only dependencies can be from "other" to "early".
We iterate applicable_declarations twice, first cascading "early" properties
then "other".
Unfortunately, it’s not easy to check that this classification is correct.
2016-03-18 17:09:16 +01:00
Ms2ger
08083f1c9d Deny unsafe code in more crates. 2016-03-18 14:43:03 +01:00
Anthony Ramine
46c505e47b Bump serde to 0.7 2016-03-17 13:52:39 +01:00
Anthony Ramine
f7af675861 Update log to 0.3.5 2016-03-16 23:36:04 -07:00
Patrick Walton
d59dee0c65 style: Compute damage for text nodes.
They have styles just like elements do.

Allows a dynamic change of `display: none` to `display: inline` to work.

Closes #9868.
2016-03-15 21:32:16 -07:00
Simon Sapin
bab28e5070 Fix up overflow_x and _y after the fact rather than have their values in computed::Context. 2016-03-15 18:10:17 +01:00
Simon Sapin
54790d0ae5 Fix the rem unit.
(I think it’s never worked in over a year since it was implemented…)
2016-03-15 18:10:16 +01:00
Bobby Holley
b1878bd925 Remove lifetimes from T{Node,Element,Document}. 2016-03-14 14:31:57 -07:00
bors-servo
7ff7932a8c Auto merge of #9824 - danlrobertson:element1, r=asajeffrey
Add the scrollWidth and scrollHeight extensions to the element interface

Add the `scrollWidth` and `scrollHeight` extensions to the element interface. My goal was to create a method that encompassed getting `scrollWidth`, `scrollHeight`, `scrollTop`, and `scrollLeft`.

I also noted that `clientHeight` and `clientWidth` to not handle the root element and the body element correctly.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9824)
<!-- Reviewable:end -->
2016-03-12 00:19:24 +05:30
Daniel Robertson
16d2778ece Add scrollWidth/Height to element interface
Add the scrollWidth and scrollHeight extensions to the element
interface.
2016-03-11 18:22:16 +00:00
Anthony Ramine
b66d190166 Bump url to 0.5.7 2016-03-09 20:15:16 +01:00
Anthony Ramine
10e19e06a7 Bump string_cache to 0.2.11 2016-03-09 20:15:15 +01:00
Anthony Ramine
f89c321141 Bump euclid to 0.6.4 2016-03-09 20:15:11 +01:00
Anthony Ramine
200e2286fd Bump cssparser to 0.5.4 2016-03-09 20:14:38 +01:00
Anthony Ramine
5720c76816 Bump app_units to 0.2.3 2016-03-09 20:14:35 +01:00
bors-servo
5fbed88248 Auto merge of #9886 - nox:unstable-feature, r=SimonSapin
Make Cargo share more things between servo and ports

This should enable Cargo to reuse more build artifacts between servo and geckolib.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9886)
<!-- Reviewable:end -->
2016-03-08 20:03:24 +05:30
Suvish Varghese Thoovamalayil
de68820e76 Remove unused cell_extras feature gates. Fixes #9912 2016-03-08 16:56:13 +05:30
Anthony Ramine
b7ef9ed97a Enable nightly feature for serde in style
Some external dependencies (at least webrender_traits) present only in servo
and not in geckolib use it already and this prevents Cargo to reuse build
artifacts depending on serde between the two targets.
2016-03-08 02:51:06 +01:00
bors-servo
49e9594fb9 Auto merge of #9852 - bholley:stylo_uplifts_3, r=bholley
Stylo uplifts 3

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9852)
<!-- Reviewable:end -->
2016-03-05 01:48:35 +05:30