Commit Graph

63 Commits

Author SHA1 Message Date
Simon Sapin
07c1de366b Bug 1518045 - Rustfmt has changed its default style. r=emilio
This cherry-picks the formatting parts of
https://github.com/servo/servo/pull/22385.
2019-01-07 00:53:06 +01:00
Emilio Cobos Álvarez
dea05cdada Bug 1511811 - Use https for the MPL license URL.
Cherry-picks https://github.com/servo/servo/pull/22198
2018-12-03 08:43:48 -05:00
shindli
3a4462fafb Backed out 13 changesets (bug 1511811) for Btup bustages
Backed out changeset d71cde918f43 (bug 1511811)
Backed out changeset 0ae2634de8e1 (bug 1511811)
Backed out changeset 53d1f5ca4099 (bug 1511811)
Backed out changeset 5a08148928ef (bug 1511811)
Backed out changeset da7816ec50ef (bug 1511811)
Backed out changeset 5fe23889cccc (bug 1511811)
Backed out changeset 800bc60c75a7 (bug 1511811)
Backed out changeset 2392d8199cd0 (bug 1511811)
Backed out changeset 7bc486fbd195 (bug 1511811)
Backed out changeset d2c997426108 (bug 1511811)
Backed out changeset ddd573878432 (bug 1511811)
Backed out changeset 29c8ec1559a4 (bug 1511811)
Backed out changeset f5851346109d (bug 1511811)
2018-12-03 15:39:11 +02:00
Emilio Cobos Álvarez
11a665046f Bug 1511811 - Use https for the MPL license URL.
Cherry-picks https://github.com/servo/servo/pull/22198
2018-12-03 08:15:21 -05:00
Simon Sapin
8796faa7aa Bug 1506391 - cargo fix --edition. r=emilio 2018-11-11 02:40:21 +01:00
Brindusan Cristian
d311f835d2 Backed out 7 changesets (bug 1506391) for Btup bustages.
Backed out changeset b8216171101c (bug 1506391)
Backed out changeset 03d2309b737d (bug 1506391)
Backed out changeset 7b63f3149852 (bug 1506391)
Backed out changeset be88680421db (bug 1506391)
Backed out changeset 3840ce1ebfb0 (bug 1506391)
Backed out changeset 94517e21621c (bug 1506391)
Backed out changeset 32bde6f52a32 (bug 1506391)
2018-11-11 01:08:20 +02:00
Simon Sapin
daedee00db Bug 1506391 - cargo fix --edition. r=emilio 2018-11-10 21:14:05 +01:00
Emilio Cobos Álvarez
87231dd9d5 Bug 1505618 - Import formatting changes from servo/servo#22126. 2018-11-08 00:50:12 +01:00
Manish Goregaokar
2ab4619ec5 Bug 1475691: servo_arc cleanups for publishing r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D6034
2018-09-18 09:19:18 +00:00
chansuke
135da1df90 Bug 1489862 - Format style component. r=emilio
This cherry-picks servo/servo#21652.
2018-09-09 17:03:19 +02:00
Emilio Cobos Álvarez
16f8c99d91 Bug 1469076: Fix the broken invariants of the rule node cache. r=heycam
We were spuriously reframing the <shadow> because it initially shared style with
the <br>, which ended up being display: none, while the <shadow> should've been
display: contents from the beginning.

lookup_by_rules seems pretty prone to obscure bugs, and also it's pretty
complex... Probably we should try to get rid of it, I'm unconvinced that it's
worth it.

Even with that, in a normal restyle the <details> wouldn't have ended up with a
style. It of course never had it before the reframe because the <shadow> was
display: none, but that doesn't mean it shouldn't have gotten one, since we
detected we needed to go through kids in:

  https://searchfox.org/mozilla-central/rev/6eea08365e7386a2b81c044e7cc8a3daa51d8754/servo/components/style/matching.rs#500

That code did happen, but since it's an animation-only restyle, we don't look at
unstyled stuff.

That looks somewhat fishy, but I guess for now it's fine as long as display
isn't animatable.

MozReview-Commit-ID: B6NMSTNOKgK
2018-06-20 11:21:35 +02:00
Emilio Cobos Álvarez
f553b5e6f9 Bug 1460382: Make element-backed pseudos inherit from NAC subtree roots and other NAC inherit from their parents. r=heycam
Currently, NAC always inherits from the closest non-NAC ancestor element,
regardless of whether it is for an element-backed pseudo or not.

