Index: third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h b/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h |
index 7749aace88eaec366958ae0a6b16465392c13f75..0548bfb1df144f46e28b64617a3e231d970f0dae 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h |
+++ b/third_party/WebKit/Source/platform/graphics/paint/ClipPaintPropertyNode.h |
@@ -7,6 +7,7 @@ |
#include "platform/PlatformExport.h" |
#include "platform/geometry/FloatRoundedRect.h" |
+#include "platform/graphics/paint/GeometryMapperClipCache.h" |
#include "platform/graphics/paint/TransformPaintPropertyNode.h" |
#include "wtf/PassRefPtr.h" |
#include "wtf/RefCounted.h" |
@@ -17,6 +18,8 @@ |
namespace blink { |
+class GeometryMapperClipCache; |
+ |
// A clip rect created by a css property such as "overflow" or "clip". |
// Along with a reference to the transform space the clip rect is based on, |
// and a parent ClipPaintPropertyNode for inherited clips. |
@@ -97,10 +100,26 @@ class PLATFORM_EXPORT ClipPaintPropertyNode |
m_clipRect(clipRect), |
m_directCompositingReasons(directCompositingReasons) {} |
+ // For access to getClipCache(); |
+ friend class GeometryMapper; |
+ friend class GeometryMapperTest; |
+ |
+ GeometryMapperClipCache& getClipCache() const { |
+ return const_cast<ClipPaintPropertyNode*>(this)->getClipCache(); |
+ } |
+ |
+ GeometryMapperClipCache& getClipCache() { |
+ if (!m_geometryMapperClipCache) |
+ m_geometryMapperClipCache.reset(new GeometryMapperClipCache()); |
+ return *m_geometryMapperClipCache.get(); |
+ } |
+ |
RefPtr<const ClipPaintPropertyNode> m_parent; |
RefPtr<const TransformPaintPropertyNode> m_localTransformSpace; |
FloatRoundedRect m_clipRect; |
CompositingReasons m_directCompositingReasons; |
+ |
+ std::unique_ptr<GeometryMapperClipCache> m_geometryMapperClipCache; |
}; |
// Redeclared here to avoid ODR issues. |