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

Unified Diff: third_party/WebKit/Source/core/style/ContentData.h

Issue 1812763002: Pseudo and non pseudo elements should return correct computed content value (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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/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);

Powered by Google App Engine
This is Rietveld 408576698