This patch changes the inheritance so that for element-backed pseudos, we
inherit from the closest native anonymous root's parent, and for other NAC we
inherit from the parent.

This prevents the following two issues and allows us to remove the
NODE_IS_NATIVE_ANONYMOUS flag:

 * Avoiding inheriting from the non-NAC ancestor in XBL bindings bound to NAC.

   - This is no longer a problem since we apply the rule only if we're a
     pseudo-element, and all pseudo-elements are in native anonymous subtrees.

   - This also allows to remove the hack that propagates the
     NODE_IS_NATIVE_ANONYMOUS flag from the ::cue pseudo-element from
     BindToTree.

 * Inheriting from the wrong thing if we're a nested NAC subtree.

   - We no longer look past our NAC subtree, with the exception of
     ::-moz-number-text's pseudo-elements, for which we do want to propagate
     ::placeholder to.

A few rules from forms.css have been modified because they're useless or needed
to propagate stuff to the anonymous form control in input[type="number"] which
previously inherited from the input itself.

MozReview-Commit-ID: IDKYt3EJtSH
2018-05-30 10:14:46 +02:00
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
fd154499a4 servo: Merge #20597 - style: Implement the non-functional :host selector (from emilio:host); r=xidorn
Kinda tricky because :host only matches rules on the shadow root where the rules
come from. So we need to be careful during invalidation and style sharing.

I didn't use the non_ts_pseudo_class_list bits because as soon as we implement
the :host(..) bits we're going to need to special-case it anyway.

The general schema is the following:

 * Rightmost featureless :host selectors are handled inserting them in the
   host_rules hashmap. Note that we only insert featureless stuff there. We
   could insert all of them and just filter during matching, but that's slightly
   annoying.

 * The other selectors, like non-featureless :host or what not, are added to the
   normal cascade data. This is harmless, since the shadow host rules are never
   matched against the host, so we know they'll just never match, and avoids
   adding more special-cases.

 * Featureless :host selectors to the left of a combinator are handled during
   matching, in the special-case of next_element_for_combinator in selectors.
   This prevents this from being more invasive, and keeps the usual fast path
   slim, but it's a bit hard to match the spec and the implementation.

   We could keep a copy of the SelectorIter instead in the matching context to
   make the handling of featureless-ness explicit in match_non_ts_pseudo_class,
   but we'd still need the special-case anyway, so I'm not fond of it.

 * We take advantage of one thing that makes this sound. As you may have
   noticed, if you had `root` element which is a ShadowRoot, and you matched
   something like `div:host` against it, using a MatchingContext with
   current_host == root, we'd incorrectly report a match. But this is impossible
   due to the following constraints:

    * Shadow root rules aren't matched against the host during styling (except
      these featureless selectors).

    * DOM APIs' current_host needs to be the _containing_ host, not the element
      itself if you're a Shadow host.

Bug: 992245
Reviewed-by: xidorn
MozReview-Commit-ID: KayYNfTXb5h
Source-Repo: https://github.com/servo/servo
Source-Revision: cb754b262747e7cab794411df55588f0f0b30b5e
2018-04-09 06:41:59 -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
2f87a028bf servo: Merge #20223 - style: Allow to share style across elements with similar XBL bindings (from emilio:share-xbl); r=xidorn,bholley
Also move the checks so that the tag name checks (presumably cheaper) come earlier.

Source-Repo: https://github.com/servo/servo
Source-Revision: 087cf21d79cb090c2a8b55b441e6004921b540aa
2018-03-12 16:48:36 -04:00
Emilio Cobos Álvarez
4f2c1c5c83 servo: Merge #20250 - style: Reorder style sharing checks so that cheaper and broader ones are earlier (from emilio:style-sharing-checks-order); r=xidorn
This was reviewed by Xidorn in #20223, but that needs to wait for a few days so let's land this separately.

Source-Repo: https://github.com/servo/servo
Source-Revision: 21290276c2c85cf5dd55474ba7a641fb13f127a6
2018-03-08 16:52:43 -05:00
Emilio Cobos Álvarez
5dec67e627 servo: Merge #20117 - style: Somewhat miscelaneous cleanup (from emilio:misc-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: bbfca28a4f3770896955375d01f1c489b4632fd3
2018-02-24 17:28:20 -05:00
Emilio Cobos Álvarez
a6af64eefb servo: Merge #19733 - style: Use Option::get_or_insert_with (from emilio:less-unwrap); r=glennw
Less unwraps is better.

