Commit Graph

47 Commits

Author SHA1 Message Date
Bobby Holley
196912c9bf servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates.

The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate.

There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
2018-04-10 21:00:11 -04:00
Emilio Cobos Álvarez
89cb511b3c servo: Merge #20386 - style: Rename StyleContext to ComputedStyle (from emilio:computed-style-rename); r=jwatt
Bug: 1447483
Reviewed-by: jwatt
MozReview-Commit-ID: KATZ6DkmpVY
Source-Repo: https://github.com/servo/servo
Source-Revision: 563f0ec8245d6ff4d7d200c30655f90f5bdfed64
2018-03-22 13:48:24 -04:00
Emilio Cobos Álvarez
c8ac089a9c servo: Merge #19941 - style: Handle correctly nested links (from emilio:cleanup-style-builder); r=emilio
Followup to #19935, since I'm dumb and missed some orange in my try run.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f8cd0fe22d835c4a02f8c7fcaf5c2e28ab0a846
2018-02-03 15:28:58 -05:00
Emilio Cobos Álvarez
191657ee4a servo: Merge #19935 - style: Cleanup StyleBuilder (from emilio:cleanup-style-builder); r=nox
style: Cleanup StyleBuilder.

This is in preparation of a cascade optimization for custom properties.

This fixes various fishiness around our StyleBuilder stuff. In particular,
StyleBuilder::for_derived_style (renamed to for_animation) is only used to
compute specified values, and thus doesn't need to know about rules, visited
style, or other things like that.

The flag propagation that was done in StyleAdjuster is now done in StyleBuilder,
since we know beforehand which ones are always inherited, and it simplified the
callers and the StyleAdjuster code. It also fixed some fishiness wrt which flags
were propagated to anon boxes and text.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d9d3633b99c01868c98d2a5e64bf311f532d58
2018-02-03 12:24:23 -05:00
Emilio Cobos Álvarez
b74b91ac7e servo: Merge #19842 - style: Cleanup a bit the cascade (from emilio:cascade-cleanup); r=nox,jryans
This makes an element available in StyleAdjuster, and uses it to replace some of our CascadeFlags (the ones that don't represent restrictions on what's actually cascaded, actually).

That fixes handwaviness in the handling of those flags from style reparenting,
and code duplication to handle tricky stuff like :visited.

There are a number of other changes that are worth noticing:

 * skip_root_and_item_based_display_fixup is renamed to skip_item_display_fixup:

   TElement::is_root() already implies being the document element, which by
   definition is not native anonymous and not a pseudo-element.

   Thus, you never get fixed-up if your NAC or a pseudo, which is what the code
   tried to avoid, so the only fixup with a point is the item one, which is
   necessary.

 * The pseudo-element probing code was refactored to return early a
   Option::<CascadeInputs>::None, which is nicer than what it was doing.

 * The visited_links_enabled check has moved to selector-matching time. The rest
   of the checks aren't based on whether the element is a link, or are properly
   guarded by parent_style.visited_style().is_some() or visited_rules.is_some().

   Thus you can transitively infer that no element will end up with a :visited
   style, not even from style reparenting.

Anyway, the underlying reason why I want the element in StyleAdjuster is because
we're going to implement an adjustment in there depending on the tag of the
element (converting display: contents to display: none depending on the tag), so
computing that information eagerly, including a hash lookup, wouldn't be nice.

See each commit for details.

Source-Repo: https://github.com/servo/servo
Source-Revision: 02331617b9bd7a379b05f7daa7ad09a44c27504c
2018-01-23 06:30:51 -06:00
Emilio Cobos Álvarez
09076b1a03 servo: Merge #19757 - style: Remove -servo-text-decorations-in-effect (from emilio:bye-custom-cascade); r=nox
It is bogus, because it depends on the display property as it's cascaded, but
the display property can change afterwards, for example, if we get blockified
because we're the root element or a flex item.

Replace it with a normal field instead.

