Index: third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
index 31759c8e2e879a11cd3019d8fe898f88df53c62a..8ab40a46aab57411b83bfe3a0890be6d378f4e86 100644 |
--- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
+++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
@@ -7,6 +7,7 @@ |
#include "core/CoreExport.h" |
#include "platform/geometry/LayoutRect.h" |
+#include "platform/graphics/PaintInvalidationReason.h" |
#include "platform/transforms/AffineTransform.h" |
#include "wtf/Allocator.h" |
#include "wtf/Noncopyable.h" |
@@ -51,13 +52,17 @@ |
// local space (border box space for LayoutBoxes). After invalidation of the current object, |
// before invalidation of the subtrees, this method must be called to apply clip and scroll offset |
// etc. for creating child PaintInvalidationStates. |
- void updateForChildren(); |
+ void updateForChildren(PaintInvalidationReason); |
- bool forcedSubtreeInvalidationWithinContainer() const { return m_forcedSubtreeInvalidationWithinContainer; } |
- void setForceSubtreeInvalidationWithinContainer() { m_forcedSubtreeInvalidationWithinContainer = true; } |
+ bool hasForcedSubtreeInvalidationFlags() const { return m_forcedSubtreeInvalidationFlags; } |
- bool forcedSubtreeInvalidationRectUpdateWithinContainer() const { return m_forcedSubtreeInvalidationRectUpdateWithinContainer; } |
- void setForceSubtreeInvalidationRectUpdateWithinContainer() { m_forcedSubtreeInvalidationRectUpdateWithinContainer = true; } |
+ bool forcedSubtreeInvalidationCheckingWithinContainer() const { return m_forcedSubtreeInvalidationFlags & InvalidationChecking; } |
+ void setForceSubtreeInvalidationCheckingWithinContainer() { m_forcedSubtreeInvalidationFlags |= InvalidationChecking; } |
+ |
+ bool forcedSubtreeFullInvalidationWithinContainer() const { return m_forcedSubtreeInvalidationFlags & FullInvalidation; } |
+ |
+ bool forcedSubtreeInvalidationRectUpdateWithinContainerOnly() const { return m_forcedSubtreeInvalidationFlags == InvalidationRectUpdate; } |
+ void setForceSubtreeInvalidationRectUpdateWithinContainer() { m_forcedSubtreeInvalidationFlags |= InvalidationRectUpdate; } |
const LayoutBoxModelObject& paintInvalidationContainer() const { return *m_paintInvalidationContainer; } |
@@ -95,8 +100,13 @@ |
const LayoutObject& m_currentObject; |
- bool m_forcedSubtreeInvalidationWithinContainer; |
- bool m_forcedSubtreeInvalidationRectUpdateWithinContainer; |
+ enum ForcedSubtreeInvalidationFlag { |
+ InvalidationChecking = 1 << 0, |
+ InvalidationRectUpdate = 1 << 1, |
+ FullInvalidation = 1 << 2, |
+ FullInvalidationForStackedContents = 1 << 3, |
+ }; |
+ unsigned m_forcedSubtreeInvalidationFlags; |
bool m_clipped; |
bool m_clippedForAbsolutePosition; |