Index: third_party/WebKit/Source/core/style/ComputedStyle.cpp |
diff --git a/third_party/WebKit/Source/core/style/ComputedStyle.cpp b/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
index 1125edfb810c2f9ad03bb2d47b7aa784c22e5bff..bfb7efe5293c98400e4b136fd40f1c01062127ca 100644 |
--- a/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
+++ b/third_party/WebKit/Source/core/style/ComputedStyle.cpp |
@@ -547,23 +547,6 @@ bool ComputedStyle::DiffNeedsFullLayoutAndPaintInvalidation( |
return true; |
if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->appearance_ != |
- other.rare_non_inherited_data_->appearance_ || |
- rare_non_inherited_data_->margin_before_collapse_ != |
- other.rare_non_inherited_data_->margin_before_collapse_ || |
- rare_non_inherited_data_->margin_after_collapse_ != |
- other.rare_non_inherited_data_->margin_after_collapse_ || |
- rare_non_inherited_data_->line_clamp_ != |
- other.rare_non_inherited_data_->line_clamp_ || |
- rare_non_inherited_data_->text_overflow_ != |
- other.rare_non_inherited_data_->text_overflow_ || |
- rare_non_inherited_data_->shape_margin_ != |
- other.rare_non_inherited_data_->shape_margin_ || |
- rare_non_inherited_data_->order_ != |
- other.rare_non_inherited_data_->order_ || |
- HasFilters() != other.HasFilters()) |
- return true; |
- |
if (rare_non_inherited_data_->grid_data_.Get() != |
other.rare_non_inherited_data_->grid_data_.Get() && |
*rare_non_inherited_data_->grid_data_.Get() != |
@@ -604,21 +587,6 @@ bool ComputedStyle::DiffNeedsFullLayoutAndPaintInvalidation( |
other.rare_non_inherited_data_->counter_directives_.get(); |
if (!(map_a == map_b || (map_a && map_b && *map_a == *map_b))) |
return true; |
- |
- // We only need do layout for opacity changes if adding or losing opacity |
- // could trigger a change |
- // in us being a stacking context. |
- if (IsStackingContext() != other.IsStackingContext() && |
- HasOpacity() != other.HasOpacity()) { |
- // FIXME: We would like to use SimplifiedLayout here, but we can't quite |
- // do that yet. We need to make sure SimplifiedLayout can operate |
- // correctly on LayoutInlines (we will need to add a |
- // selfNeedsSimplifiedLayout bit in order to not get confused and taint |
- // every line). In addition we need to solve the floating object issue |
- // when layers come and go. Right now a full layout is necessary to keep |
- // floating object lists sane. |
- return true; |
- } |
} |
if (IsDisplayTableType(Display())) { |
@@ -665,57 +633,12 @@ bool ComputedStyle::DiffNeedsFullLayoutAndPaintInvalidation( |
} |
bool ComputedStyle::DiffNeedsFullLayout(const ComputedStyle& other) const { |
- if (ComputedStyleBase::DiffNeedsFullLayout(*this, other)) |
- return true; |
- |
- if (box_data_.Get() != other.box_data_.Get()) { |
- if (box_data_->vertical_align_length_ != |
- other.box_data_->vertical_align_length_) |
- return true; |
- } |
- |
- if (VerticalAlign() != other.VerticalAlign() || |
- GetPosition() != other.GetPosition()) |
- return true; |
- |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->align_content_ != |
- other.rare_non_inherited_data_->align_content_ || |
- rare_non_inherited_data_->align_items_ != |
- other.rare_non_inherited_data_->align_items_ || |
- rare_non_inherited_data_->align_self_ != |
- other.rare_non_inherited_data_->align_self_ || |
- rare_non_inherited_data_->justify_content_ != |
- other.rare_non_inherited_data_->justify_content_ || |
- rare_non_inherited_data_->justify_items_ != |
- other.rare_non_inherited_data_->justify_items_ || |
- rare_non_inherited_data_->justify_self_ != |
- other.rare_non_inherited_data_->justify_self_ || |
- rare_non_inherited_data_->contain_ != |
- other.rare_non_inherited_data_->contain_) |
- return true; |
- } |
- |
- return false; |
+ return ComputedStyleBase::DiffNeedsFullLayout(*this, other); |
} |
bool ComputedStyle::DiffNeedsPaintInvalidationSubtree( |
const ComputedStyle& other) const { |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->effective_blend_mode_ != |
- other.rare_non_inherited_data_->effective_blend_mode_ || |
- rare_non_inherited_data_->isolation_ != |
- other.rare_non_inherited_data_->isolation_) |
- return true; |
- |
- if (rare_non_inherited_data_->mask_ != |
- other.rare_non_inherited_data_->mask_ || |
- rare_non_inherited_data_->mask_box_image_ != |
- other.rare_non_inherited_data_->mask_box_image_) |
- return true; |
- } |
- |
- return false; |
+ return ComputedStyleBase::DiffNeedsPaintInvalidationSubtree(*this, other); |
} |
bool ComputedStyle::DiffNeedsPaintInvalidationObject( |
@@ -727,35 +650,6 @@ bool ComputedStyle::DiffNeedsPaintInvalidationObject( |
*background_data_ != *other.background_data_) |
return true; |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->user_drag_ != |
- other.rare_non_inherited_data_->user_drag_ || |
- rare_non_inherited_data_->object_fit_ != |
- other.rare_non_inherited_data_->object_fit_ || |
- rare_non_inherited_data_->object_position_ != |
- other.rare_non_inherited_data_->object_position_ || |
- !BoxShadowDataEquivalent(other) || !ShapeOutsideDataEquivalent(other) || |
- !ClipPathDataEquivalent(other) || |
- !rare_non_inherited_data_->outline_.VisuallyEqual( |
- other.rare_non_inherited_data_->outline_) || |
- (VisitedLinkBorderLeftColor() != other.VisitedLinkBorderLeftColor() && |
- BorderLeftWidth()) || |
- (VisitedLinkBorderRightColor() != other.VisitedLinkBorderRightColor() && |
- BorderRightWidth()) || |
- (VisitedLinkBorderBottomColor() != |
- other.VisitedLinkBorderBottomColor() && |
- BorderBottomWidth()) || |
- (VisitedLinkBorderTopColor() != other.VisitedLinkBorderTopColor() && |
- BorderTopWidth()) || |
- (VisitedLinkOutlineColor() != other.VisitedLinkOutlineColor() && |
- OutlineWidth()) || |
- (VisitedLinkBackgroundColor() != other.VisitedLinkBackgroundColor())) |
- return true; |
- } |
- |
- if (Resize() != other.Resize()) |
- return true; |
- |
if (rare_non_inherited_data_->paint_images_) { |
for (const auto& image : *rare_non_inherited_data_->paint_images_) { |
if (DiffNeedsPaintInvalidationObjectForPaintImage(image, other)) |
@@ -803,22 +697,15 @@ bool ComputedStyle::DiffNeedsPaintInvalidationObjectForPaintImage( |
// which implies visual rect update. |
bool ComputedStyle::DiffNeedsVisualRectUpdate( |
const ComputedStyle& other) const { |
- // Visual rect is empty if visibility is hidden. |
- if (ComputedStyleBase::DiffNeedsVisualRectUpdate(*this, other)) |
- return true; |
- |
- // Need to update visual rect of the resizer. |
- if (Resize() != other.Resize()) |
- return true; |
- |
- return false; |
+ // Visual rect is empty if visibility is hidden. Also need to update visual |
+ // rect of the resizer. |
+ return ComputedStyleBase::DiffNeedsVisualRectUpdate(*this, other); |
} |
void ComputedStyle::UpdatePropertySpecificDifferences( |
const ComputedStyle& other, |
StyleDifference& diff) const { |
- if (box_data_->z_index_ != other.box_data_->z_index_ || |
- IsStackingContext() != other.IsStackingContext()) |
+ if (ComputedStyleBase::UpdatePropertySpecificDifferencesZIndex(*this, other)) |
diff.SetZIndexChanged(); |
if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
@@ -834,34 +721,19 @@ void ComputedStyle::UpdatePropertySpecificDifferences( |
diff.SetTransformChanged(); |
} |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->opacity_ != |
- other.rare_non_inherited_data_->opacity_) |
- diff.SetOpacityChanged(); |
- } |
+ if (ComputedStyleBase::UpdatePropertySpecificDifferencesOpacity(*this, other)) |
+ diff.SetOpacityChanged(); |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if ((rare_non_inherited_data_->filter_ != |
- other.rare_non_inherited_data_->filter_) || |
- !ReflectionDataEquivalent(other)) |
- diff.SetFilterChanged(); |
- } |
+ if (ComputedStyleBase::UpdatePropertySpecificDifferencesFilter(*this, other)) |
+ diff.SetFilterChanged(); |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (!BoxShadowDataEquivalent(other) || |
- !rare_non_inherited_data_->outline_.VisuallyEqual( |
- other.rare_non_inherited_data_->outline_)) |
- diff.SetNeedsRecomputeOverflow(); |
- } |
- |
- if (!BorderVisualOverflowEqual(other)) |
+ if (ComputedStyleBase:: |
+ UpdatePropertySpecificDifferencesNeedsRecomputeOverflow(*this, other)) |
diff.SetNeedsRecomputeOverflow(); |
- if (rare_non_inherited_data_.Get() != other.rare_non_inherited_data_.Get()) { |
- if (rare_non_inherited_data_->backdrop_filter_ != |
- other.rare_non_inherited_data_->backdrop_filter_) |
- diff.SetBackdropFilterChanged(); |
- } |
+ if (ComputedStyleBase::UpdatePropertySpecificDifferencesBackdropFilter(*this, |
+ other)) |
+ diff.SetBackdropFilterChanged(); |
if (!diff.NeedsFullPaintInvalidation()) { |
if ((inherited_data_->color_ != other.inherited_data_->color_ || |
@@ -870,15 +742,6 @@ void ComputedStyle::UpdatePropertySpecificDifferences( |
HasSimpleUnderlineInternal() != other.HasSimpleUnderlineInternal() || |
visual_data_->text_decoration_ != |
other.visual_data_->text_decoration_) || |
- (rare_non_inherited_data_.Get() != |
- other.rare_non_inherited_data_.Get() && |
- (rare_non_inherited_data_->text_decoration_style_ != |
- other.rare_non_inherited_data_->text_decoration_style_ || |
- rare_non_inherited_data_->text_decoration_color_ != |
- other.rare_non_inherited_data_->text_decoration_color_ || |
- rare_non_inherited_data_->visited_link_text_decoration_color_ != |
- other.rare_non_inherited_data_ |
- ->visited_link_text_decoration_color_)) || |
ComputedStyleBase:: |
UpdatePropertySpecificDifferencesTextDecorationOrColor(*this, |
other)) { |