Chromium Code Reviews| 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); |