servo/components
Emilio Cobos Álvarez cd04664fb9
style: Use CascadeFlags for what they're for.
Now that we have an Element around on cascade, we can stop using the cascade
flags mechanism to pass various element-related state, like "is this element the
root", or "should it use the item-based display fixup".

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.
2018-01-23 13:18:54 +01:00
..
allocator FreeType: don’t use usable_size() as deallocation size 2017-10-30 18:22:30 +01:00
atoms Bump string_cache, html5ever and xml5ever 2017-12-07 20:37:38 +01:00
bluetooth Bump bitflags to 1.0 in every servo crate 2017-10-30 23:36:06 +01:00
bluetooth_traits Update WR (details below): 2017-10-16 16:33:24 +10:00
canvas Update WR (minimal use of new transaction API). 2018-01-19 15:55:52 +10:00
canvas_traits Update euclid, azure, skia, offscreen_gl_context, plane-split, webrender 2017-12-08 14:32:28 +01:00
compositing Auto merge of #19798 - gootorov:move_cursor_from_mako, r=emilio 2018-01-20 12:10:58 -06:00
config Merge servo_config and servo_config_tests 2018-01-20 15:36:41 +01:00
constellation Auto merge of #19798 - gootorov:move_cursor_from_mako, r=emilio 2018-01-20 12:10:58 -06:00
debugger
deny_public_fields
devtools Update cookie to 0.10 2017-11-24 10:49:14 +01:00
devtools_traits Update cookie to 0.10 2017-11-24 10:49:14 +01:00
dom_struct Upgrade to rustc 1.24.0-nightly (5a2465e2b 2017-12-06) 2017-12-07 13:50:09 +01:00
domobject_derive
fallible Update smallvec to 0.6 2017-12-05 12:03:20 +01:00
geometry Introduce MaxRect trait 2018-01-17 23:29:57 +01:00
gfx Auto merge of #19798 - gootorov:move_cursor_from_mako, r=emilio 2018-01-20 12:10:58 -06:00
gfx_traits Decoupled gfx and metrics 2018-01-15 16:25:51 +01:00
hashglobe Add some FIXME comments about using ptr::NonNull 2018-01-22 17:41:26 +01:00
jstraceable_derive
layout style: Make the TElement type arrive to the cascade function. 2018-01-23 00:57:54 +01:00
layout_thread style: Use CascadeFlags for what they're for. 2018-01-23 13:18:54 +01:00
layout_traits Update WR (details below): 2017-10-16 16:33:24 +10:00
malloc_size_of Use more WebRender types in gfx/display_list 2018-01-17 23:29:57 +01:00
malloc_size_of_derive Overhaul MallocSizeOf and related things. 2017-09-12 12:37:51 +10:00
metrics Decoupled gfx and metrics 2018-01-15 16:25:51 +01:00
msg Merge msg and msg_tests 2018-01-20 15:33:02 +01:00
net Merge net and net_tests 2018-01-20 15:36:09 +01:00
net_traits Merge net_traits and net_traits_tests 2018-01-20 15:36:24 +01:00
nonzero Replace NonZeroU32 and NonZeroUsize with a generic NonZero 2017-10-16 20:19:19 +02:00
profile added time to interactive metrics, refactored metrics to use traits 2017-10-24 21:02:56 +01:00
profile_traits added time to interactive metrics, refactored metrics to use traits 2017-10-24 21:02:56 +01:00
rand Update lazy_static to 1.0 2017-12-04 22:51:13 +01:00
range Replace all uses of the heapsize crate with malloc_size_of. 2017-10-18 22:20:37 +11:00
remutex Merge servo_remutex to servo_remutex_tests 2018-01-20 15:37:04 +01:00
script Avoid the generic writer parameter for PropertyDeclaration serialization. 2018-01-22 14:58:05 -08:00
script_layout_interface style: Use CascadeFlags for what they're for. 2018-01-23 13:18:54 +01:00
script_plugins Make the unrooted_must_root conditional on a default Cargo feature. 2017-11-02 15:08:04 +01:00
script_traits style: Move cursor property out of mako 2018-01-20 19:06:29 +02:00
selectors Auto merge of #19822 - emilio:less-match-public, r=KiChjang 2018-01-19 23:05:18 -06:00
servo Update euclid, azure, skia, offscreen_gl_context, plane-split, webrender 2017-12-08 14:32:28 +01:00
servo_arc Add some FIXME comments about using ptr::NonNull 2018-01-22 17:41:26 +01:00
size_of_test
style style: Use CascadeFlags for what they're for. 2018-01-23 13:18:54 +01:00
style_derive style_derive: Support parse-time aliases. 2017-12-31 09:53:17 +01:00
style_traits style: Move cursor property out of mako 2018-01-20 19:06:29 +02:00
url Replace all uses of the heapsize crate with malloc_size_of. 2017-10-18 22:20:37 +11:00
webdriver_server Update to webdriver 0.33 2017-12-08 08:27:45 -08:00
webvr Update euclid, azure, skia, offscreen_gl_context, plane-split, webrender 2017-12-08 14:32:28 +01:00
webvr_traits Update WR (details below): 2017-10-16 16:33:24 +10:00