Also, it carries some weight, because it's the last property that uses this
concept of "derived" property, and "custom cascade". So we can remove some code
after this.

Compute it after the cascade process in StyleAdjuster.

Source-Repo: https://github.com/servo/servo
Source-Revision: f2036e7661a3f865b38d8296cc1b8ab98e60f679
2018-01-15 05:14:49 -06:00
Emilio Cobos Álvarez
3426ae3b1f servo: Merge #19760 - style: Ruby style adjustments shouldn't reset mOriginalDisplay (from emilio:ruby-display-adjust); r=upsuper
This matches what Gecko does:

  https://searchfox.org/mozilla-central/rev/7476b71e0010ab3277b77cc0ae4d998c4b1d2b64/layout/style/GeckoStyleContext.cpp#992

And it's conceptually more right, since we ideally shouldn't mutate
mOriginalDisplay from StyleAdjuster.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b92eb932b34ce1a4b823b2571a50a928491b4b2
2018-01-13 13:16:06 -06:00
Emilio Cobos Álvarez
35aa625a51 servo: Merge #19758 - style: Adjust the writing-mode fixup to call set_adjusted_display on Servo (from emilio:adjust-display-right); r=emilio
This is functionally equivalent right now (set_adjusted_display will just do
set_display), but won't be after #19709.

Source-Repo: https://github.com/servo/servo
Source-Revision: e81193c5c953894eae0290614788997f0b89a386
2018-01-13 06:00:45 -06:00
Emilio Cobos Álvarez
758fc60ea8 servo: Merge #18893 - style: Remove TNode::set_can_be_fragmented and TNode::can_be_fragmented (from emilio:bye-can-be-fragmented); r=SimonSapin
Replace them instead by a computed value flag, the same way as the
IS_IN_DISPLAY_NONE_SUBTREE flag works.

Source-Repo: https://github.com/servo/servo
Source-Revision: 83a8891bd4d04ccb3f2f7b292d53f2847380b94c
2018-01-05 05:11:00 -06:00
Emilio Cobos Álvarez
c68f6d47d8 servo: Merge #19667 - Revert #19666 since we do create NAC elements and expect them to be inline (from emilio:root-and-item); r=emilio
This reverts commit 1970e82b0d310128eabe8466d39d42cc20e7ae4b, reversing
changes made to e882660ea694f9f12d9d2936012dbdf192f8aec8.

The reparenting logic is still bogus, but I'll figure out how to deal with that
in a bit.

Source-Repo: https://github.com/servo/servo
Source-Revision: be7d13e37fad6eb594a7b8c8ec9b07fa0df11116
2017-12-31 10:01:58 -06:00
Emilio Cobos Álvarez
a4b62501f9 servo: Merge #19666 - style: Simplify the skip item based display fixup adjustment (from emilio:root-and-item); r=upsuper
In practice the only NAC that possibly inherits from a grid or flex container
are pseudos.

In Gecko, if the root element is an item container, custom anon content would
also sometimes incorrectly inherit from that (see bug 1405635), but that's fixed
in Stylo.

We remove the IS_ROOT_ELEMENT blockification from the "skip display fixup"
check, since the root element is never NAC or anything like that, so there's no
need for the check.

This also fixes some reparenting fishiness related to pseudo-elements. We were
only skipping the fixup when reparenting anon boxes, not when reparenting normal
element styles, nor when reparenting other pseudo styles which are not anon
boxes.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1970e82b0d310128eabe8466d39d42cc20e7ae4b
2017-12-31 07:01:10 -06:00
Emilio Cobos Álvarez
b9b3a3caf8 servo: Merge #19662 - style: Simplify "prohibit display: contents" adjustment (from emilio:simplify-prohibit-display-contents); r=upsuper
On top of #19661.

The NAC condition is pointless because NAC don't match author rules unless they
are a pseudo-element too.

