Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(550)

Unified Diff: third_party/WebKit/Source/core/layout/LayoutTable.cpp

Issue 2840723005: Don't always invalidate collapsed borders during table layout (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/LayoutTable.cpp
diff --git a/third_party/WebKit/Source/core/layout/LayoutTable.cpp b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
index 8048a1b435da4df825f9d30d91250efce6231c3f..b5f782ce7e5ea2ea7db8a03b16dbb4fa1a97e6dc 100644
--- a/third_party/WebKit/Source/core/layout/LayoutTable.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
@@ -102,8 +102,12 @@ void LayoutTable::StyleDidChange(StyleDifference diff,
if (!old_style)
return;
- LayoutTableBoxComponent::InvalidateCollapsedBordersOnStyleChange(
- *this, *this, diff, *old_style);
+ if (old_style->BorderCollapse() != StyleRef().BorderCollapse()) {
+ InvalidateCollapsedBorders();
+ } else {
+ LayoutTableBoxComponent::InvalidateCollapsedBordersOnStyleChange(
+ *this, *this, diff, *old_style);
+ }
if (LayoutTableBoxComponent::DoCellsHaveDirtyWidth(*this, *this, diff,
*old_style))
@@ -756,9 +760,6 @@ void LayoutTable::UpdateLayout() {
UpdateLayerTransformAfterLayout();
- // Layout was changed, so probably borders too.
- InvalidateCollapsedBorders();
-
ComputeOverflow(ClientLogicalBottom());
UpdateAfterLayout();
@@ -778,9 +779,6 @@ void LayoutTable::UpdateLayout() {
void LayoutTable::InvalidateCollapsedBorders() {
collapsed_borders_.clear();
- if (!CollapseBorders())
- return;
-
collapsed_borders_valid_ = false;
SetMayNeedPaintInvalidation();
}

Powered by Google App Engine
This is Rietveld 408576698