Index: third_party/WebKit/Source/core/style/ContentData.h |
diff --git a/third_party/WebKit/Source/core/style/ContentData.h b/third_party/WebKit/Source/core/style/ContentData.h |
index 1947050f38e362be24a815244ff5b3e1444a3cad..85908b6487f7d3b87cd184447094eba58a3ccac9 100644 |
--- a/third_party/WebKit/Source/core/style/ContentData.h |
+++ b/third_party/WebKit/Source/core/style/ContentData.h |
@@ -25,6 +25,7 @@ |
#ifndef ContentData_h |
#define ContentData_h |
+#include "core/CSSValueKeywords.h" |
#include "core/style/CounterContent.h" |
#include "core/style/StyleImage.h" |
#include "wtf/OwnPtr.h" |
@@ -43,6 +44,7 @@ public: |
static PassOwnPtrWillBeRawPtr<ContentData> create(const String&); |
static PassOwnPtrWillBeRawPtr<ContentData> create(PassOwnPtr<CounterContent>); |
static PassOwnPtrWillBeRawPtr<ContentData> create(QuoteType); |
+ static PassOwnPtrWillBeRawPtr<ContentData> create(ElementContent); |
virtual ~ContentData() { } |
@@ -50,6 +52,7 @@ public: |
virtual bool isImage() const { return false; } |
virtual bool isQuote() const { return false; } |
virtual bool isText() const { return false; } |
+ virtual bool isElementContent() const { return false; } |
virtual LayoutObject* createLayoutObject(Document&, ComputedStyle&) const = 0; |
@@ -199,6 +202,35 @@ private: |
DEFINE_CONTENT_DATA_TYPE_CASTS(Quote); |
+class ElementContentContentData final : public ContentData { |
nainar
2016/03/21 00:12:08
Better(?) Name: ElementContentValueContentData
|
+ friend class ContentData; |
+public: |
+ ElementContent elementContent() const { return m_elementContent; } |
+ void setElementContent(ElementContent elementContent) { m_elementContent = elementContent; } |
+ |
+ bool isElementContent() const override { return true; } |
+ LayoutObject* createLayoutObject(Document&, ComputedStyle&) const override; |
+ |
+ bool equals(const ContentData& data) const override |
+ { |
+ if (!data.isElementContent()) |
+ return false; |
+ return static_cast<const ElementContentContentData&>(data).elementContent() == elementContent(); |
+ } |
+ |
+private: |
+ ElementContentContentData(ElementContent elementContent) |
+ : m_elementContent(elementContent) |
+ { |
+ } |
+ |
+ PassOwnPtrWillBeRawPtr<ContentData> cloneInternal() const override { return create(elementContent()); } |
+ |
+ ElementContent m_elementContent; |
+}; |
+ |
+DEFINE_CONTENT_DATA_TYPE_CASTS(ElementContent); |
+ |
inline bool operator==(const ContentData& a, const ContentData& b) |
{ |
return a.equals(b); |