servo: Merge #19661 - style: Simplify ::-moz-fieldset-content special-casing (from emilio:simplify-fieldset-contents); r=upsuper

The style adjuster knows about the pseudo, so there's no reason to thread that
info down.

There are more simplifications that can be done in followups, cleaning a bit the
cascade flags too, those will come later.

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

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9edac6e97fe86837e59d333cb2ce084cda2ab083
This commit is contained in:
Emilio Cobos Álvarez 2017-12-30 15:12:23 -06:00
Родитель 25ff55f820
Коммит 9bd39a3393
3 изменённых файлов: 7 добавлений и 16 удалений

Просмотреть файл

@ -3084,9 +3084,6 @@ bitflags! {
/// content.
const PROHIBIT_DISPLAY_CONTENTS = 1 << 4;
/// Whether we're styling the ::-moz-fieldset-content anonymous box.
const IS_FIELDSET_CONTENT = 1 << 5;
/// Whether we're computing the style of a link, either visited or
/// unvisited.
const IS_LINK = 1 << 6;

Просмотреть файл

@ -343,12 +343,12 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
fn adjust_for_fieldset_content(
&mut self,
layout_parent_style: &ComputedValues,
flags: CascadeFlags,
) {
use properties::CascadeFlags;
if !flags.contains(CascadeFlags::IS_FIELDSET_CONTENT) {
return;
match self.style.pseudo {
Some(ref p) if p.is_fieldset_content() => {},
_ => return,
}
debug_assert_eq!(self.style.get_box().clone_display(), Display::Block);
// TODO We actually want style from parent rather than layout
// parent, so that this fixup doesn't happen incorrectly when
@ -570,7 +570,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
#[cfg(feature = "gecko")]
{
self.adjust_for_prohibited_display_contents(flags);
self.adjust_for_fieldset_content(layout_parent_style, flags);
self.adjust_for_fieldset_content(layout_parent_style);
}
self.adjust_for_top_layer();
self.blockify_if_necessary(layout_parent_style, flags);

Просмотреть файл

@ -1987,10 +1987,6 @@ pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null:
let pseudo = PseudoElement::from_anon_box_atom(&atom)
.expect("Not an anon box pseudo?");
let mut cascade_flags = CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP;
if pseudo.is_fieldset_content() {
cascade_flags.insert(CascadeFlags::IS_FIELDSET_CONTENT);
}
let metrics = get_metrics_provider_for_product();
// If the pseudo element is PageContent, we should append the precomputed
@ -2023,6 +2019,7 @@ pub extern "C" fn Servo_ComputedValues_GetForAnonymousBox(parent_style_or_null:
page_decls,
);
let cascade_flags = CascadeFlags::SKIP_ROOT_AND_ITEM_BASED_DISPLAY_FIXUP;
data.stylist.precomputed_values_for_pseudo_with_rule_node(
&guards,
&pseudo,
@ -3639,11 +3636,8 @@ pub extern "C" fn Servo_ReparentStyle(
cascade_flags.insert(CascadeFlags::PROHIBIT_DISPLAY_CONTENTS);
}
}
if let Some(pseudo) = pseudo.as_ref() {
if pseudo.is_some() {
cascade_flags.insert(CascadeFlags::PROHIBIT_DISPLAY_CONTENTS);
if pseudo.is_fieldset_content() {
cascade_flags.insert(CascadeFlags::IS_FIELDSET_CONTENT);
}
}
doc_data.stylist.compute_style_with_inputs(