Source-Repo: https://github.com/servo/servo
Source-Revision: e5a0bb9b4d26156ee675c33968007c7d0d54fd3b
2018-01-09 20:50:12 -06:00
Emilio Cobos Álvarez
17ac2d9d1e servo: Merge #19721 - style: Support ::slotted better (from emilio:slotted); r=heycam
This allows to selector-match ::slotted, though we still don't parse it.

Bug: 1425834, 1424607, 1425755
Reviewed-by: heycam
MozReview-Commit-ID: ItELHkf2PMl
Source-Repo: https://github.com/servo/servo
Source-Revision: bb34b7f54aa85cde600c6d675360d03714cf1f8b
2018-01-09 07:26:28 -06:00
Matt Brubeck
814dc3cd3d servo: Merge #19512 - Improve LRU cache behavior in SelectorFlagsMap (from mbrubeck:uluru); r=emilio
This code used to insert duplicate entries to avoid expensive shuffling of the LRU cache.  With uluru this is no longer necessary, because reordering the cache is cheap.

Now it uses the `LRUCache::find` method from uluru 0.2 to update entries in-place.  This should increase cache hits by eliminating unnecessary evictions.

This PR also updates `arrayvec` because `uluru` depends on it, and `immeta` because it depends on `arrayvec`.

