Commit graph

1879 commits

Author SHA1 Message Date
bors-servo
143dfc879e Auto merge of #14848 - bzbarsky:initial-styles, r=bholley
Stop using global initial styles for stylo; the initial styles need to be per-document

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests on the servo side because behavior is unchanged.  Gecko-side tests probably exist.

<!-- 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/14848)
<!-- Reviewable:end -->
2017-01-04 21:01:38 -08:00
Boris Zbarsky
dd80b5c0e7 Bug 1298588 part 15, servo piece. Rip out the initial() methods on style structs in stylo. r=bholley 2017-01-04 23:13:55 -05:00
Boris Zbarsky
8e2acee24e Bug 1298588 part 14. Remove ComputedValues::initial_values for stylo. r=bholley 2017-01-04 23:13:53 -05:00
Boris Zbarsky
369fdddcd9 Bug 1298588 part 13. Make sure Device has a ComputedValues for stylo. r=bholley 2017-01-04 23:13:52 -05: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
Boris Zbarsky
8367c96c1b Bug 1298588 part 11. Pass through useful default styles to CascadePropertyFn. r=bholley 2017-01-04 23:13:49 -05:00
Boris Zbarsky
c826b18f87 Bug 1298588 part 10, servo piece. Pass through useful default styles to apply_declarations(). r=bholley 2017-01-04 23:13:48 -05:00
Boris Zbarsky
61f6025dc3 Bug 1298588 part 9, servo piece. Pass through useful default styles to cascade(). r=bholley 2017-01-04 23:13:46 -05:00
Boris Zbarsky
d3e34db508 Bug 1298588 part 7, servo piece. Stop using initial_values in general in Gecko glue code. r=bholley 2017-01-04 23:13:43 -05:00
Boris Zbarsky
c313c8d17e Bug 1298588 part 6, servo piece. Stop using initial_values when doing inheritance in Gecko glue code. r=bholley 2017-01-04 23:13:42 -05:00
Boris Zbarsky
56941d61a7 Bug 1298588 part 5. Store a ComputedValues on SharedStyleContext. r=bholley 2017-01-04 23:13:40 -05:00
Boris Zbarsky
a5ac55c8ff Bug 1298588 part 4, servo piece. Recreate the default computed values for a document as needed. r=bholley 2017-01-04 23:13:39 -05:00
Boris Zbarsky
34bb2f1e6c Bug 1298588 part 3, servo piece. Add a default ComputedValues member to PerDocumentStyleData. r=bholley 2017-01-04 23:13:31 -05:00
Boris Zbarsky
8908743719 Bug 1298588 part 2, servo piece. Pass through an nsPresContext to the PerDocumentStyleData constructor. r=bholley 2017-01-04 14:42:15 -05:00
bors-servo
96fd0837d3 Auto merge of #14844 - emilio:to-css-simplification, r=SimonSapin
style: Simplify Debug impl for PropertyDeclaration reusing to_css.

These two functions appear in the data from bug 1328497, and the second part of one is identical to the other.

I think the way to fix this is another one (either using static arrays to get
the interesting data, or making rust generate the equivalent code).

<!-- 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/14844)
<!-- Reviewable:end -->
2017-01-04 09:37:48 -08:00
Emilio Cobos Álvarez
c8ea840106
style: Simplify Debug impl for PropertyDeclaration reusing to_css.
These two functions appear in the data from bug 1328497.

I think the way to fix this is another one (either using static arrays to get
the interesting data, or making rust generate the equivalent code).
2017-01-04 18:24:04 +01:00
bors-servo
1e927ca88b Auto merge of #14835 - bholley:external_atomic_refcell, r=Manishearth
Switch to crates.io for atomic_refcell

r? @Manishearth

See #14828 for backstory.

<!-- 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/14835)
<!-- Reviewable:end -->
2017-01-03 19:20:59 -08:00
Bobby Holley
b9d99390ad Switch to crates.io for atomic_refcell. 2017-01-03 18:14:27 -08:00
bors-servo
61f6454b9c Auto merge of #14827 - Manishearth:spec-doc, r=emilio
Add spec links to all CSS properties

