gecko-dev/servo/components
Emilio Cobos Álvarez 19f515e175 servo: Merge #16641 - Bug 1360399: Don't deduplicate revalidation selectors. r=bholley (from emilio:dupedupedupedupe); r=bholley
It's unfortunate, but it's a correctness issue. I was looking at the
expectations update here:

 * https://hg.mozilla.org/integration/autoland/rev/659cddddd434

And investigating it I realised that it's wrong to coalesce selectors like that,
because we keep the bloom filter flags.

So in the test cases disabled, we have a selector that looks like this:

```
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child) {
    -moz-script-level: +1;
    -moz-math-display: inline;
}
```

And an element that looks like this:

```
<msubsup><mi></mi><mi></mi></msubsup>
```

We're only inserting the first selector msub > :not(:first-child) into the set,
so when we're going to match the <mi> elements we fast-reject it in both cases
due to the bloom filter, so they share style.

I can't see an easy way to fix this keeping the deduplication. If we keep it, we
need to remove the bloom filter optimization, which means that we'd trash the
cache for every first-child in the document (the :not(:first-child) effectively
becomes a global rule).

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

Source-Repo: https://github.com/servo/servo
Source-Revision: eb975ab890b21c6a5c55716151c0c5eb144cb0d9

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 050be3042ec6e90bed7cbb9fdb24bcb10b5a20cc
2017-04-27 19:59:25 -05:00
..
atoms servo: Merge #16455 - Bug 1354970 - Add @counter-style rules (from servo:counter-style); r=upsuper 2017-04-26 00:59:58 -05:00
bluetooth servo: Merge #16061 - Use servo_config::opts only on linux target (from methyl:master); r=Manishearth 2017-03-21 10:18:25 -07:00
bluetooth_traits servo: Merge #15588 - Update serde to 0.9 (from servo:serde); r=SimonSapin 2017-02-18 12:10:26 -08:00
canvas servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
canvas_traits servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
compositing servo: Merge #15794 - Notify embedder when history changes (from paulrouget:head_parsed_url); r=asajeffrey 2017-04-25 14:14:31 -05:00
config servo: Merge #15773 - Android life cycle improvements and Gradle integration (from MortimerGoro:android_improvements); r=larsbergstrom,fabricedesre 2017-04-21 15:52:13 -05:00
constellation servo: Merge #15794 - Notify embedder when history changes (from paulrouget:head_parsed_url); r=asajeffrey 2017-04-25 14:14:31 -05:00
debugger servo: Merge #16013 - Enable the debugger on Android (from nox:mio); r=larsbergstrom 2017-03-17 08:36:27 -07:00
deny_public_fields servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
devtools servo: Merge #16495 - Make tidy check that opening and closing braces that begin a line do … (from coalman:tidy-brace-alignment); r=emilio 2017-04-19 03:06:31 -05:00
devtools_traits servo: Merge #15868 - Update Hyper and OpenSSL (from servo:hyper); r=jdm 2017-03-31 11:46:09 -05:00
dom_struct servo: Merge #15715 - Make #[dom_struct] a proc_macro attribute (from nox:custom-derive); r=SimonSapin 2017-02-24 05:56:30 -08:00
domobject_derive servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
geometry servo: Merge #15680 - Rename ScreenPx to DeviceIndependentPixel (from glennw:zoom-wip); r=mbrubeck 2017-02-21 20:45:20 -08:00
gfx servo: Merge #16551 - Update WR (improved double border quality, minor API changes) (from glennw:update-wr-mostly-borders); r=jdm 2017-04-23 17:50:08 -05:00
gfx_traits servo: Merge #16531 - Eliminate ScrollRootId (from mrobinson:clip-id); r=glennw 2017-04-20 01:55:33 -05:00
jstraceable_derive servo: Merge #15752 - Update syn to 0.11 (from nox:syn); r=SimonSapin 2017-02-27 05:48:43 -08:00
layout servo: Merge #16628 - Parse interpolation hints (fixes #15166) (from nox:INTERPOL); r=emilio 2017-04-27 10:41:04 -05:00
layout_thread servo: Merge #16585 - Don’t log CSS parsing errors in user-agent stylesheets (from servo:log); r=emilio 2017-04-24 05:05:51 -05:00
layout_traits servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm 2017-03-27 13:50:46 -07:00
msg servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
net servo: Merge #16495 - Make tidy check that opening and closing braces that begin a line do … (from coalman:tidy-brace-alignment); r=emilio 2017-04-19 03:06:31 -05:00
net_traits servo: Merge #16288 - Kill ResourceGroup (from nox:net); r=jdm 2017-04-07 05:53:31 -05:00
profile servo: Merge #16297 - Remove servo_url dependency for geckolib (from upsuper:stylo-servo-url); r=SimonSapin 2017-04-07 04:34:47 -05:00
profile_traits servo: Merge #15670 - Kill the plugins crate and its clippy support (from nox:die-plugins-die); r=Manishearth 2017-02-21 05:15:15 -08:00
rand servo: Merge #15107 - convert less interesting debug! logs to traces (from DexterHaslem:15100-convert-debug-to-traces); r=cbrewster 2017-01-18 21:29:59 -08:00
range servo: Merge #15588 - Update serde to 0.9 (from servo:serde); r=SimonSapin 2017-02-18 12:10:26 -08:00
remutex servo: Merge #15107 - convert less interesting debug! logs to traces (from DexterHaslem:15100-convert-debug-to-traces); r=cbrewster 2017-01-18 21:29:59 -08:00
script servo: Merge #16630 - Make stylo traverse Native Anonymous Content, fixing a bunch of restyle bugs (from emilio:nac); r=bholley,hiro 2017-04-27 07:39:42 -05:00
script_layout_interface servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
script_plugins servo: Merge #16619 - Update rustc to 1.18.0-nightly (b0a4074c5 2017-04-26) (from servo:rustup); r=jdm 2017-04-26 11:30:36 -05:00
script_traits servo: Merge #16592 - added origin to globalscope (from avadacatavra:globalscope); r=jdm 2017-04-24 08:54:07 -05:00
selectors servo: Merge #16641 - Bug 1360399: Don't deduplicate revalidation selectors. r=bholley (from emilio:dupedupedupedupe); r=bholley 2017-04-27 19:59:25 -05:00
servo servo: Merge #16048 - Make image cache per-document rather than global (from ferjm:issue-15701-image-cache); r=jdm 2017-03-27 13:50:46 -07:00
style servo: Merge #16641 - Bug 1360399: Don't deduplicate revalidation selectors. r=bholley (from emilio:dupedupedupedupe); r=bholley 2017-04-27 19:59:25 -05:00
style_traits servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio 2017-04-24 18:47:00 -05:00
url servo: Merge #16297 - Remove servo_url dependency for geckolib (from upsuper:stylo-servo-url); r=SimonSapin 2017-04-07 04:34:47 -05:00
webdriver_server servo: Merge #16495 - Make tidy check that opening and closing braces that begin a line do … (from coalman:tidy-brace-alignment); r=emilio 2017-04-19 03:06:31 -05:00
webvr servo: Merge #16612 - Update WR (groove/ridge borders, mix-blend-mode opts) (from glennw:update-wr-groove-ridge-2); r=jdm 2017-04-26 07:56:32 -05:00
webvr_traits servo: Merge #16260 - Gamepad API implementation (from MortimerGoro:gamepad); r=nox,larsbergstrom 2017-04-13 16:10:42 -05:00