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

Unified Diff: third_party/WebKit/Source/core/layout/LayoutBox.h

Issue 2208463003: First step of PaintInvalidator implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: - Created 4 years, 4 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/LayoutBox.h
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.h b/third_party/WebKit/Source/core/layout/LayoutBox.h
index 4c619bb8fd567091e1704f2ccfa12705ce84eb76..8b8c257bfa5cdb863001c3daeb96e65a70c0580a 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBox.h
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.h
@@ -63,7 +63,6 @@ public:
: m_spannerPlaceholder(nullptr)
, m_overrideLogicalContentHeight(-1)
, m_overrideLogicalContentWidth(-1)
- , m_previousBorderBoxSize(LayoutUnit(-1), LayoutUnit(-1))
, m_percentHeightContainer(nullptr)
, m_snapContainer(nullptr)
, m_snapAreas(nullptr)
@@ -76,13 +75,7 @@ public:
LayoutUnit m_overrideLogicalContentHeight;
LayoutUnit m_overrideLogicalContentWidth;
- // Set by LayoutBox::savePreviousBoxSizesIfNeeded().
- LayoutSize m_previousBorderBoxSize;
- LayoutRect m_previousContentBoxRect;
- LayoutRect m_previousLayoutOverflowRect;
-
LayoutUnit m_pageLogicalOffset;
-
LayoutUnit m_paginationStrut;
LayoutBlock* m_percentHeightContainer;
@@ -966,8 +959,16 @@ public:
bool hitTestClippedOutByRoundedBorder(const HitTestLocation& locationInContainer, const LayoutPoint& borderBoxLocation) const;
- bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&) const;
- bool mustInvalidateFillLayersPaintOnHeightChange(const FillLayer&) const;
+ static bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&);
+ static bool mustInvalidateFillLayersPaintOnHeightChange(const FillLayer&);
+
+ bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const;
+ bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const;
+
+ // Returns true if the box intersects the viewport visible to the user.
+ bool intersectsVisibleViewport() const;
+
+ bool hasNonCompositedScrollbars() const final;
protected:
void willBeDestroyed() override;
@@ -999,17 +1000,12 @@ protected:
void addLayerHitTestRects(LayerHitTestRects&, const PaintLayer* currentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect& containerRect) const override;
void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const override;
- PaintInvalidationReason getPaintInvalidationReason(const PaintInvalidationState&,
- const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInvalidationContainer,
- const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInvalidationContainer) const override;
- void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds, const LayoutPoint& positionFromPaintInvalidationContainer) override;
-
PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidationState&) override;
+ PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidatorContext&) const override;
void invalidatePaintOfSubtreesIfNeeded(const PaintInvalidationState& childPaintInvalidationState) override;
bool hasStretchedLogicalWidth() const;
- bool hasNonCompositedScrollbars() const final;
void excludeScrollbars(LayoutRect&, OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const;
LayoutUnit containingBlockLogicalWidthForPositioned(const LayoutBoxModelObject* containingBlock, bool checkForPerpendicularWritingMode = true) const;
@@ -1021,11 +1017,6 @@ protected:
static void computeLogicalTopPositionedOffset(LayoutUnit& logicalTopPos, const LayoutBox* child, LayoutUnit logicalHeightValue, const LayoutBoxModelObject* containerBlock, LayoutUnit containerLogicalHeight);
private:
- bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const;
- bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const;
-
- void invalidatePaintRectClippedByOldAndNewBounds(const LayoutBoxModelObject& paintInvalidationContainer, const LayoutRect&, const LayoutRect& oldBounds, const LayoutRect& newBounds);
-
void updateShapeOutsideInfoAfterStyleChange(const ComputedStyle&, const ComputedStyle* oldStyle);
void updateGridPositionAfterStyleChange(const ComputedStyle*);
void updateScrollSnapMappingAfterStyleChange(const ComputedStyle*, const ComputedStyle* oldStyle);
@@ -1078,10 +1069,6 @@ private:
return *m_rareData.get();
}
- bool needToSavePreviousBoxSizes();
- void savePreviousBoxSizesIfNeeded();
- LayoutSize computePreviousBorderBoxSize(const LayoutSize& previousBoundsSize) const;
-
bool logicalHeightComputesAsNone(SizeType) const;
bool isBox() const = delete; // This will catch anyone doing an unnecessary check.
@@ -1094,9 +1081,6 @@ private:
setMayNeedPaintInvalidation();
}
- // Returns true if the box intersects the viewport visible to the user.
- bool intersectsVisibleViewport() const;
-
virtual bool isInSelfHitTestingPhase(HitTestAction hitTestAction) const { return hitTestAction == HitTestForeground; }
void updateBackgroundAttachmentFixedStatusAfterStyleChange();
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp ('k') | third_party/WebKit/Source/core/layout/LayoutBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698