---
- [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 don't change behavior

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c13f14aaa151764e1b3dd2d4503cb6fc3c9595b
2017-12-07 16:02:44 -06:00
Emilio Cobos Álvarez
08d63ba913 servo: Merge #19438 - style: Remove redundant style sharing check (from emilio:redundant-sharing); r=upsuper
We check that a few lines before calling test_candidate.

Source-Repo: https://github.com/servo/servo
Source-Revision: ec794c82978a60dd0d5fb65b7712138c3535b714
2017-11-30 10:45:14 -06:00
Emilio Cobos Álvarez
16f857cfc2 servo: Merge #19230 - style: Move lru_cache to its own crate (from emilio:lru-cache); r=nox
One less crate pointlessly in components/.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6938b4f3ebcb7bea6c44081796b254a31e0df5cb
2017-11-15 22:40:06 -06:00
Emilio Cobos Álvarez
c18891ef75 servo: Merge #19048 - style: Make style sharing look at XBL / Shadow DOM rules (from emilio:shadow-style-sharing); r=bzbarsky
Reland of #19045, because it was backed out for an unexpected pass.

Bug: 1412251
Reviewed-by: bz
MozReview-Commit-ID: II6lk6OmSZU
Source-Repo: https://github.com/servo/servo
Source-Revision: 52f962c387456308b68f062bff1ad72947da79b9
2017-10-28 06:06:56 -05:00
Sebastian Hengst
1ded8a1a36 Backed out changeset fc813bf68348 for failing reftest layout/reftests/bugs/272646-1.xul on OS X. r=backout 2017-10-28 10:07:46 +02:00
Emilio Cobos Álvarez
262f1e9825 servo: Merge #19045 - style: Make style sharing look at XBL / Shadow DOM rules (from emilio:shadow-style-sharing); r=bzbarsky
Bug: 1412251
Reviewed-by: bz
MozReview-Commit-ID: II6lk6OmSZU
Source-Repo: https://github.com/servo/servo
Source-Revision: 592c513c28885cbaba4eea2dc1cf77facba14ff4
2017-10-27 19:14:20 -05:00
Bobby Holley
9fdac01539 servo: Merge #18595 - Implement an nth-index cache (from bholley:nth_index_cache); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: be9c8ec07a0ca745adf1b412d32b3b32adec122c
2017-09-21 18:10:05 -05:00
Bobby Holley
599d2f4ac9 servo: Merge #18589 - Plumbing for the nth-index cache (from bholley:nth_index_plumbing); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: 39f8fce453f0a34751abb82485442429f06324bf
2017-09-21 01:24:01 -05:00
Bobby Holley
8f610f8ac1 servo: Merge #18571 - Add a geckolib API to check for primary style reuse (from bholley:primary_reuse_api); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1401317

Source-Repo: https://github.com/servo/servo
Source-Revision: 3cea16e18f125e3839af4dd3f064b4194fde4953
2017-09-20 02:05:57 -05:00
Emilio Cobos Álvarez
d449e355e5 servo: Merge #18547 - style: Resolver cleanup and sharing by rule node fixes (from emilio:self-sharing); r=heycam
See the individual commits for details.

This is the only coherent story I have for crashes like:

  https://crash-stats.mozilla.com/report/index/bcdfe629-ca1f-4e4d-aa17-27f890170917

(And the fact that there are crashes like it on the main thread kinda indicates it's the case)

Source-Repo: https://github.com/servo/servo
Source-Revision: 2387dbedbb27629cd9e8c4657e8328ae04ff6d58
2017-09-17 21:58:06 -05:00
Bobby Holley
30b44f8a87 servo: Merge #18532 - Undo #18497 in the MatchAndCascade case (from bholley:more_cache_insertion); r=emilio
It's easy to construct examples where not inserting in those cases causes performance
to get worse (for example, any long list of siblings that match the same selectors
while having some non-effectual differences in LocalName/Class/Id/etc). And the LRU
nature of the cache already does the right thing of pruning non-useful entries.

Fixing this causes several hundred more sharing hits on wikipedia.

Source-Repo: https://github.com/servo/servo
Source-Revision: da64abc4298549362debc96e5843bd36e6d23b7f
2017-09-16 02:09:20 -05:00
Matt Brubeck
935f6aa313 servo: Merge #18466 - Bug 1398957 - Make LRUCache use a linked list to reduce memmoves (from mbrubeck:cache); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1398957

Source-Repo: https://github.com/servo/servo
Source-Revision: 49f753523ac0f062943923935ff6d1942554d2cc
2017-09-14 16:48:48 -05:00
Emilio Cobos Álvarez
45a05757ba servo: Merge #18497 - style: Don't cache styles that got a cache hit on the second pass (from emilio:no-cache-if-cached); r=heycam
This avoids doing wasted work, at least in the recascade case, and pretty likely
in the other as well.

Source-Repo: https://github.com/servo/servo
Source-Revision: 988728e9d5c66e6bf2f9e0e03a50a814d0e1f2ab
2017-09-14 05:23:09 -05:00
Bobby Holley
acd012cddf servo: Merge #18496 - do a second pass on the style sharing cache after computing the rule node (from bholley:2ndpass); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1397976

Source-Repo: https://github.com/servo/servo
Source-Revision: 298b1363ffd7e830a6ad28424421ead6628ac9b7
2017-09-14 00:07:52 -05:00
Simon Sapin
22c36a33ca servo: Merge #18420 - Get rustc commit hash from channel manifest (from servo:toml); r=nox,emilio
… added in https://github.com/rust-lang/rust/pull/44218, instead of using the GitHub API.

Also upgrade to rustc 1.22.0-nightly (d93036a04 2017-09-07).

Source-Repo: https://github.com/servo/servo
Source-Revision: af077a722225193b38d80622fb939b7719b46db0
2017-09-12 05:01:24 -05:00
Bobby Holley
e1c7e22b50 servo: Merge #18453 - Refactor the style cache (from bholley:style_cache_refactor); r=emilio
This is the first set of patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1398658

Source-Repo: https://github.com/servo/servo
Source-Revision: def983c29566133ab02ed40b9ab8c5e99da8e53e
2017-09-12 03:25:36 -05:00
Matt Brubeck
4ac4e44aa7 servo: Merge #18431 - Use SmallBitVec to optimize size of PropertyDeclarationBlock (from mbrubeck:pdb-size); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1398322

Source-Repo: https://github.com/servo/servo
Source-Revision: e7f45028dcd4d7015b4eed2ecc193e176b1fbd1c
2017-09-11 08:57:07 -05:00
Hiroyuki Ikezoe
f3a355a9d7 servo: Merge #18195 - Don't cache style data if the element has running animations (from hiikezoe:disable-style-cache-for-animations); r=bholley,birtles
<!-- Please describe your changes on the following line: -->

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c9c0334ba7b03e0757a101d2758c1284566f420
2017-08-22 23:43:25 -05:00
Bobby Holley
01871af9e7 servo: Merge #17980 - Introduce a new flag and use it to be more permissive about cousin sharing (from bholley:fix_initial_sharing); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1387116

Source-Repo: https://github.com/servo/servo
Source-Revision: b701d726f2840d61573d213f2e2008335dc9831e
2017-08-05 03:23:55 -05:00
Michael Partheil
728ab1f36c servo: Merge #17775 - Replace all uses of the style::stylearc alias with servo_arc (from michael-p:rename-stylearc-to-servo-arc); r=emilio
The `stylearc` alias is left there temporarilly and will be removed completely in a later commit/PR where also `components/style/gecko/generated/structs_{debug|release}.rs` are re-generated (they still use the old alias).

---
<!-- 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 #17768  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because no new features / only refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 31228c18499d1c7f68b6b64b559354c768e81215
2017-07-19 06:03:17 -07:00
Manish Goregaokar
cba9fe1d1d servo: Merge #17778 - stylo: Don't ignore visited state when deciding to share style contexts (from Manishearth:stylo-visited-fix); r=bz
r=bz https://bugzilla.mozilla.org/show_bug.cgi?id=1381635

Source-Repo: https://github.com/servo/servo
Source-Revision: 38e808645292a1e4e9264937b979137b194c2196
2017-07-18 13:40:18 -07:00
Hiroyuki Ikezoe
6cf42e52d8 servo: Merge #17770 - Avoid snapshot handling in animation only restyle (from hiikezoe:snapshot-in-animation-only-restyle); r=emilio
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1381431

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e57ed3d42f818630157102e824867a763964291e
2017-07-18 04:55:30 -07:00
bors-servo
5b540cb699 servo: Merge #17728 - Reuse bloom filter and style sharing cache across traversals (from emilio:reuse-allocs); r=bholley,emilio
This relands #17701, with a fix for the test failures.

Source-Repo: https://github.com/servo/servo
Source-Revision: f49650ce96578c200c71b0a8fa50094764a3c76d
2017-07-14 02:02:55 -07:00
Emilio Cobos Álvarez
98987ee711 servo: Merge #17713 - style: Kill some style sharing code (from emilio:less-code-is-lovely); r=heycam
It's trivial to do so after #17688.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c85c55d02458afffea0ec898e4560d62d447e4e
2017-07-14 00:25:37 -07:00
Emilio Cobos Álvarez
2cf87181a7 servo: Merge #17717 - style: Don't stop looking at the sharing cache for various reasons (from emilio:style-sharing-stop); r=bzbarsky
All the information that made those failures expensive is now lazily computed
and cached, or eagerly computed anyway, so seems not worth to stop iteration.

Source-Repo: https://github.com/servo/servo
Source-Revision: 788ba8ccf0fee481ab051866704e01ac74872e31
2017-07-13 15:05:07 -07:00
Emilio Cobos Álvarez
27fff64d23 servo: Merge #17688 - style: Split style resolution and dynamic change computation (from emilio:split-style-resolution); r=heycam,BorisChiou
This is the Servo side of Mozilla bug 1379505.

Source-Repo: https://github.com/servo/servo
Source-Revision: 16d6dc133b40a5d48e33b1f8e2aeafa88e36a6e3
2017-07-12 00:28:44 -07:00
J. Ryan Stinnett
5417317b00 servo: Merge #17481 - Stylo: Move match and cascade temporaries to CurrentElementInfo (from jryans:move-rule-node); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1370719

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ba71fcd57bd8aef7977f09b0f095aa51796c1b3
2017-06-22 17:46:55 -07:00
Emilio Cobos Álvarez
b5b0a3f2c9 servo: Merge #17348 - style: Inline RestyleData (from emilio:bup); r=bholley
Bug: 1368236
MozReview-Commit-ID: 49s3SO0PMHf
Source-Repo: https://github.com/servo/servo
Source-Revision: 33766b2714443399808c950e5bb74b1f124f2bc4
2017-06-15 20:28:56 -07:00
Bobby Holley
a59bc7deb4 servo: Merge #17281 - Pack bloom filter hashes better and save a word on Rule (from bholley:shrink_rule_again); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1371949

Source-Repo: https://github.com/servo/servo
Source-Revision: 75d6796cbd1274c3711472d1a8b728c3cf6ac70c
2017-06-12 12:41:39 -07:00
Cameron McCormack
a0ab73cd9e servo: Merge #17252 - style: don't perform selector matching on the flattened tree (from heycam:flattened-tree); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1369954.

Source-Repo: https://github.com/servo/servo
Source-Revision: 969047bb7cab0f5e8c235017b7e9f7a170c9b7e4
2017-06-09 03:57:36 -07:00