Commit graph

207 commits

Author SHA1 Message Date
Noemi Erli
f1ef21cbc7 Backed out changeset 8c89fd37b79d (bug 1544242) for failures in browser_rules_shadowdom_slot_rules.js CLOSED TREE 2019-05-01 22:03:06 +03:00
Emilio Cobos Álvarez
f7fc67efda Bug 1545425 - Add parsing support for ::part(). r=heycam
Disabled for now of course. This should be pretty uncontroversial I'd think.

Differential Revision: https://phabricator.services.mozilla.com/D28060

--HG--
extra : moz-landing-system : lando
2019-05-01 17:25:13 +00:00
Emilio Cobos Álvarez
fb5b637f4f Bug 1544242 - Fix selector-matching for nested pseudo-elements. r=heycam,mats
We always include the combinator for pseudo-elements now (not including it was
just an optimization) in order to not match when nested pseudo-elements are
involved.

We could add a more generic check in `matches_simple_selector` like:

```
if element.is_pseudo_element() {
    match *selector {
        Component::PseudoElement(..) |
        Component::NonTSPseudoClass(..) => {},
        _ => return false,
    }
}
```

But even that wouldn't be enough to make selectors like `:hover::marker` not
match on the `::before::marker` pseudo-element, plus that code is really hot.

So for now do the check on the `next_element_for_combinator` function. It's a
bit hacky but it's the best I could came up with...

While at it, simplify some checks to use is_pseudo_element() instead of
implemented_pseudo_element() directly.

Only the Rust patch as-is would make markers for ::before and ::after on list
items not show up, so we also need to switch ::marker to use ProbeMarkerStyle()
rather than ProbePseudoElementStyle(), since the marker should exist even if it
matches no rules.

Differential Revision: https://phabricator.services.mozilla.com/D27529

--HG--
extra : moz-landing-system : lando
2019-05-01 17:19:08 +00:00
Emilio Cobos Álvarez
1dc4cd8f3c Bug 1544242 - Check iterator length in SelectorIter::is_featureless_host_selector. r=heycam
I'm going to unconditionally generate the PseudoElement combinator, and this
causes issues since we'll put the raw `::pseudo` selectors in the host bucket,
which is obviously wrong.

Differential Revision: https://phabricator.services.mozilla.com/D27528

--HG--
extra : moz-landing-system : lando
2019-04-29 05:58:56 +00:00
Emilio Cobos Álvarez
88a1b27597 Bug 1546046 - Remove support for XBL resources. r=TYLin
So much unsound code going away :-)

Differential Revision: https://phabricator.services.mozilla.com/D28380

--HG--
extra : moz-landing-system : lando
2019-04-23 16:43:15 +00:00
Bogdan Tara
ec489aa170 Backed out changeset e85cb54e5944 (bug 1546046) complementary backout after 1470880 was backed out CLOSED TREE 2019-04-23 06:55:29 +03:00
Emilio Cobos Álvarez
daef6a8b67 Bug 1546046 - Remove support for XBL resources. r=TYLin
So much unsound code going away :-)

Differential Revision: https://phabricator.services.mozilla.com/D28380

--HG--
extra : moz-landing-system : lando
2019-04-22 21:57:22 +00:00
Emilio Cobos Álvarez
824fde5850 Bug 1545440 - Don't allow to parse XUL tree pseudo-elements with a single colon. r=mats
Now that they're not exposed to the web we can remove this special case.

Differential Revision: https://phabricator.services.mozilla.com/D28071

--HG--
extra : moz-landing-system : lando
2019-04-19 04:41:17 +00:00
Razvan Maries
74e5a11e50 Backed out changeset 24d0d307385d (bug 1545440) for perma failures on browser_parsable_css.js. CLOSED TREE 2019-04-19 02:06:41 +03:00
Emilio Cobos Álvarez
c80bd43778 Bug 1545440 - Don't allow to parse XUL tree pseudo-elements with a single colon. r=mats
Now that they're not exposed to the web we can remove this special case.

Differential Revision: https://phabricator.services.mozilla.com/D28071

