| 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
|
|
|