gecko-dev/servo/components
Emilio Cobos Álvarez e5e108a524 Bug 1453702: [css-display] Move unboxing to style, and handle display: contents before other suppressions. r=mats,xidorn
This also adopts the resolution of [1] while at it, and switches XUL to not
support display: contents until a use case appears.

This makes our behavior consistent both with the spec and also in terms of
handling dynamic changes to stuff that would otherwise get suppressed.

Also makes us consistent with both Blink and WebKit in terms of computed style.
We were the only ones respecting "behaves as display: none" without actually
computing to display: none. Will file a spec issue to get that changed.

It also makes us match Blink and WebKit in terms of respecting display: contents
before other suppressions, see the reftest which I didn't write as a WPT
(because there's no spec supporting neither that or the opposite of what we do),
where a <g> element respects display: contents even though if it had any other
kind of display value we'd suppress the frame for it and all the descendants
since it's an SVG element in a non-SVG subtree.

Also, this removes the page-break bit from the display: contents loop, which I
think is harmless.

As long as the tests under style are based in namespace id / node name /
traversal parent, this should not make style sharing go wrong in any way, since
that's the first style sharing check we do at [2].

The general idea under this change is making all nodes with computed style of
display: contents actually honor it. Otherwise there's no way of making the
setup sound except re-introducing something similar to all the state tracking
removed in bug 1303605.

[1]: https://github.com/w3c/csswg-drafts/issues/2167
[2]: https://searchfox.org/mozilla-central/rev/fca4426325624fecbd493c31389721513fc49fef/servo/components/style/sharing/mod.rs#700

MozReview-Commit-ID: JoCKnGYEleD
2018-04-16 12:56:30 +02:00
..
allocator servo: Merge #19061 - FreeType: don’t use usable_size() as deallocation size (from servo:ft-alloc); r=mbrubeck 2017-10-30 12:40:34 -05:00
atoms servo: Merge #20181 - Fire the pageshow event at the end of the page load (from fabricedesre:end-load-pageshow); r=jdm 2018-03-06 10:49:51 -05:00
bluetooth servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
bluetooth_traits servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
canvas servo: Merge #20539 - Moar WebGL improvements, again (from servo:webgl); r=emilio 2018-04-05 03:31:41 -04:00
canvas_traits servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
compositing servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
config servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
constellation servo: Merge #20579 - Replace initial about:blank loads (from cbrewster:about_blank_replace); r=asajeffrey 2018-04-11 11:12:52 -04:00
debugger servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
deny_public_fields servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
devtools servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
devtools_traits servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
dom_struct servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
domobject_derive servo: Merge #20246 - Use higher level handles from JS bindings (from marmistrz:test-lifetime-handles); r=jdm 2018-03-28 16:22:01 -04:00
fallible servo: Merge #19494 - Update smallvec to 0.6 (from Eijebong:smallvec); r=emilio 2017-12-05 13:44:19 -06:00
geometry servo: Merge #20071 - Use typed coordinates more (from paulrouget:typedsize); r=glennw 2018-03-16 17:18:24 -04:00
gfx servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
gfx_traits servo: Merge #19933 - Update WebRender (from mrobinson:update-wr); r=emilio 2018-02-06 09:12:58 -05:00
hashglobe servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
jstraceable_derive servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
layout servo: Merge #20573 - Add support for percentages in column-gap (from Ramshell:issue/20498); r=mbrubeck 2018-04-06 19:48:59 -04:00
layout_thread servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
layout_traits servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
malloc_size_of servo: Merge #20504 - Hide non-Servo heap measurement (from jdm:unbreak); r=bustage 2018-04-02 10:40:02 -04:00
malloc_size_of_derive servo: Merge #20022 - Update syn, quote and synstructure (from Eijebong:syn); r=nox 2018-02-13 11:15:54 -05:00
metrics servo: Merge #20626 - added spec comments for progressive web metrics (from avadacatavra:pwm-spec); r=asajeffrey 2018-04-11 16:33:38 -04:00
msg servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
net servo: Merge #20391 - Measure cache memory usage (from modal17:iss19251); r=jdm 2018-04-02 02:01:50 -04:00
net_traits servo: Merge #20391 - Measure cache memory usage (from modal17:iss19251); r=jdm 2018-04-02 02:01:50 -04:00
nonzero servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
profile servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
profile_traits servo: Merge #20391 - Measure cache memory usage (from modal17:iss19251); r=jdm 2018-04-02 02:01:50 -04:00
rand servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
range servo: Merge #18938 - Replace all uses of the heapsize crate with malloc_size_of (from nnethercote:bug-1409255); r=SimonSapin 2017-10-18 13:56:05 -05:00
remutex servo: Merge #20474 - Use new std::num::NonZero* types instead of deprecated core::nonzero::NonZero (from servo:nonzero); r=nox 2018-04-09 15:44:16 -04:00
script servo: Merge #20579 - Replace initial about:blank loads (from cbrewster:about_blank_replace); r=asajeffrey 2018-04-11 11:12:52 -04:00
script_layout_interface servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm 2018-04-02 22:24:34 -04:00
script_plugins servo: Merge #19098 - Make the unrooted_must_root conditional on a default Cargo feature (from servo:minimal-plugin); r=jdm 2017-11-02 09:28:13 -05:00
script_traits servo: Merge #20447 - NCSU Canvas Rendering Project Initial Steps (from Brody-Eastwood:master); r=jdm 2018-04-02 22:24:34 -04:00
selectors servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth 2018-04-10 21:00:11 -04:00
servo servo: Merge #20517 - Fix the env_logger update (from Eijebong:fix_log); r=mbrubeck 2018-04-03 09:14:41 -04:00
servo_arc servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth 2018-04-10 21:00:11 -04:00
size_of_test
style Bug 1453702: [css-display] Move unboxing to style, and handle display: contents before other suppressions. r=mats,xidorn 2018-04-16 12:56:30 +02:00
style_derive servo: Merge #20275 - Finish cleaning up trait bounds generation in style_derive (from servo:derive-all-the-things); r=emilio 2018-03-12 04:52:02 -04:00
style_traits servo: Merge #20454 - Update to rustc 1.25.0-nightly (bacb5c58d 2018-01-26) (from emilio:rustup); r=SimonSapin 2018-03-29 09:12:45 -04:00
url servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00
webdriver_server servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
webvr servo: Merge #20465 - Bump env_logger to 0.5 and log to 0.4 in every servo crate (from Eijebong:log); r=SimonSapin 2018-03-28 15:08:52 -04:00
webvr_traits servo: Merge #20371 - Bump ipc-channel and bincode (from Eijebong:ipc-channel); r=nox 2018-03-21 09:00:16 -04:00