зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
25ff55f820
Коммит
9bd39a3393
|
@ -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(
|
||||
|
|
Загрузка…
Ссылка в новой задаче