Index: Source/core/css/CSSImageValue.cpp |
diff --git a/Source/core/css/CSSImageValue.cpp b/Source/core/css/CSSImageValue.cpp |
index c4c6b7908d4f683764658f06c2e0ec6c29f2ac86..85ff89fc77ff5175dc0c1ddad4407a9e68c77f40 100644 |
--- a/Source/core/css/CSSImageValue.cpp |
+++ b/Source/core/css/CSSImageValue.cpp |
@@ -22,6 +22,7 @@ |
#include "core/css/CSSImageValue.h" |
#include "core/css/CSSMarkup.h" |
+#include "core/css/resolver/ElementStyleResources.h" |
#include "core/dom/Document.h" |
#include "core/fetch/FetchInitiatorTypeNames.h" |
#include "core/fetch/FetchRequest.h" |
@@ -34,31 +35,46 @@ |
namespace blink { |
-CSSImageValue::CSSImageValue(const String& rawValue, const KURL& url, StyleImage* image) |
+CSSImageValue::CSSImageValue(const String& rawValue, const String& url, StyleImage* image) |
: CSSValue(ImageClass) |
, m_relativeURL(rawValue) |
- , m_absoluteURL(url.string()) |
+ , m_absoluteURL(url) |
, m_image(image) |
, m_accessedImage(image) |
{ |
+ printf("** Made a CSSImageValue: %s, %s, image? %d, accessed? %d\n", m_relativeURL.ascii().data(), m_absoluteURL.ascii().data(), (bool)m_image, m_accessedImage); |
} |
CSSImageValue::~CSSImageValue() |
{ |
+ printf("** Freed a CSSImageValue: %s, %s, image? %d, accessed? %d\n", m_relativeURL.ascii().data(), m_absoluteURL.ascii().data(), (bool)m_image, m_accessedImage); |
} |
+ |
StyleImage* CSSImageValue::cachedOrPendingImage() |
{ |
+ printf("Ahh old cachedOrPendingImage() function\n"); |
if (!m_image) |
m_image = StylePendingImage::create(this); |
return m_image.get(); |
} |
-StyleFetchedImage* CSSImageValue::cachedImage(Document* document, const ResourceLoaderOptions& options) |
+ |
+StyleImage* CSSImageValue::cachedOrPendingImage(CSSStyleImageMap& imageMap) |
+{ |
+ RefPtrWillBeMember<StyleImage>& value = imageMap.getStyleImageEntry(this).storedValue->value; |
+ if (!value) |
+ value = StylePendingImage::create(this); |
+ return value.get(); |
+} |
+ |
+StyleFetchedImage* CSSImageValue::cachedImage(Document* document, const ResourceLoaderOptions& options, CSSStyleImageMap& imageMap) |
{ |
+ printf("Yay new cachedImage() function\n"); |
ASSERT(document); |
+ RefPtrWillBeMember<StyleImage>& value = imageMap.getStyleImageEntry(this).storedValue->value; |
if (!m_accessedImage) { |
m_accessedImage = true; |
@@ -68,21 +84,23 @@ StyleFetchedImage* CSSImageValue::cachedImage(Document* document, const Resource |
if (options.corsEnabled == IsCORSEnabled) |
request.setCrossOriginAccessControl(document->securityOrigin(), options.allowCredentials, options.credentialsRequested); |
+ printf("Downloading image from %s.\n", m_absoluteURL.ascii().data()); |
if (ResourcePtr<ImageResource> cachedImage = ImageResource::fetch(request, document->fetcher())) |
- m_image = StyleFetchedImage::create(cachedImage.get(), document); |
+ value = StyleFetchedImage::create(cachedImage.get(), document); |
} |
- return (m_image && m_image->isImageResource()) ? toStyleFetchedImage(m_image) : 0; |
+ return (value && value->isImageResource()) ? toStyleFetchedImage(value) : 0; |
} |
-void CSSImageValue::restoreCachedResourceIfNeeded(Document& document) |
+void CSSImageValue::restoreCachedResourceIfNeeded(Document& document, CSSStyleImageMap& imageMap) |
{ |
- if (!m_accessedImage || !m_image->isImageResource() || !document.fetcher()) |
+ RefPtrWillBeMember<StyleImage>& value = imageMap.getStyleImageEntry(this).storedValue->value; |
+ if (!m_accessedImage || !value->isImageResource() || !document.fetcher()) |
return; |
if (document.fetcher()->cachedResource(KURL(ParsedURLString, m_absoluteURL))) |
return; |
- ImageResource* resource = m_image->cachedImage(); |
+ ImageResource* resource = value->cachedImage(); |
if (!resource) |
return; |
@@ -94,6 +112,7 @@ void CSSImageValue::restoreCachedResourceIfNeeded(Document& document) |
bool CSSImageValue::hasFailedOrCanceledSubresources() const |
{ |
+ printf("Oh no! In hasFailedOrCancelledSubresources\n"); |
if (!m_image || !m_image->isImageResource()) |
return false; |
if (Resource* cachedResource = toStyleFetchedImage(m_image)->cachedImage()) |
@@ -122,6 +141,7 @@ DEFINE_TRACE_AFTER_DISPATCH(CSSImageValue) |
CSSValue::traceAfterDispatch(visitor); |
} |
+/* |
void CSSImageValue::reResolveURL(const Document& document) |
{ |
KURL url = document.completeURL(m_relativeURL); |
@@ -131,5 +151,6 @@ void CSSImageValue::reResolveURL(const Document& document) |
m_accessedImage = false; |
m_image.clear(); |
} |
+*/ |
} // namespace blink |