Emilio Cobos Álvarez
3b857f1c4e
style: Add a StyleBuilder struct to avoid refcount and atomic CAS during the cascade.
...
This should fix most of the complaints that caused
https://bugzilla.mozilla.org/show_bug.cgi?id=1360889 to be open, and also fix a
bunch of other FIXMEs across the style system.
2017-04-30 23:45:40 +02:00
Anthony Ramine
f68e2fded9
Propagate quirks mode all the way to ParserContext
...
The quirks mode is still not properly propagated in geckolib.
2017-04-27 10:41:55 +02:00
J. Ryan Stinnett
1a31b87c22
Pass ParserContext down to lengths
...
To make it possible to check the rule type when parsing lengths, we need to pass
the `ParserContext` down through many layers to the place where length units are
parsed.
This change leaves it unused, so it's only to prepare for the next change.
MozReview-Commit-ID: 70YwtcCxnWw
2017-04-12 16:40:48 +08:00
Manish Goregaokar
25667d0321
stylo: Use gecko's font metrics
2017-04-10 14:29:51 +08:00
Manish Goregaokar
e402c72d0e
stylo: Store font metrics provider in thread local style context
2017-04-09 19:15:35 +08:00
Emilio Cobos Álvarez
846c950b6b
style: More cleanups around length parsing and viewport rule parsing.
2017-04-06 20:56:24 +02:00
Emilio Cobos Álvarez
726f918b46
style: Cleanup viewport rule parsing.
2017-04-06 20:56:22 +02:00
Simon Sapin
fe4e70c5f8
Introduce a ToCssWithGuard trait
2017-03-19 22:30:33 +01:00
Simon Sapin
3ae2ecbec2
More lock acquire in callers
2017-03-19 22:30:32 +01:00
Emilio Cobos Álvarez
eaf27ccfa0
style: Kill SharedStyleContext::default_computed_values.
...
Now that cascade() gets a Device, we can use the default computed values from
there to avoid propagating that state all over the place.
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-03-14 00:49:16 +01:00
Matt Brubeck
16e318d055
Add support for non-standard -moz color keyword values.
...
Closes #15928
2017-03-14 00:49:08 +01:00
Emilio Cobos Álvarez
6875c65d37
Bug 1341083: Implement dynamic restyling for display: contents. r=heycam
...
MozReview-Commit-ID: KimTU2j4V4p
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-02-25 19:58:56 +01:00
Glenn Watson
30ff2f8f0d
Introduce CSSPixel as a replacement for ViewportPx and PagePx.
2017-02-24 06:58:10 +10:00
Ravi Shankar
bdb08b9a82
Change LengthOrPercentageOrAuto to make use of NoCalcLength
2017-01-29 02:30:34 +05:30
Ravi Shankar
377a23df50
Refactor and modify stuff to make use of NoCalcLength
2017-01-29 02:04:24 +05:30
Manish Goregaokar
f59557d2f2
Box CalcLengthOrPercentage to reduce inline size of PropertyDeclaration(s)
2017-01-17 08:09:54 -08:00
Emilio Cobos Álvarez
c0cf847043
style: Isolate the soon-to-be style-backend-specific from the media_query module.
2017-01-07 12:34:43 +01:00
Boris Zbarsky
62961370ec
Bug 1298588 part 12. Compile some bits that call ComputedValues::initial_values only for servo, not stylo. r=bholley
...
Stylist::set_device seems to only be used in servo code, and is the only consumer of ViewportConstraints::maybe_new.
2017-01-04 23:13:50 -05:00
Emilio Cobos Álvarez
5e52184278
style: Make the viewport module deny new undocumented code.
2016-12-31 12:17:03 +01:00
Emilio Cobos Álvarez
277ef70d39
style: Consistently indent stuff, add a bit of documentation driving by.
2016-12-31 12:16:57 +01:00
Simon Sapin
01442ba1ae
Remove usage of std::intrinsics::discriminant_value.
2016-12-20 07:07:05 +01:00
Nazım Can Altınova
fdbadcdce2
Implement ToCss serialization for CSSRules
2016-11-18 12:17:53 +03:00
Emilio Cobos Álvarez
6c3458767b
style: Refactor and add infrastructure for font metrics in style.
...
This commit itself only moves things around and adds an extra parameter to the
`apply_declarations` function to eventually handle #14079 correctly.
Probably needs a more granular API to query fonts, á la nsFontMetrics, but
that's trivial to do once this is landed.
Then we should make the font provider mandatory, and implement the missing stylo
bits.
2016-11-13 11:54:10 +01:00
Ravi Shankar
6061985898
Prefer Servo-specific ToCss for all types
2016-11-07 09:14:22 +05:30
Daan Sprenkels
66059904b7
Remove extra spaces in function calls and declarations
2016-10-31 18:11:37 +01:00
Simon Sapin
742681a623
Add RwLock in more Arc’d things in stylesheets.
2016-10-19 19:55:05 +02:00
UK992
93a103ba73
Reorder use
statements
2016-09-09 04:55:19 +02:00
Simon Sapin
8bfe978c78
Update cssparser
2016-09-07 14:13:56 +08:00
Martin Robinson
6259df5e2d
Update to euclid 0.8
2016-08-12 03:12:06 +02:00
Simon Sapin
4b7060554b
Rename ComputedValuesStruct to ComputedValues.
...
Doing this in a separate commit avoids mixups
with the ComputedValues trait that the previous commit removed.
2016-07-20 08:42:45 +02:00
Simon Sapin
789807b7b0
Remove the ComputedValue traits and style_struct_traits
2016-07-20 08:42:40 +02:00
Ms2ger
cbfe77cee1
Move some unit type definitions to style_traits.
2016-07-11 12:14:27 +02:00
Emilio Cobos Álvarez
6a362ae8e8
style: Refactor all the animated properties to use the style system properly
2016-06-28 15:09:53 +00:00
Emilio Cobos Álvarez
60192bb830
style: Refactor to pass animations cleanly, land animation-name parsing as experimental
2016-06-28 15:09:53 +00:00
Simon Sapin
3932a82a2c
Replace usage of discriminant_value in viewport.rs
2016-06-28 06:47:57 +02:00
Ms2ger
79e0d18a1d
Add some documentation to the style crate.
2016-06-27 17:33:14 +02:00
Simon Sapin
00b6210519
Make the style crate almost build on stable Rust.
...
`discriminant_value` will need to be replaced with something else later.
2016-06-22 15:44:13 +02:00
Per Lundberg
2f7ed1d73e
Removed unused imports
...
This fixes #11185 .
2016-05-15 22:24:26 +03:00
Ms2ger
0f2b83ca0f
Use num-traits in style.
2016-04-20 15:11:41 +02:00
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
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
Bobby Holley
5c749127cc
Introduce traits for style structs and computed values.
2016-03-24 11:49:46 -07:00
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
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
Anthony Ramine
cb5cd8d881
Say farewell to in-tree HeapSizeOf
2016-02-04 22:03:32 +01:00
Ms2ger
2fa45aa064
Deny unsafe code in style.
2015-12-30 14:46:35 +01:00
GauriGNaik
afdc60fa57
Make log_css_error in parser.rs take a &ParserContext argument and call this method
2015-12-02 16:03:04 -05:00
Till Schneidereit
068e6a8e9f
Derive HeapSizeOf on more Stylesheet-related types
...
In preparation of storing `Stylesheet`s on nodes.
2015-11-07 16:19:23 +01:00
Adam Szopa
88991013ab
Remove explicit lifetimes which can be elided.
2015-10-21 01:27:48 +02:00
Corey Farwell
20beaf5af3
Fix issues found by rust-clippy
2015-10-12 20:21:49 -04:00