--HG--
extra : moz-landing-system : lando
2019-04-18 15:20:34 +00:00
Emilio Cobos Álvarez
7d7f571903 Bug 1543808 - Refactor the selector parser to make implementing ::part() easier. r=xidorn
::slotted() is already weird in the sense that it supports a pseudo-element
afterwards (so ::slotted(*)::before is valid for example).

::part() is weirder because you are supposed to allow stuff like
::part(foo):hover, ::part(foo):hover::before, etc.

In order to avoid making the already-complex parse_compound_selector more
complex, shuffle stuff so that we pass the progress of our current compound
selector around, and is the parsing code for each selector which decides whether
it's ok to parse at the given point.

Differential Revision: https://phabricator.services.mozilla.com/D27158

--HG--
extra : moz-landing-system : lando
2019-04-16 13:16:56 +00:00
Emilio Cobos Álvarez
2fa8c1c1a2 Bug 1543837 - Reformat recent changes. 2019-04-12 00:25:37 +02:00
Cameron McCormack
6b5853fa8e Bug 1474793 - Part 10.8: Add derived ToShmem implementations. r=emilio
Depends on D17196

Differential Revision: https://phabricator.services.mozilla.com/D17197

--HG--
extra : moz-landing-system : lando
2019-03-30 00:16:25 +00:00
Emilio Cobos Álvarez
b3bd9a6099 Bug 1534726 - Reformat recent style system changes. 2019-03-12 19:01:28 +01:00
Bobby Holley
819658d44b Bug 1521187 - Derive more. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17029
2019-01-22 12:19:22 -08:00
Bobby Holley
c0182b02f9 Bug 1521187 - Add a dependency on derive_more. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17028


--HG--
rename : third_party/rust/semver/.cargo-checksum.json => third_party/rust/semver-0.6.0/.cargo-checksum.json
rename : third_party/rust/semver/Cargo.toml => third_party/rust/semver-0.6.0/Cargo.toml
rename : third_party/rust/semver/README.md => third_party/rust/semver-0.6.0/README.md
rename : third_party/rust/semver/src/lib.rs => third_party/rust/semver-0.6.0/src/lib.rs
rename : third_party/rust/semver/src/version.rs => third_party/rust/semver-0.6.0/src/version.rs
rename : third_party/rust/semver/src/version_req.rs => third_party/rust/semver-0.6.0/src/version_req.rs
2019-01-22 12:19:22 -08:00
Simon Sapin
2720b7c034 Bug 1518045 - Publish selectors 0.21.0 on crates.io. r=emilio
This cherry-picks https://github.com/servo/servo/pull/22577, with the relevant
lockfile update.
2019-01-07 00:53:11 +01:00
Simon Sapin
81312a11be 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
5b2e5c9d79 Bug 1514439 - Fix tidy issues. 2018-12-15 03:55:44 +01:00
Boris Zbarsky
5fda010a9b Bug 1514029. Fix serialization of explicitly case-sensitive attr selectors with a namespace. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D14493

--HG--
extra : moz-landing-system : lando
2018-12-13 23:25:08 +00:00
Emilio Cobos Álvarez
61a51a3800 Bug 1512026 - Handle nested slots correctly in slotted matching and invalidation. r=heycam
The patch and test should be pretty much self-descriptive.

Differential Revision: https://phabricator.services.mozilla.com/D14063

--HG--
extra : moz-landing-system : lando
2018-12-13 02:17:53 +00:00
Boris Zbarsky
d3b02f9991 Bug 1512386. Add support for 's' flag on attribute selectors. r=emilio
We could keep using ParsedCaseSensitivity::CaseSensitive as a temporary stand-in
for "case-sensitive or maybe not depending on what HTML says" until we check the
attribute list, but it seems better to make that explicit.

Differential Revision: https://phabricator.services.mozilla.com/D14093

--HG--
extra : moz-landing-system : lando
2018-12-10 22:24:49 +00:00
Emilio Cobos Álvarez
1f4fecfcd2 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
6c6e4a960d 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)