<!-- 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/14827)
<!-- Reviewable:end -->
2017-01-03 14:28:29 -08:00
Manish Goregaokar
94412ab6b0 Fix image-orientation line-wrap 2017-01-03 14:28:11 -08:00
Manish Goregaokar
1094c68a55 Add spec link for text-emphasis 2017-01-03 14:03:43 -08:00
Manish Goregaokar
d873bb8fa4 Add spec links for border shorthands 2017-01-03 14:03:42 -08:00
Manish Goregaokar
c89368dcc5 Add spec links for opacity 2017-01-03 14:03:40 -08:00
Manish Goregaokar
ca6ada8b83 Make spec links mandatory 2017-01-03 14:03:39 -08:00
Manish Goregaokar
9a2945bd3a Add spec links for xul properties 2017-01-03 14:03:38 -08:00
Manish Goregaokar
0c6829aea1 Add spec links for ui properties 2017-01-03 14:03:37 -08:00
Manish Goregaokar
450a5d1ae0 Add spec links for text properties 2017-01-03 14:03:35 -08:00
Manish Goregaokar
24f4388b5b Add spec links for table properties 2017-01-03 14:03:34 -08:00
Manish Goregaokar
7238cfb349 Add spec links for svg properties 2017-01-03 14:03:33 -08:00
Manish Goregaokar
baaddf651d Add spec links for pointing properties 2017-01-03 14:03:32 -08:00
Manish Goregaokar
6cf15de868 Add spec links for padding properties 2017-01-03 14:03:30 -08:00
Manish Goregaokar
e7464b5fd5 Add spec links for outline properties 2017-01-03 14:03:28 -08:00
Manish Goregaokar
fdd6a409fb Add spec links for mask properties 2017-01-03 14:03:26 -08:00
Manish Goregaokar
3128694bff Add spec links for margin properties, support spec links on four_sides_shorthand 2017-01-03 14:03:25 -08:00
Manish Goregaokar
6138b6aa75 Add spec links for list properties 2017-01-03 14:03:23 -08:00
Manish Goregaokar
26a9b450a2 Add spec links for inherited_text properties 2017-01-03 14:03:20 -08:00
Manish Goregaokar
096dca9171 Add spec links for inherited_table properties 2017-01-03 14:03:18 -08:00
Manish Goregaokar
ff4893e17e Add spec links for inherited_svg properties 2017-01-03 14:03:17 -08:00
Manish Goregaokar
71026c5ddb Add spec links for inherited_box properties 2017-01-03 14:03:16 -08:00
Manish Goregaokar
82835c8b1b Add spec links for font properties 2017-01-03 14:03:14 -08:00
Manish Goregaokar
b56762246f Add spec links for effects properties 2017-01-03 14:03:13 -08:00
Manish Goregaokar
be8f9ad9d7 Add spec links for counter properties 2017-01-03 14:03:12 -08:00
Manish Goregaokar
dedebc5cb5 Add spec links for column properties 2017-01-03 14:03:11 -08:00
Manish Goregaokar
6a88723409 Support logical values for float/clear 2017-01-03 14:03:10 -08:00
bors-servo
57b2c2609e Auto merge of #14828 - bholley:faster_atomic_refcell, r=Manishearth
Reimplement AtomicRefCell with pure atomics

While reviewing @bzbarsky's patches in [1], I started typing out some lore about how mutable AtomicRefCell borrows are actually cheaper than immutable ones, so we should prefer them where possible. But then I decided that this was a really dumb state of affairs and that we should just fix AtomicRefCell instead, and implement a proper AtomicRef{,Mut}::map while we were at it. So here we are.

This PR adds a from-scratch implementation of AtomicRefCell that aims to be 100% sound, even in unrealistic overflow scenarios. We should probably get this on crates.io eventually, but I want to land it landed in-tree first.

With this implementation, each operation (borrow or release) is one atomic instruction, and all borrow/release pairs (mutable or immutable) take 12 ns on my machine, which is what I'd expect. This is a 50% improvement over the previous implementation in the immutable case.

There may be some places where we could get away with Ordering::Release instead of Ordering::AcqRel, but it didn't seem worth it to try to reason it out.

r? @Manishearth

CC @emilio @SimonSapin @heycam @upsuper

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1298588

<!-- 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/14828)
<!-- Reviewable:end -->
2017-01-03 12:24:45 -08:00
Bobby Holley
c26b4bed60 Reimplement AtomicRefCell as a fork of RefCell. 2017-01-03 12:23:06 -08:00
Manish Goregaokar
0b515c2bc9 Add spec links for box properties 2017-01-03 10:27:49 -08:00
Manish Goregaokar
a9c0162000 Add spec links for border properties 2017-01-03 10:24:00 -08:00
Manish Goregaokar
cd2f9734e9 Add spec links for background properties 2017-01-03 10:23:56 -08:00
Manish Goregaokar
d63af611f2 Add spec links for position properties 2017-01-03 10:23:04 -08:00