Source-Repo: https://github.com/servo/servo
Source-Revision: ebff37b80720447044cc38553558e8339512144f
2017-12-31 02:23:59 -06:00
Emilio Cobos Álvarez
6cc0bcd523 servo: Merge #19661 - style: Simplify ::-moz-fieldset-content special-casing (from emilio:simplify-fieldset-contents); r=upsuper
The style adjuster knows about the pseudo, so there's no reason to thread that
info down.

There are more simplifications that can be done in followups, cleaning a bit the
cascade flags too, those will come later.

Source-Repo: https://github.com/servo/servo
Source-Revision: fb569f9c159627a058b902bfe820f55c2657e590
2017-12-30 15:12:23 -06:00
Emilio Cobos Álvarez
b6ce4e833c servo: Merge #19601 - style: Don't adjust :visited styles (from emilio:adjust-visited); r=upsuper
As the comment says those are not interesting, and it matches what we do for
text and placeholders in Servo_ComputedValues_Inherit.

This fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1425893

Source-Repo: https://github.com/servo/servo
Source-Revision: d6797db10054dd42a7e96ce2ca8198838b068c81
2017-12-18 18:00:27 -06:00
Emilio Cobos Álvarez
034c3d82a4 servo: Merge #19500 - style: Make all keywords CamelCase for consistency (from emilio:camel-case-all-the-way); r=nox
style: Make all keywords CamelCase for consistency.

Source-Repo: https://github.com/servo/servo
Source-Revision: b24778202a4d886a990ee493adfb6851ac4be40c
2017-12-05 19:35:25 -06:00
Bastien Orivel
113ffac80e servo: Merge #18967 - Bump bitflags to 1.0 (from Eijebong:bitflags2.0); r=mbrubeck
See #18809

Still haven't had time to test it but it should fix the tests failures that appeared in m-c

Source-Repo: https://github.com/servo/servo
Source-Revision: fe4139b779b3af749ec1426ddf4e1393c7b85442
2017-10-30 18:25:45 -05:00
Sebastian Hengst
97c840e765 Backed out changeset e64e659c077d: servo PR #18809 and revendor for reftest failures, e.g. in layout/reftests/bugs/392435-1.html. r=backout on a CLOSED TREE 2017-10-19 23:23:30 +02:00
Bastien Orivel
a7068a599d servo: Merge #18809 - Update bitflags to 1.0 in every servo crate (from Eijebong:bitflags); r=nox
It still needs dependencies update to remove all the other bitflags
versions.

