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

Unified Diff: third_party/WebKit/Source/core/css/CSSImageValue.cpp

Issue 1481383002: [Experimental] CSSSerializer Proof-of-concept Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: snapshot: top_25 sites ser/dser now works Created 4 years, 11 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/css/CSSImageValue.cpp
diff --git a/third_party/WebKit/Source/core/css/CSSImageValue.cpp b/third_party/WebKit/Source/core/css/CSSImageValue.cpp
index b8ee78fb88e48c334ac0a1a829f040ac492ace5c..b32da12d8412827c6fcd5008f8f8bf895f3fdc7c 100644
--- a/third_party/WebKit/Source/core/css/CSSImageValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSImageValue.cpp
@@ -21,6 +21,8 @@
#include "core/css/CSSImageValue.h"
#include "core/css/CSSMarkup.h"
+#include "core/css/serializer/CSSDeserializeStream.h"
+#include "core/css/serializer/CSSSerializeStream.h"
#include "core/dom/Document.h"
#include "core/fetch/FetchInitiatorTypeNames.h"
#include "core/fetch/FetchRequest.h"
@@ -47,6 +49,27 @@ CSSImageValue::~CSSImageValue()
{
}
+PassRefPtrWillBeRawPtr<CSSImageValue> CSSImageValue::deserializeAfterDispatch(CSSDeserializeStream* stream)
+{
+ AtomicString relativeURL = stream->readAtomicString();
+ AtomicString absoluteURL = stream->readAtomicString();
+ Referrer referrer = stream->readReferrer();
+ AtomicString initiatorName = stream->readAtomicString();
+
+ return adoptRefWillBeNoop(new CSSImageValue(relativeURL, absoluteURL, referrer, initiatorName));
+}
+
+CSSImageValue::CSSImageValue(AtomicString relativeURL, AtomicString absoluteURL, const Referrer& referrer, AtomicString initiatorName)
+ : CSSValue(ImageClass)
+ , m_relativeURL(relativeURL)
+ , m_absoluteURL(absoluteURL)
+ , m_referrer(referrer)
+ , m_isCachePending(true)
+ , m_cachedImage(nullptr)
+ , m_initiatorName(initiatorName)
+{
+}
+
StyleFetchedImage* CSSImageValue::cacheImage(Document* document, CrossOriginAttributeValue crossOrigin)
{
ASSERT(document);
@@ -108,6 +131,14 @@ bool CSSImageValue::knownToBeOpaque(const LayoutObject* layoutObject) const
return m_cachedImage ? m_cachedImage->knownToBeOpaque(layoutObject) : false;
}
+void CSSImageValue::serializeAfterDispatch(CSSSerializeStream* stream) const
+{
+ stream->writeAtomicString(m_relativeURL);
+ stream->writeAtomicString(m_absoluteURL);
+ stream->writeReferrer(m_referrer);
+ stream->writeAtomicString(m_initiatorName);
+}
+
DEFINE_TRACE_AFTER_DISPATCH(CSSImageValue)
{
visitor->trace(m_cachedImage);
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSImageValue.h ('k') | third_party/WebKit/Source/core/css/CSSInheritedValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698