--HG--
rename : third_party/rust/darling_core/src/macros_private.rs => third_party/rust/darling_core/src/macros.rs
2018-12-03 15:39:11 +02:00
Emilio Cobos Álvarez
6359ab5223 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
4f9e2bcf36 Bug 1506391 - cargo fix --edition. r=emilio 2018-11-11 02:40:21 +01:00
Brindusan Cristian
d67cc09fb1 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
10fbe4919b Bug 1506391 - cargo fix --edition. r=emilio 2018-11-10 21:14:05 +01:00
Emilio Cobos Álvarez
176fa6315c Bug 1505618 - Import formatting changes from servo/servo#22126. 2018-11-08 00:50:12 +01:00
Emilio Cobos Álvarez
bc8766b7fc Bug 1462233 - Implement the env() function with hardcoded zeros for safe-area-inset. r=heycam,firefox-style-system-reviewers
Intent to Implement and Ship: https://groups.google.com/d/msg/mozilla.dev.platform/EVKyR1B87T0/_l-_qK8SAAAJ

Differential Revision: https://phabricator.services.mozilla.com/D9609

--HG--
extra : moz-landing-system : lando
2018-11-05 10:39:46 +00:00
Emilio Cobos Álvarez
d62f59fe3d Bug 1502617 - Support ::before / ::after on ::slotted pseudos. r=heycam
See https://github.com/w3c/csswg-drafts/issues/3150 for the issue that would
expand this to all pseudos.

Differential Revision: https://phabricator.services.mozilla.com/D9994
2018-10-29 23:42:22 +01:00
Emilio Cobos Álvarez
0aa7e19522 Bug 1416282 - Assert earlier to try to get a more helpful stack. 2018-10-27 13:18:18 +02:00
Emilio Cobos Álvarez
802b24d578 Bug 1416282 - Back out diagnostics for not being helpful enough at diagnosing.
The selectors that crash seem just corrupted data structures, none of the
selectors from crash dumps make sense, and the ones for which I could trace the
source found no issue.
2018-10-27 13:17:32 +02:00
Emilio Cobos Álvarez
81d70d88d1 Bug 1499386 - Implement @supports selector() syntax. r=heycam
This implements the selector(<complex-selector>) syntax for @supports.

See https://github.com/w3c/csswg-drafts/issues/3207 for explainer and
discussion.

Probably would should wait for that to be sorted out to land this, or maybe we
should put it behind a pref to get the code landed and change our
implementation if the discussion there leads to a change.

Differential Revision: https://phabricator.services.mozilla.com/D8864

--HG--
extra : moz-landing-system : lando
2018-10-17 12:08:14 +00:00
Emilio Cobos Álvarez
e049a50395 Bug 1493435 - Partially revert servo/servo#21746. r=ajeffrey
This reverts the relevant bits from #21746 so that style and dependencies can
build with stable.

This is important because:

 * `selectors` is a published crate.

 * Gecko compiles with stable (more or less).

I reviewed that PR under the assumption that the union feature was stable, since
untagged unions are stable since 1.19, but turns out that smallvec uses non-Copy
types in unions, which are still unstable.

This leaves the union feature used on Servo, so that it gets testing, taking
advantage of features being additive.

This cherry-picks servo/servo#21788.
2018-09-23 13:47:26 +02:00
Andre Bogus
52ad6442dc Bug 1493435 - Update smallvec crate and enable the union feature. r=emilio
We had a mix of 0.6.2 and 0.6.5 (which is the current release),
this unifies to the latest version. It also enables the union
feature which removes the discriminant, reducing memory usage.

This cherry-picks servo/servo#21746.
2018-09-23 13:47:13 +02:00
Emilio Cobos Álvarez
52be7ed562 Bug 1475691 - Fix tidy issues. r=me 2018-09-18 11:48:56 +02:00
Manish Goregaokar
b9dfaa50cb Bug 1475691: servo_arc cleanups for publishing r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D6034

