Commit Graph

228 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
86438f7ff0 servo: Merge #20339 - style: Remove unsound Atom From implementations (from emilio:atom-from-dead-beef); r=nox
Fixes #20158

Source-Repo: https://github.com/servo/servo
Source-Revision: b47224dbcce2974e6f572b284cba1e2f5393b95d
2018-03-19 06:11:14 -04:00
Emilio Cobos Álvarez
5433e8d3b9 servo: Merge #20229 - style: Separate the XBL and shadow dom styling bits (from emilio:finally); r=xidorn
Bug: 1441022
Reviewed-by: xidorn
MozReview-Commit-ID: 2W0BmZ8wWXg
Source-Repo: https://github.com/servo/servo
Source-Revision: 6272233c50071534ddbab118b64ecdb8fdda7c8a
2018-03-07 10:06:05 -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
Xidorn Quan
049dcd421c servo: Merge #20070 - Add sizeof for AuthorStyles (from upsuper:authorstyles-size); r=bholley,njn
This is the Servo side change for [bug 1438497](https://bugzilla.mozilla.org/show_bug.cgi?id=1438497).

Source-Repo: https://github.com/servo/servo
Source-Revision: a98da8ce939e8afe7bac737ac02e3bcb226a1ea9
2018-02-18 23:13:10 -05:00
Emilio Cobos Álvarez
3f59a7620c servo: Merge #20061 - style: Make XBL / Shadow DOM use something more light-weight than a Stylist (from emilio:author-styles); r=xidorn
Introduce AuthorStyles, which is just a struct aggregating stylesheets +
CascadeData, with a quirks_mode parameter because XBL sucks so bad.

Bug: 1436059
Reviewed-by: xidorn
MozReview-Commit-ID: 7q99tSNXo0K
Source-Repo: https://github.com/servo/servo
Source-Revision: 504b901cc82db5c5e02e157cec9753f7c297ac2c
2018-02-16 09:54:06 -05:00
Emilio Cobos Álvarez
a3f09f2a51 servo: Merge #20026 - style: Use more CascadeData and less Stylist for XBL stuff (from emilio:less-stylist-xbl); r=upsuper
Just some more use-cases that can be converted right away.

I'm trying to make XBL not use a whole Stylist, slowly...

Source-Repo: https://github.com/servo/servo
Source-Revision: 63691f01d79874aae4bb84badf86667c863cec9b
2018-02-12 06:03:30 -05:00
Emilio Cobos Álvarez
69adddeec0 servo: Merge #20018 - style: Handle quirks-mode changes correctly (from emilio:quirks-mode-flush); r=xidorn
The reason why bug 1355721 regressed this is because in non-e10s we definitely
flush before parsing the standards quirks-mode. And bug 1355721 introduced an
unconditional UpdateStylistIfNeeded, unless the counter style / font
equivalents.

That means that the stylist wouldn't remain on its initial state after the first
flush, which itself means that when the compat mode changed, the UA and user
rules were already on the stylist with the quirks mode keys. That makes
class-names be keyed in ascii lowercase.

After that no user style changed, so no rebuild happens for the cascade data in
the user origin, so we keep looking at the wrong keys indefinitely.

We should try to avoid the flush there and ensure that by the time we create a
pres shell the quirks mode is already up-to-date...

Bug: 1394233
Reviewed-by: xidorn
MozReview-Commit-ID: 25dD2bca3tN
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ec0b50ebc65f04a49420e15267f564d36d5ada1
2018-02-11 13:19:02 -05:00
Emilio Cobos Álvarez
d8ecdca73b servo: Merge #20010 - style: Cascade pres hints after normal user rules (from emilio:pres-hints-cascade); r=bholley
Per https://drafts.csswg.org/css-cascade/#preshint and
https://html.spec.whatwg.org/#presentational-hints.

This was causing failures in the link color reftests with the preferences sheet
as a User sheet.

Bug: 1436782
Reviewed-by: bholley
MozReview-Commit-ID: 9iwEqPBw4CF
Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc75a783d1a7e2a82ef1e6502ca5a4463a3fb4b
2018-02-10 07:46:38 -05:00
Emilio Cobos Álvarez
4225865957 servo: Merge #20011 - style: Tidy Stylist::compute_for_declarations (from emilio:cleanup-for-declarations-stuff); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 0098d519030f395f94f3f82fc04b93227fdff4ec
2018-02-10 06:45:52 -05:00
Emilio Cobos Álvarez
656ba0e86e servo: Merge #20004 - style: Add infrastructure to have a standalone author stylesheet collection (from emilio:author-sheet-collection); r=nox
Right now Gecko uses a whole `Stylist` for stuff like XBL / Shadow DOM.

That's not great, because it has tons of unrelated logic, and also eats up a lot of memory. Also, it prevents us to optimize style changes in shadow hosts the same way we do for the document.

These patches mostly rejigger stuff around so that you can define a `DocumentStylesheetSet` and then an `AuthorStylesheetSet`, which would contain just the Shadow DOM sheets / XBL resource sheets.

It still doesn't introduce any use for the later, but that will come later.

There's a patch in this PR that requires Gecko changes, posted in https://bugzilla.mozilla.org/show_bug.cgi?id=1436798.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6b1a74672d6b9d9c55b027b147b0a6eb8f727bfd
2018-02-09 17:18:08 -05:00
Emilio Cobos Álvarez
9bd229db85 servo: Merge #19973 - style: Rework how media feature changes are handled for XBL (from emilio:media-feature-change); r=xidorn
Bug: 1435939
Reviewed-by: xidorn
Source-Repo: https://github.com/servo/servo
Source-Revision: e57319a7345eded057555f55f801e5f2c413f5b9
2018-02-07 08:02:34 -05:00
janczer
365600e115 servo: Merge #19970 - Change debug assertions to specific ones (from janczer:change_debug_assertions); r=emilio
<!-- 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 #19962 (github issue number if applicable).

<!-- 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: 5d209a70ab11cd0ce6c7e086091112570c6e259d
2018-02-07 06:20:36 -05:00
Emilio Cobos Álvarez
9134742fc1 servo: Merge #19877 - style: Look at the snapshots when invalidating due to stylesheet changes (from emilio:remove-sheet-oh-noes); r=bz
Otherwise removal of stylesheets may get out of sync with other DOM changes, and
we may fail to invalidate the style of the affected elements.

Bug: 1432850
Reviewed-by: bz
MozReview-Commit-ID: DrMTgLzQcnk
Source-Repo: https://github.com/servo/servo
Source-Revision: bc7dd644f6f50bd6eb3fba1547808775ee9d7620
2018-01-26 20:18:48 -06: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
85499bae26 servo: Merge #19822 - style: More tiny selector-matching cleanup (from emilio:less-match-public); r=KiChjang
See each commit individually.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6fc71a7644bd7afcccf83f67cfdaf01897e1a3bc
2018-01-19 23:05:18 -06:00
Emilio Cobos Álvarez
9c27e80a90 servo: Merge #19817 - style: Track the visited-handling-mode on the MatchingContext (from emilio:matching-context-visited); r=nox
This fixes bugs where we're not passing the value around correctly, like from
::-moz-any.

This is a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1431539.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d7d02fca772a407d4ffa1ebd1e03d60f385eb74
2018-01-19 12:50:00 -06:00
Emilio Cobos Álvarez
66afe9a352 servo: Merge #19790 - style: Work from multiple bugs (from emilio:fix-all-the-bugs); r=heycam,xidorn
Bug: 1429846,1429248,1430608,1409672
Reviewed-by: xidorn,heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d685d4baa0b107e3dd95eeba8076bfb9e07ba0e
2018-01-17 13:55:03 -06:00
Simon Sapin
71e6c25a65 servo: Merge #19751 - Clean up the selectors crate for a new crates.io release (from servo:selectors); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 6ca651c0c8271ce185448e1db95b893a276eaed9
2018-01-12 16:55:12 -06:00
Emilio Cobos Álvarez
14f0f89c80 servo: Merge #19734 - style: Remove some unneeded indirection (from emilio:less-indirection); r=mbrubeck
All TElement's implement Copy, and are just pointers, so the double indirection
is stupid.

I'm going to try to see if removing this double-indirection fixes some
selector-matching performance, and this is a trivial pre-requisite while I wait
for Talos results.

Source-Repo: https://github.com/servo/servo
Source-Revision: e2c89df8eeb5f2dbac1436335aea52099a622d0d
2018-01-09 23:34:15 -06: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
Emilio Cobos Álvarez
f6d34f8931 servo: Merge #19595 - style: Add a FIXME comment that I need to write a test-case for (from emilio:broken-code-all-around); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: fab8042fa73ff326a0fa5c65863434eac0070ac1
2017-12-18 07:24:13 -06:00
Emilio Cobos Álvarez
1b7c02585a servo: Merge #19564 - style: Slightly simplify push_applicable_declarations (from emilio:push-applicable-simple); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 90290cfafed0bff88920fd286ea09656fd9e999f
2017-12-15 11:28:16 -06:00
Emilio Cobos Álvarez
578b938067 servo: Merge #19551 - style: Make anon boxes account for :visited (from emilio:anon-box-visited); r=heycam
This should fix one of the test failures of:

  https://bugzilla.mozilla.org/show_bug.cgi?id=616436

Source-Repo: https://github.com/servo/servo
Source-Revision: c258bfb430fabc2ebc55db679a52f09c7df04b58
2017-12-13 22:47:38 -06:00
Matt Brubeck
bd2b1d6b5f servo: Merge #19537 - style: Use the ? operator for Option (from mbrubeck:try); r=nox
This is stable in Rust 1.22 (#19532).

---

- [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 is refactoring only

Source-Repo: https://github.com/servo/servo
Source-Revision: 5f4f355cea4a24992ac9efa97f4a6e1837008e0b
2017-12-09 10:50:55 -06:00
Emilio Cobos Álvarez
49bf5fbc7a servo: Merge #19520 - selectors: Simplify :visited by only using the "is inside link" information (from emilio:simplify-visited); r=jryans
Right now we go through a lot of hoops to see if we ever see a relevant link.

However, that information is not needed: if the element is a link, we'll always
need to compute its visited style because its its own relevant link.

If the element inherits from a link, we need to also compute the visited style
anyway.

So the "has a relevant link been found" is pretty useless when we know what are
we inheriting from.

The branches at the beginning of matches_complex_selector_internal were
affecting performance, and there are no good reasons to keep them.

I've verified that this passes all the visited tests in mozilla central, and
that the test-cases too-flaky to be landed still pass.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7a8733723551201d2c06acde9b0915b4c03938b4
2017-12-08 17:37:32 -06:00
Xidorn Quan
9933752879 servo: Merge #19429 - Don't try to share style on quirks mode whenever two elements have different id (from upsuper:sharing-quirks-id); r=emilio
This fixes [bug 1420946](https://bugzilla.mozilla.org/show_bug.cgi?id=1420946).

Source-Repo: https://github.com/servo/servo
Source-Revision: fce44a2e139478a5fc3524c2fd72fbeea6e3eec1
2017-11-30 08:23:07 -06:00
Matt Brubeck
4d91a6eac8 servo: Merge #19424 - Remove unused generic from push_applicable_declarations (from mbrubeck:veclike); r=emilio
This function is only ever used with one type.

This gets rid of the only use of the `smallvec::VecLike` trait, which we may want to deprecate (servo/rust-smallvec#35).  If we do need to make this function generic in the future, we can do it using standard traits instead.

---
- [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 removing unused code

Source-Repo: https://github.com/servo/servo
Source-Revision: dbe3136a055008d2c27c7d96f20e0c9ce4b1cb1c
2017-11-29 11:47:33 -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
Emilio Cobos Álvarez
85f54c56f1 servo: Merge #19059 - style: Make the SelectorMap API slightly nicer (from emilio:selector-map-nicer); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b73cf33525afbbe2d077554d1965b74ef9ae5e3
2017-10-30 06:42:14 -05: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
Manish Goregaokar
7d6677d31a servo: Merge #18995 - Revert all hashmap diagnostics changes (from Manishearth:rm-diagnostics); r=emilio
We don't need them anymore

Source-Repo: https://github.com/servo/servo
Source-Revision: 69b9c221f65243562a5dc54cba45a083d1d046cc
2017-10-23 19:00:24 -05:00
Emilio Cobos Álvarez
726f98d5af servo: Merge #18988 - stylo: querySelector / querySelectorAll machinery (from emilio:qs); r=heycam
Bug: 1410624
Reviewed-by: heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: eaba7ede232c9b556f22d67698eca5dc64ad4075
2017-10-23 08:14:35 -05:00
Xidorn Quan
299a7a9509 servo: Merge #18987 - Remove XBL as a separate cascading level in Stylo (from upsuper:xbl-cascade); r=emilio
In Gecko, we handle XBL rules like author rules everywhere, except that XBL rules are added and sorted in an independent step, behave as if it has a separate level.

It is not clear to me why Stylo chose to add a separate level for XBL rules, but it doesn't seem that there is anything special to do with XBL rules.

This bug happens because we don't handle XBL important rules which are handled as part of author rules in Gecko due to lack of the additional level there. We should just follow what Gecko does here and handle them all the same.

(This is the Servo part of [bug 1408811](https://bugzilla.mozilla.org/show_bug.cgi?id=1408811))

Source-Repo: https://github.com/servo/servo
Source-Revision: 819dff79087d2c45203d97f9837dd0e07513304e
2017-10-23 01:36:07 -05:00
Xidorn Quan
4251860b62 servo: Merge #18962 - Support matching for ::-moz-tree-* pseudo-elements (from upsuper:tree-pseudos); r=emilio
This is the Servo side change of [bug 1397644](https://bugzilla.mozilla.org/show_bug.cgi?id=1397644).

Source-Repo: https://github.com/servo/servo
Source-Revision: b1e6f05ae455748f6091ddf81c1c0488e09546a1
2017-10-20 04:18:53 -05:00
Cameron McCormack
0c7897b655 servo: Merge #18936 - style: Keep track of document state dependencies (from heycam:document-state); r=emilio
Servo half of https://bugzilla.mozilla.org/show_bug.cgi?id=1390694, reviewed there by Emilio.

Source-Repo: https://github.com/servo/servo
Source-Revision: 44eeb1999b2bf1729ff8ae41438c687f6380e33d
2017-10-20 02:56:47 -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
Emilio Cobos Álvarez
e0c0ac2b2c servo: Merge #18934 - style: Make MatchingContext generic over SelectorImpl (from emilio:matching-context-generic); r=xidorn,heycam
This will help Xidorn implement tree pseudos, and in general makes sense,
allowing to put specific matching data in a selectors implementation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6268f482084179ed54e63028da038ae39c947359
2017-10-19 05:43:51 -05:00
Martin Robinson
1a6032c4e5 servo: Merge #18921 - Fix duplicate stacking context creation for anonymous Flows (from mrobinson:incremental-stacking-context-ids); r=emilio
Anonymous nodes were previously creating duplicate stacking contexts,
one for each node in the anonymous node chain. This change eliminates
that for tables.

Additionally the use of stacking context ids based on node addresses is
no longer necessary since stacking contexts no longer control scrolling.
This is the first step in eliminating the dependency between node
addresses and ClipScrollNodes which causes issues like #16425.

<!-- 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
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they are covered by existing tests.

<!-- 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: 865b9aea357d4b51696d4a0343521a0f2a20bcf1
2017-10-18 21:34:23 -05:00
Nicholas Nethercote
45f978e547 servo: Merge #18938 - Replace all uses of the heapsize crate with malloc_size_of (from nnethercote:bug-1409255); r=SimonSapin
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`.
`malloc_size_of` is better -- it handles various cases that `heapsize` does not
-- so this patch changes Servo to use `malloc_size_of`.

This patch makes the following changes to the `malloc_size_of` crate.

- Adds `MallocSizeOf` trait implementations for numerous types, some built-in
  (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`).

- Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't
  support that operation.

- For `HashSet`/`HashMap`, falls back to a computed estimate when
  `enclosing_size_of_op` isn't available.

- Adds an extern "C" `malloc_size_of` function that does the actual heap
  measurement; this is based on the same functions from the `heapsize` crate.

This patch makes the following changes elsewhere.

- Converts all the uses of `heapsize` to instead use `malloc_size_of`.

- Disables the "heapsize"/"heap_size" feature for the external crates that
  provide it.

- Removes the `HeapSizeOf` implementation from `hashglobe`.

- Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of`
  doesn't derive those types, unlike `heapsize`.

<!-- 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
- [ ] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1409255

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because testing is on the Gecko side.

<!-- 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: 4c538b642e4bdfbf42c522c5a59c258a6d14546e
2017-10-18 13:56:05 -05:00
Emilio Cobos Álvarez
cd1986fd76 servo: Merge #18876 - style: Do not expose LocalMatchingContext (from emilio:die-localmatchingcontext-die); r=SimonSapin
This type is a lot of complexity related to a very specific thing such as the
hover and active quirk.

Instead of that, move `nesting_level` to `MatchingContext`, and simplify all
this computing whether the quirk applies upfront, for each complex selector we
test.

This is less error-prone, and also allows simplifying more stuff in a bit.

Also, this makes the hover and active quirk work in Servo with no extra effort.

Source-Repo: https://github.com/servo/servo
Source-Revision: a200fb4b9df4e7461b4238fe3a6d49881f438e25
2017-10-15 02:21:47 -05:00
J. Ryan Stinnett
ba97a60037 servo: Merge #18844 - Limit visited cascade for reparenting (from jryans:stylo-visited-reparent-cascade); r=emilio
The specialized cascade flow in `stylist::compute_style_with_inputs` (used with
reparenting) currently computes all properties for visited styles, but we only
need visited-dependent properties.

This adds the cascade flag to reduce the work to visited-dependent properties
only, like we do for the regular cascade flow.

https://bugzilla.mozilla.org/show_bug.cgi?id=1407813

Source-Repo: https://github.com/servo/servo
Source-Revision: 82a013ae073e1e546d80866710ca395bb71cab7c
2017-10-12 01:04:57 -05:00
Emilio Cobos Álvarez
4edd12ae04 servo: Merge #18794 - style: use the XBL styleset quirks mode to match XBL rules (from emilio:xbl-quirks-mode); r=heycam
This fixes bug 1405543.

MozReview-Commit-ID: Dv3mt3Fb8Yp
Source-Repo: https://github.com/servo/servo
Source-Revision: 604cc4e311f1aec72599d43c5a0138b04c8b780d
2017-10-09 05:04:15 -05:00
Bobby Holley
493b7e524d servo: Merge #18779 - DiagnosticHashMap (from bholley:canary_and_journal); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1405879

Source-Repo: https://github.com/servo/servo
Source-Revision: 3f4afbafab7c0a8bfcf596ea444269bb01af3955
2017-10-07 14:55:03 -05:00
Boris Zbarsky
edfd84f202 servo: Merge #18767 - Don't assume that inputs to compute_style_with_inputs have any rules (from bzbarsky:fix-inputs-no-rules); r=heycam
It could be a text style, which never has any rules attached to it.

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1406222

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- 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: 117dbfaac20d8a388cf3cf5d2bc103b9d6249ee8
2017-10-06 01:53:12 -05:00
Bobby Holley
691fecfbfd servo: Merge #18732 - Revert #18668 - Add mprotect diagnostics for HashMap crash (except for round-up-to-page behavior) (from bholley:revert_mprotect_diagnostics); r=bholley
These diagnostics have served their purpose, time to remove them.

https://bugzilla.mozilla.org/show_bug.cgi?id=1403397

Source-Repo: https://github.com/servo/servo
Source-Revision: 0b69887387567d1bbaa93fe874014a925ef9fe05
2017-10-03 14:45:33 -05:00
Emilio Cobos Álvarez
b946022394 servo: Merge #18692 - style: multiple cleanups (from emilio:cleanups); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 4d95e2cd46b7f47f28970153c14a565afdef2bc3
2017-10-01 13:30:18 -05:00