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

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

Issue 2863483002: Remove CHECK_FAST_PATH_SLOW_PATH_EQUALITY (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
« no previous file with comments | « third_party/WebKit/Source/core/layout/PaintInvalidationState.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
index 37b71ceb80fd4c040f1708e9b4325802f94231ea..800b4758b32939345b2e47769537dbe5a005520c 100644
--- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
+++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.cpp
@@ -49,13 +49,7 @@ PaintInvalidationState::PaintInvalidationState(
paint_invalidation_container_),
container_for_absolute_position_(layout_view),
pending_delayed_paint_invalidations_(pending_delayed_paint_invalidations),
- painting_layer_(*layout_view.Layer())
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- ,
- m_canCheckFastPathSlowPathEquality(layoutView ==
- m_paintInvalidationContainer)
-#endif
-{
+ painting_layer_(*layout_view.Layer()) {
DCHECK(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled());
if (!SupportsCachedOffsets(layout_view)) {
@@ -98,13 +92,7 @@ PaintInvalidationState::PaintInvalidationState(
svg_transform_(parent_state.svg_transform_),
pending_delayed_paint_invalidations_(
parent_state.pending_delayed_paint_invalidations_),
- painting_layer_(parent_state.ChildPaintingLayer(current_object))
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- ,
- m_canCheckFastPathSlowPathEquality(
- parentState.m_canCheckFastPathSlowPathEquality)
-#endif
-{
+ painting_layer_(parent_state.ChildPaintingLayer(current_object)) {
DCHECK(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled());
DCHECK_EQ(&painting_layer_, current_object.PaintingLayer());
@@ -222,9 +210,6 @@ PaintInvalidationState::PaintInvalidationState(
clipped_ = false; // Will be updated in updateForChildren().
paint_offset_ = LayoutSize();
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- m_canCheckFastPathSlowPathEquality = true;
-#endif
return;
}
@@ -276,12 +261,7 @@ void PaintInvalidationState::UpdateForCurrentObject(
// just assume no clip. Clip on fixed-position is rare, in case that
// paintInvalidationContainer crosses frame boundary and the LayoutView is
// clipped by something in owner document.
- if (clipped_) {
- clipped_ = false;
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- m_canCheckFastPathSlowPathEquality = false;
-#endif
- }
+ clipped_ = false;
return;
}
@@ -441,11 +421,6 @@ LayoutPoint PaintInvalidationState::ComputeLocationInBacking(
if (current_object_.IsSVGChild())
point = svg_transform_.MapPoint(point);
point += FloatPoint(paint_offset_);
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- DCHECK_EQ(point, slowLocalOriginToAncestorPoint(
- m_currentObject, m_paintInvalidationContainer,
- FloatPoint()));
-#endif
} else {
point = SlowLocalToAncestorPoint(
current_object_, *paint_invalidation_container_, FloatPoint());
@@ -483,11 +458,6 @@ LayoutRect PaintInvalidationState::ComputeVisualRectInBackingForSVG() const {
rect.Move(paint_offset_);
if (clipped_)
rect.Intersect(clip_rect_);
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- LayoutRect slowPathRect = SVGLayoutSupport::visualRectInAncestorSpace(
- m_currentObject, *m_paintInvalidationContainer);
- assertFastPathAndSlowPathRectsEqual(rect, slowPathRect);
-#endif
} else {
// TODO(wangxianzhu): Sometimes m_cachedOffsetsEnabled==false doesn't mean
// we can't use cached m_svgTransform. We can use hybrid fast path (for SVG)
@@ -533,17 +503,9 @@ void PaintInvalidationState::MapLocalRectToPaintInvalidationContainer(
#endif
if (cached_offsets_enabled_) {
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- LayoutRect slowPathRect(rect);
- slowMapToVisualRectInAncestorSpace(
- m_currentObject, *m_paintInvalidationContainer, slowPathRect);
-#endif
rect.Move(paint_offset_);
if (clipped_)
rect.Intersect(clip_rect_);
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
- assertFastPathAndSlowPathRectsEqual(rect, slowPathRect);
-#endif
} else {
SlowMapToVisualRectInAncestorSpace(current_object_,
*paint_invalidation_container_, rect);
@@ -580,63 +542,6 @@ PaintLayer& PaintInvalidationState::PaintingLayer() const {
return painting_layer_;
}
-#ifdef CHECK_FAST_PATH_SLOW_PATH_EQUALITY
-
-static bool mayHaveBeenSaturated(LayoutUnit value) {
- // This is not accurate, just to avoid too big values.
- return value.abs() >= LayoutUnit::max() / 2;
-}
-
-static bool mayHaveBeenSaturated(const LayoutRect& rect) {
- return mayHaveBeenSaturated(rect.x()) || mayHaveBeenSaturated(rect.y()) ||
- mayHaveBeenSaturated(rect.width()) ||
- mayHaveBeenSaturated(rect.height());
-}
-
-void PaintInvalidationState::assertFastPathAndSlowPathRectsEqual(
- const LayoutRect& fastPathRect,
- const LayoutRect& slowPathRect) const {
- if (!m_canCheckFastPathSlowPathEquality)
- return;
-
- // TODO(crbug.com/597903): Fast path and slow path should generate equal empty
- // rects.
- if (fastPathRect.isEmpty() && slowPathRect.isEmpty())
- return;
-
- if (fastPathRect == slowPathRect)
- return;
-
- // LayoutUnit uses saturated arithmetic operations. If any interim or final
- // result is saturated, the same operations in different order produce
- // different results. Don't compare results if any of them may have been
- // saturated.
- if (mayHaveBeenSaturated(fastPathRect) || mayHaveBeenSaturated(slowPathRect))
- return;
-
- // Tolerate the difference between the two paths when crossing frame
- // boundaries.
- if (m_currentObject.view() != m_paintInvalidationContainer->view()) {
- LayoutRect inflatedFastPathRect = fastPathRect;
- inflatedFastPathRect.inflate(1);
- if (inflatedFastPathRect.contains(slowPathRect))
- return;
- LayoutRect inflatedSlowPathRect = slowPathRect;
- inflatedSlowPathRect.inflate(1);
- if (inflatedSlowPathRect.contains(fastPathRect))
- return;
- }
-
- LOG(ERROR) << "Fast path visual rect differs from slow path: fast: "
- << fastPathRect.toString()
- << " vs slow: " << slowPathRect.toString();
- showLayoutTree(&m_currentObject);
-
- NOTREACHED();
-}
-
-#endif // CHECK_FAST_PATH_SLOW_PATH_EQUALITY
-
PaintInvalidatorContextAdapter::PaintInvalidatorContextAdapter(
const PaintInvalidationState& paint_invalidation_state)
: PaintInvalidatorContext(nullptr),
« no previous file with comments | « third_party/WebKit/Source/core/layout/PaintInvalidationState.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698