--HG--
extra : moz-landing-system : lando
2018-09-18 09:19:18 +00:00
Anshul Malik
8c98e7eef1 Bug 1491577 - Format components/selectors. r=emilio
This cherry-picks servo/servo#21679.
2018-09-15 19:23:40 +02:00
Simon Sapin
4970761136 Bug 1488172 - Publish selectors v1.20.0. r=emilio
This imports servo/servo#21494.
2018-09-03 14:13:36 +02:00
Nicholas Nethercote
6b176ea952 Bug 1484096 - Remove use of fnv in bloom.rs. r=heycam
To support that, this patch also does the following.

- Removes the insert(), remove() and might_contain() methods, because they are
  specialized versions of insert_hash(), remove_hash(), and
  might_contain_hash(), and they are only used by tests within this file.

- Moves hash() from the top level into create_and_insert_some_stuff().

- Changes create_and_insert_some_stuff() so that instead of hashing consecutive
  integers, it instead hashes stringified consecutive integers, which matches
  real usage a little better.

- Raises the false_positives limit a little to account for the above changes.

--HG--
extra : rebase_source : f839ff86986d5c8a17506a808ba676f69c7ef407
2018-08-17 15:33:22 +10:00
Emilio Cobos Álvarez
4d3c28d75d Bug 1481681: Sync some dependencies with servo. r=me 2018-08-08 01:39:57 +02:00
Emilio Cobos Álvarez
447592a848 Bug 1481156 - Remove unused selectors methods. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D2767

--HG--
extra : moz-landing-system : lando
2018-08-06 23:52:52 +00:00
Cameron McCormack
046bd5fe7f Bug 1475197 - Part 1: Shrink selectors::Component to 24 bytes. r=emilio
This saves about 37 KiB of memory across the UA style sheets.

MozReview-Commit-ID: EoZnlmyWwxX

--HG--
extra : rebase_source : cd8ef0ba838618f9a4583b7d9896caa3a0602199
2018-07-16 12:15:47 +10:00
Nicholas Nethercote
6a531f189d Bug 1477628 - Convert FnvHash{Set,Map} instances to FxHash{Set,Map} (attempt 2). r=heycam 2018-07-27 16:49:04 +10:00
Bogdan Tara
92db9979a0 Backed out changeset 72b855b514f9 (bug 1477628) for rusttests build bustages CLOSED TREE 2018-07-27 07:00:56 +03:00
Nicholas Nethercote
2475b3e62f Bug 1477628 - Convert FnvHash{Set,Map} instances to FxHash{Set,Map}. r=heycam
It doesn't appear to make much difference to performance, but it does let us
remove the `fnv` crate from the repo.
2018-07-27 09:01:15 +10:00
Emilio Cobos Álvarez
68f214df2a Bug 1450250: Make svg:use use an actual shadow tree. r=heycam
Summary:
This fixes a couple fuzz bugs and prevents special-casing <svg:use> even more in
bug 1431255.

Unfortunately not as many hacks went away as I'd have hoped, since we still need
to match document rules, see the linked SVGWG issues.

But blocks_ancestor_combinators goes away, which is nice since it's on a very
hot path.

Test Plan: WPT for style invalidation, covered by existing tests otherwise.

Reviewers: heycam

Tags: #secure-revision

Bug #: 1450250

Differential Revision: https://phabricator.services.mozilla.com/D2154

MozReview-Commit-ID: C4mthjoSNFh
2018-07-20 14:44:51 +02:00
Emilio Cobos Álvarez
b6ebd48752 Bug 1454165 - Make :host() and ::slotted() account for the inner selector's specificity. r=xidorn
As resolved in https://github.com/w3c/csswg-drafts/issues/1915.

Differential Revision: https://phabricator.services.mozilla.com/D1849

--HG--
extra : moz-landing-system : lando
2018-06-28 10:58:06 +00:00
Xidorn Quan
46cae3d7aa Bug 1471104 followup - Upgrade cssparser and revendor.
MozReview-Commit-ID: 74rBgkJEcYd

--HG--
extra : rebase_source : a30d17b3d7e24f1a61c01d1dc442d6ce60c1dde3
extra : source : 8ff268ee87b7392391a6b6aa981f9180c45b27b6
2018-06-27 10:43:21 +10:00