- [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's a dependency update

Source-Repo: https://github.com/servo/servo
Source-Revision: fe16c1d5c3c9084da0ccb85af599d6ec0f8ab20b
2017-10-19 10:35:08 -05:00
Matt Brubeck
8cc50002a2 servo: Merge #18924 - Fix commonmark Markdown warnings in docs, part 1 (from mbrubeck:doc); r=Manishearth
Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc.

This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.

---

- [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 are doc formatting changes only

Source-Repo: https://github.com/servo/servo
Source-Revision: 0e62a5829b7c29ae2667a21a439aff1e89201bf3
2017-10-17 16:04:10 -05:00
Emilio Cobos Álvarez
d4b31b7731 servo: Merge #18391 - style: Stop the cascade when only reset structs change (from emilio:cascade-stoph); r=heycam
From https://bugzilla.mozilla.org/show_bug.cgi?id=1395227

Source-Repo: https://github.com/servo/servo
Source-Revision: 9802214aba97287afa729c7efcac5e44316dc591
2017-09-06 07:55:08 -05:00
Simon Sapin
0477f46573 servo: Merge #18126 - geckolib: Fix some warnings (treated as error) new in Rust Nigthly (from servo:glow-fox); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: cc86ca2bcdec5e89ee5279085ea38db63ef41af9
2017-08-17 11:05:32 -05:00
Simon Sapin
6ea0512630 servo: Merge #18046 - Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) (from servo:rustup); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d9b82b9efa7b10a2e34d93df5ac535d99518f7a
2017-08-15 07:31:04 -05:00
Emilio Cobos Álvarez
3d3d982b74 servo: Merge #18083 - style: Simplify the ruby text adjustment (from emilio:ruby-text); r=upsuper
StyleAdjuster keeps a reference to the parent style, so no need to get it as an
argument.

Source-Repo: https://github.com/servo/servo
Source-Revision: fff50acd8188865c50a12ba6f623d14f94761919
2017-08-15 01:08:56 -05:00
Xidorn Quan
21787b21b4 servo: Merge #18075 - Apply line break suppression to text when in any ruby (from upsuper:text-in-ruby); r=Manishearth
This should fix [bug 1388904](https://bugzilla.mozilla.org/show_bug.cgi?id=1388904).

Source-Repo: https://github.com/servo/servo
Source-Revision: 6f5e7639347766b7c36919ee9b8cd528dff8f58c
2017-08-14 19:10:06 -05:00
Boris Chiou
9278b63804 servo: Merge #17783 - stylo: Bug 1374233 - Clamp interpolated values for properties which need to be restricted (from BorisChiou:stylo/animation/restrictions); r=nox
Some properties only accept non-negative values, or values greater than or equal to one. It is possible to produce an negative interpolated values while using negative timing functions, so we have to apply a restriction to these values to avoid getting invalid values.

For example, line-height must be non-negative, but the output progress of some timing functions (e,g. cubic-bezier(0.25, -2, 0.75, 1)) may be a negative value, so the interpolated result of line-height is also negative.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1374233.
- [X] These changes do not require tests because we have tests in Gecko side already.

Source-Repo: https://github.com/servo/servo
Source-Revision: 016ea11cbaf7586db144be122581c5b110649aee
2017-08-07 11:05:17 -05:00
Emilio Cobos Álvarez
06cba97206 servo: Merge #17959 - style: Move nsStyleContext::mParent to GeckoStyleContext (from emilio:no-moar-parent); r=heycam
Unfortunately this means that we lose the NS_STYLE_INHERIT_BIT optimization to
avoid posting changes if we had not requested the struct. In practice, I'm not
sure this optimization matters much, though, and we already compare all the
structs anyway.

We _could_ keep a weak parent pointer from the text style if needed, given we're
going to keep alive the text style at least until the parent style context goes
away, so should be safe, but I don't think the extra churn is worth it, to be
honest. Happy to do so as part of bug 1368290 if you think it's worth it.

Bug: 1385896
Reviewed-by: heycam
MozReview-Commit-ID: ka6tNwf4Ke
Source-Repo: https://github.com/servo/servo
Source-Revision: 452268eca9862e0e150ce3bf828a157263d33341
2017-08-03 05:50:18 -05:00
Emilio Cobos Álvarez
62bbf05fcf servo: Merge #17924 - stylo: Get rid of GetParentAllowServo (from emilio:die-getparentallowservo-die); r=heycam
Bug: 1384542
Source-Repo: https://github.com/servo/servo
Source-Revision: b35791f86fed329046dc54776f1ba73565e0c31f
2017-07-31 05:27:56 -05:00
Boris Zbarsky
a3492ab819 servo: Merge #17875 - Add support for having two separate parent styles. Fixes gecko bug 1382806 (from bzbarsky:first-line-dual-inheritance); r=emilio
<!-- Please describe your changes on the following line: -->

This is needed for ::first-line support.  See https://drafts.csswg.org/css-pseudo-4/#first-line-inheritance

This PR doesn't quite implement what the CSS spec draft says right now.  It implements what Gecko does, which is what an earlier draft said.

---
<!-- 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=1382806

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because servo doesn't support ::first-line yet

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 020188fdd77f0f0f2848e21eb9bcc28362d98506
2017-07-26 15:21:37 -05:00
Emilio Cobos Álvarez
5ce9e9139b servo: Merge #17828 - stylo: Visited link fixes (from emilio:visited-now); r=Manishearth
Straight from https://bugzilla.mozilla.org/show_bug.cgi?id=1383307

Source-Repo: https://github.com/servo/servo
Source-Revision: 2241d5879e5d66c52d2b4f17ad730c5de1eff364
2017-07-23 13:46:43 -07:00
Emilio Cobos Álvarez
2b0be17f61 servo: Merge #17825 - style: Move the RELEVANT_LINK_VISITED flag to servo (from emilio:is-visited); r=manishearth
Bug: 1383307
Reviewed-by: Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 14b12eeb3b7ff110dbdb1f9672c2cbfad4133ae0
2017-07-23 04:15:39 -07:00
Emilio Cobos Álvarez
0a34f79727 servo: Merge #17819 - stylo: Set the NS_STYLE_IS_TEXT_COMBINED flag (from emilio:text-combined); r=xidorn
This should fix at least
layout/reftests/writing-mode/1135361-ruby-justify-1.html

Source-Repo: https://github.com/servo/servo
Source-Revision: e4ac067a9b4db4f8bee7cf0eebaabd807dd8627b
2017-07-21 17:30:05 -07:00
Emilio Cobos Álvarez
a2ef51ccea servo: Merge #17817 - style: Move a conditional import to where it's used (from emilio:always-be-removing-the-ugly); r=stshine
To avoid yet another cfg().

Source-Repo: https://github.com/servo/servo
Source-Revision: d1c4d7a6af44de97f86205cb1a19408492f17833
2017-07-21 13:31:13 -07:00
Emilio Cobos Álvarez
e6d7ff0e29 servo: Merge #17788 - style: Cleanup the cascade a good bit (from emilio:clean-cascade); r=heycam
Was about the time.

Source-Repo: https://github.com/servo/servo
Source-Revision: f594ae58a68479af958989aae369a2bfee2b2246
2017-07-20 02:36:15 -07:00
Emilio Cobos Álvarez
cae5c53a3f servo: Merge #17773 - style: Cleanup post #17767 (from emilio:removing-the-ugly); r=manishearth
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1381764

Source-Repo: https://github.com/servo/servo
Source-Revision: 66e06578ee68b98c94029fba3cfc3ae7d3782044
2017-07-18 09:23:03 -07:00
Xidorn Quan
2344d8e2dd servo: Merge #17764 - Adjust display value for ::-moz-fieldset-content when parent is flex/grid (from upsuper:fieldset-flexgrid); r=emilio,heycam
This is the Servo side change for [bug 1379901](https://bugzilla.mozilla.org/show_bug.cgi?id=1379901).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1b6d29e31996c87218352b825aa93e01909a6a24
2017-07-17 21:16:26 -07:00
Manish Goregaokar
cb8af9ffe8 servo: Merge #17767 - stylo: Fuse ServoStyleContext and ServoComputedValues (from Manishearth:stylo-fuse); r=bholley
r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

Source-Repo: https://github.com/servo/servo
Source-Revision: d746abaa9e69e6cf0ad187d2b46be661bbe03a9f
2017-07-17 19:44:25 -07:00
Xidorn Quan
38e7a1a821 servo: Merge #17722 - Implement style adjustments for ruby (from upsuper:ruby-fixup); r=heycam,bz
This is the Servo side changes of [bug 1378287](https://bugzilla.mozilla.org/show_bug.cgi?id=1378287) and [bug 1364274](https://bugzilla.mozilla.org/show_bug.cgi?id=1364274).

Source-Repo: https://github.com/servo/servo
Source-Revision: 18c5ba108d6d2afa00af1d267c03a900c434b87d
2017-07-13 20:02:36 -07:00
Xidorn Quan
bda898671b servo: Merge #17430 - Store font-weight as integer directly (from upsuper:font-weight-int); r=nox
It doesn't make much sense to store `font-weight` as separate enums, especially given that we would need to support (somehow) arbitrary font weight value when we implement CSS Fonts Level 4.

This PR refactors the `font-weight` a bit to make it store as `u16` directly.

Source-Repo: https://github.com/servo/servo
Source-Revision: f11a922760a08ffb956607d9ab447f8f2a319a25
2017-07-06 16:18:36 -07:00
Emilio Cobos Álvarez
600467e348 servo: Merge #17447 - style: Be more strict when setting the root font size (from emilio:root-disconnected-subtree); r=heycam,Manishearth
Before this commit, we assumed that if the element had no parent element, it was
the root of the document, which is plain false, since we can arrive there from,
let's say, getComputedStyle on a detached node.

Bug: 1374062
Reviewed-By: heycam
MozReview-Commit-ID: 65DxdzXgd0J
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d785e75cd9c1b3b74d708bcc9d6ff10a40ae2f6
2017-06-22 04:17:04 -07:00
Cameron McCormack
052bd6e767 servo: Merge #17351 - style: Tweak an import (from heycam:nit); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 4d54f2c9bbc700f06cfef7d85df5f43bdbcf085d
2017-06-15 22:50:53 -07:00
Cameron McCormack
ec406b9a98 servo: Merge #17350 - style: Adjust display:contents to display:inline for NAC (including ::before/::after) (from heycam:gencon-contents); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1354879.

Source-Repo: https://github.com/servo/servo
Source-Revision: e3a52536b650f4aeb951b474936a0b67821f112e
2017-06-15 18:58:01 -07:00
Boris Zbarsky
49dfa072ec servo: Merge #17026 - mathvariant attributes should affect computed font style and weight in stylo (from bzbarsky:mathvariant); r=Manishearth
<!-- 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: -->
- [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=1367301

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because this is stylo-only and Gecko tests it.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 334d9088b8c843829c47f649a0fe3e5e1a229d2b
2017-05-25 02:07:08 -05:00
Emilio Cobos Álvarez
0032eb6e74 servo: Merge #16794 - style: Adjust text-align properly for -moz- values in tables (from emilio:table-text-fixup); r=Manishearth
Fixes bug 1363576.

Source-Repo: https://github.com/servo/servo
Source-Revision: 15f3db5abf5adbf4c85b66b877b8ffa3aaeea666
2017-05-10 17:24:57 -05:00
Emilio Cobos Álvarez
56cc732ea6 servo: Merge #16663 - style: Add a StyleBuilder struct to avoid refcount and atomic CAS during the cascade (from emilio:style-builder); r=bholley
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: bf0bf4f4b4ff7eb79c5d91fb725deefbcd063185
2017-04-30 18:31:41 -05:00
Emilio Cobos Álvarez
3e29671b45 servo: Merge #16648 - Bug 1360508: Adjust text-combine properly. r=jryans (from emilio:combine); r=jryans
Text style is always resolved via ServoStyleSet::ResolveStyleForText, either
from the frame constructor initially, or from
ServoRestyleManager::ProcessPostTraversalForText.

So text-only adjustments should go there instead. Since that doesn't call into
cascade(), all the code that passes `pseudo` there is dead code we can remove.

MozReview-Commit-ID: jpbBYpLlUL
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

Source-Repo: https://github.com/servo/servo
Source-Revision: bc690d67ebe1c6136a798099d176c6de7b0a0414
2017-04-28 10:25:21 -05:00
J. Ryan Stinnett
2f33cd2039 servo: Merge #16634 - Stylo: Text combine upright style adjustment (from jryans:text-combine-upright-fixup); r=heycam
Ports the text-combine-upright writing mode adjustment to Servo.

Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1359603.

Source-Repo: https://github.com/servo/servo
Source-Revision: ab3f5b0d9f72d32d500170eaf5e45f2708081dc3
2017-04-27 11:42:43 -05:00
Emilio Cobos Álvarez
191c3f7dbc servo: Merge #16608 - style: Move all the fixup code into a StyleAdjuster struct (from emilio:refactor-fixup); r=jryans
This will allow reusing it from text styles, which we need for some corner
cases, like text-align: -moz-center and similar stuff.

Source-Repo: https://github.com/servo/servo
Source-Revision: 09f0ff74811405eb95200ee78d936b4378de65fb
2017-04-25 20:31:00 -05:00