Diff
Modified: trunk/LayoutTests/ChangeLog (119917 => 119918)
--- trunk/LayoutTests/ChangeLog 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/ChangeLog 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,3 +1,19 @@
+2012-06-09 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r118618 and r119353.
+ http://trac.webkit.org/changeset/118618
+ http://trac.webkit.org/changeset/119353
+ https://bugs.webkit.org/show_bug.cgi?id=88720
+
+ Caused at least 30 different crashes on ClusterFuzz (Requested
+ by inferno-sec on #webkit).
+
+ * http/tests/cache/cancel-in-progress-load-expected.txt: Removed.
+ * http/tests/cache/cancel-in-progress-load.html: Removed.
+ * http/tests/misc/write-while-waiting.html:
+ * svg/as-image/svg-image-leak-cached-data-expected.txt: Removed.
+ * svg/as-image/svg-image-leak-cached-data.html: Removed.
+
2012-06-09 Ryosuke Niwa <[email protected]>
Fix Chromium test expectations after my previous commit (r119916).
Deleted: trunk/LayoutTests/http/tests/cache/cancel-in-progress-load-expected.txt (119917 => 119918)
--- trunk/LayoutTests/http/tests/cache/cancel-in-progress-load-expected.txt 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/http/tests/cache/cancel-in-progress-load-expected.txt 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,6 +0,0 @@
-http://127.0.0.1:8000/cache/resources/random.cgi - willSendRequest <NSURLRequest URL http://127.0.0.1:8000/cache/resources/random.cgi, main document URL http://127.0.0.1:8000/cache/cancel-in-progress-load.html, http method GET> redirectResponse (null)
-<unknown> - didFinishLoading
-http://127.0.0.1:8000/cache/resources/random.cgi - didReceiveResponse <NSURLResponse http://127.0.0.1:8000/cache/resources/random.cgi, http status code 200>
-<unknown> - didFailLoadingWithError: <NSError domain NSURLErrorDomain, code -999, failing URL "http://127.0.0.1:8000/navigation/resources/slow-resource.pl">
-http://127.0.0.1:8000/cache/resources/random.cgi - didFinishLoading
-
Deleted: trunk/LayoutTests/http/tests/cache/cancel-in-progress-load.html (119917 => 119918)
--- trunk/LayoutTests/http/tests/cache/cancel-in-progress-load.html 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/http/tests/cache/cancel-in-progress-load.html 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,19 +0,0 @@
-<html>
-<body>
-<img id="img" _onload_="finish()"; _onerror_="finish();" src=""
-<script>
-if (window.layoutTestController) {
- layoutTestController.dumpAsText();
- layoutTestController.waitUntilDone();
- layoutTestController.dumpResourceLoadCallbacks();
-}
-
-function finish() {
- (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-
-document.getElementById("img").src = ""
-</script>
-</body>
-</html>
Modified: trunk/LayoutTests/http/tests/misc/write-while-waiting.html (119917 => 119918)
--- trunk/LayoutTests/http/tests/misc/write-while-waiting.html 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/http/tests/misc/write-while-waiting.html 2012-06-09 23:03:25 UTC (rev 119918)
@@ -2,12 +2,10 @@
<body>
FAIL
<script>
-if (window.layoutTestController) {
+if (window.layoutTestController)
layoutTestController.dumpAsText();
- layoutTestController.waitUntilDone();
-}
-setTimeout("document.write('PASS');document.close(); if (window.layoutTestController) layoutTestController.notifyDone();", 100);
+setTimeout("document.write('PASS');document.close();", 100);
</script>
<script src=""
</body>
Deleted: trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data-expected.txt (119917 => 119918)
--- trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data-expected.txt 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data-expected.txt 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,5 +0,0 @@
-This test checks if SVGImageCache leaks SVG image data as reported in https://bugs.webkit.org/show_bug.cgi?id=87792. Its layout has no particular meaning. The test will cause crash of debug version when leaks of SVG image data is detected.
-
-Note: the code detects leaks of SVG image data on destruction of SVGImageCache, which doesn't work on platforms that DumpRenderTree leaks the cache itself.
-
-
Deleted: trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data.html (119917 => 119918)
--- trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data.html 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/LayoutTests/svg/as-image/svg-image-leak-cached-data.html 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,29 +0,0 @@
-<html>
-<head>
-<script>
-if (window.layoutTestController) {
- layoutTestController.dumpAsText();
- layoutTestController.waitUntilDone();
-}
-
-var count = 0;
-function test() {
- var img = document.getElementById('img');
- document.body.replaceChild(img.cloneNode(), img);
- if (++count < 10)
- setTimeout(test, 0);
- else if (window.layoutTestController)
- layoutTestController.notifyDone();
-}
-</script>
-</head>
-
-<body _onload_='test()'>
- <p>This test checks if SVGImageCache leaks SVG image data as reported in
- https://bugs.webkit.org/show_bug.cgi?id=87792. Its layout has no particular meaning.
- The test will cause crash of debug version when leaks of SVG image data is detected.</p>
- <p>Note: the code detects leaks of SVG image data on destruction of SVGImageCache,
- which doesn't work on platforms that DumpRenderTree leaks the cache itself.</p>
- <img id='img' src=''>
-</body>
-</html>
Modified: trunk/Source/WebCore/ChangeLog (119917 => 119918)
--- trunk/Source/WebCore/ChangeLog 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/ChangeLog 2012-06-09 23:03:25 UTC (rev 119918)
@@ -1,3 +1,61 @@
+2012-06-09 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r118618 and r119353.
+ http://trac.webkit.org/changeset/118618
+ http://trac.webkit.org/changeset/119353
+ https://bugs.webkit.org/show_bug.cgi?id=88720
+
+ Caused at least 30 different crashes on ClusterFuzz (Requested
+ by inferno-sec on #webkit).
+
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
+ * loader/cache/CachedCSSStyleSheet.cpp:
+ (WebCore::CachedCSSStyleSheet::allClientsRemoved):
+ * loader/cache/CachedFont.cpp:
+ (WebCore::CachedFont::allClientsRemoved):
+ * loader/cache/CachedFont.h:
+ (WebCore::CachedFontClient::resourceClientType):
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::removeClientForRenderer):
+ (WebCore):
+ (WebCore::CachedImage::allClientsRemoved):
+ (WebCore::CachedImage::lookupOrCreateImageForRenderer):
+ * loader/cache/CachedImage.h:
+ (CachedImage):
+ (WebCore::CachedImageClient::resourceClientType):
+ * loader/cache/CachedRawResource.cpp:
+ (WebCore::CachedRawResource::allClientsRemoved):
+ (WebCore):
+ * loader/cache/CachedRawResource.h:
+ (CachedRawResource):
+ (WebCore::CachedRawResourceClient::resourceClientType):
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::removeClient):
+ * loader/cache/CachedResource.h:
+ (WebCore::CachedResource::allClientsRemoved):
+ * loader/cache/CachedResourceClient.h:
+ (WebCore::CachedResourceClient::resourceClientType):
+ * loader/cache/CachedSVGDocument.h:
+ (WebCore::CachedSVGDocumentClient::resourceClientType):
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::allClientsRemoved):
+ * loader/cache/CachedStyleSheetClient.h:
+ (WebCore::CachedStyleSheetClient::resourceClientType):
+ * rendering/style/StyleCachedImage.cpp:
+ (WebCore::StyleCachedImage::removeClient):
+ * rendering/style/StyleCachedImageSet.cpp:
+ (WebCore::StyleCachedImageSet::removeClient):
+ * svg/graphics/SVGImageCache.cpp:
+ (WebCore::SVGImageCache::~SVGImageCache):
+ (WebCore::SVGImageCache::removeRendererFromCache):
+ (WebCore::SVGImageCache::setRequestedSizeAndScales):
+ (WebCore::SVGImageCache::requestedSizeAndScales):
+ (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
+ * svg/graphics/SVGImageCache.h:
+ (WebCore):
+ (SVGImageCache):
+
2012-06-09 Florin Malita <[email protected]>
Fixed-position foreignObject descendants should be relative to the foreignObject viewport
Modified: trunk/Source/WebCore/loader/SubresourceLoader.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/SubresourceLoader.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/SubresourceLoader.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -234,8 +234,8 @@
if (m_resource->response().httpStatusCode() < 400 || m_resource->shouldIgnoreHTTPStatusCodeErrors())
return false;
+ m_resource->error(CachedResource::LoadError);
m_state = Finishing;
- m_resource->error(CachedResource::LoadError);
cancel();
return true;
}
Modified: trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -66,7 +66,6 @@
{
if (!MemoryCache::shouldMakeResourcePurgeableOnEviction() && isSafeToMakePurgeable())
makePurgeable(true);
- CachedResource::allClientsRemoved();
}
void CachedCSSStyleSheet::setEncoding(const String& chs)
Modified: trunk/Source/WebCore/loader/cache/CachedFont.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedFont.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedFont.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -185,7 +185,6 @@
m_fontData = 0;
}
#endif
- CachedResource::allClientsRemoved();
}
void CachedFont::checkNotify()
Modified: trunk/Source/WebCore/loader/cache/CachedFont.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedFont.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedFont.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -85,7 +85,7 @@
public:
virtual ~CachedFontClient() { }
static CachedResourceClientType expectedType() { return FontType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
virtual void fontLoaded(CachedFont*) { }
};
Modified: trunk/Source/WebCore/loader/cache/CachedImage.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedImage.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedImage.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -92,6 +92,15 @@
setLoading(false);
}
+void CachedImage::removeClientForRenderer(RenderObject* renderer)
+{
+#if ENABLE(SVG)
+ if (m_svgImageCache)
+ m_svgImageCache->removeRendererFromCache(renderer);
+#endif
+ removeClient(renderer);
+}
+
void CachedImage::didAddClient(CachedResourceClient* c)
{
if (m_decodedDataDeletionTimer.isActive())
@@ -109,24 +118,12 @@
CachedResource::didAddClient(c);
}
-void CachedImage::didRemoveClient(CachedResourceClient* c)
-{
- ASSERT(c->resourceClientType() == CachedImageClient::expectedType());
-#if ENABLE(SVG)
- if (m_svgImageCache)
- m_svgImageCache->removeClientFromCache(static_cast<CachedImageClient*>(c));
-#endif
-
- CachedResource::didRemoveClient(c);
-}
-
void CachedImage::allClientsRemoved()
{
if (m_image && !errorOccurred())
m_image->resetAnimation();
if (double interval = memoryCache()->deadDecodedDataDeletionInterval())
m_decodedDataDeletionTimer.startOneShot(interval);
- CachedResource::allClientsRemoved();
}
pair<Image*, float> CachedImage::brokenImage(float deviceScaleFactor) const
@@ -152,7 +149,7 @@
return 0;
if (!m_image->isSVGImage())
return m_image.get();
- Image* useImage = m_svgImageCache->lookupOrCreateBitmapImageForClient(renderer);
+ Image* useImage = m_svgImageCache->lookupOrCreateBitmapImageForRenderer(renderer);
if (useImage == Image::nullImage())
return m_image.get();
return useImage;
Modified: trunk/Source/WebCore/loader/cache/CachedImage.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedImage.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedImage.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -67,9 +67,9 @@
IntSize imageSizeForRenderer(const RenderObject*, float multiplier); // returns the size of the complete image.
void computeIntrinsicDimensions(Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio);
+ void removeClientForRenderer(RenderObject*);
virtual void didAddClient(CachedResourceClient*);
- virtual void didRemoveClient(CachedResourceClient*);
-
+
virtual void allClientsRemoved();
virtual void destroyDecodedData();
@@ -118,7 +118,7 @@
public:
virtual ~CachedImageClient() { }
static CachedResourceClientType expectedType() { return ImageType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
// Called whenever a frame of an image changes, either because we got more data from the network or
// because we are animating. If not null, the IntRect is the changed rect of the image.
Modified: trunk/Source/WebCore/loader/cache/CachedRawResource.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedRawResource.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedRawResource.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -87,6 +87,12 @@
CachedResource::didAddClient(client);
}
+void CachedRawResource::allClientsRemoved()
+{
+ if (m_loader)
+ m_loader->cancelIfNotFinishing();
+}
+
void CachedRawResource::willSendRequest(ResourceRequest& request, const ResourceResponse& response)
{
if (!response.isNull()) {
Modified: trunk/Source/WebCore/loader/cache/CachedRawResource.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedRawResource.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedRawResource.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -49,6 +49,7 @@
virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived);
virtual bool shouldIgnoreHTTPStatusCodeErrors() const { return true; }
+ virtual void allClientsRemoved();
virtual void willSendRequest(ResourceRequest&, const ResourceResponse&);
virtual void setResponse(const ResourceResponse&);
@@ -65,7 +66,7 @@
public:
virtual ~CachedRawResourceClient() { }
static CachedResourceClientType expectedType() { return RawResourceType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
virtual void dataSent(CachedResource*, unsigned long long /* bytesSent */, unsigned long long /* totalBytesToBeSent */) { }
virtual void responseReceived(CachedResource*, const ResourceResponse&) { }
Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedResource.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -387,12 +387,6 @@
c->notifyFinished(this);
}
-void CachedResource::allClientsRemoved()
-{
- if (m_loader)
- m_loader->cancelIfNotFinishing();
-}
-
bool CachedResource::addClientToSet(CachedResourceClient* client)
{
ASSERT(!isPurgeable());
@@ -432,7 +426,6 @@
} else {
ASSERT(m_clients.contains(client));
m_clients.remove(client);
- didRemoveClient(client);
}
if (canDelete() && !inCache())
Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedResource.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -126,8 +126,7 @@
PreloadResult preloadResult() const { return static_cast<PreloadResult>(m_preloadResult); }
virtual void didAddClient(CachedResourceClient*);
- virtual void didRemoveClient(CachedResourceClient*) { }
- virtual void allClientsRemoved();
+ virtual void allClientsRemoved() { }
unsigned count() const { return m_clients.size(); }
Modified: trunk/Source/WebCore/loader/cache/CachedResourceClient.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedResourceClient.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedResourceClient.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -50,7 +50,7 @@
virtual void didReceiveData(CachedResource*) { };
static CachedResourceClientType expectedType() { return BaseResourceType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
protected:
CachedResourceClient() { }
Modified: trunk/Source/WebCore/loader/cache/CachedSVGDocument.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedSVGDocument.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedSVGDocument.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -52,7 +52,7 @@
public:
virtual ~CachedSVGDocumentClient() { }
static CachedResourceClientType expectedType() { return SVGDocumentType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
};
}
Modified: trunk/Source/WebCore/loader/cache/CachedScript.cpp (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedScript.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedScript.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -67,7 +67,6 @@
{
if (double interval = memoryCache()->deadDecodedDataDeletionInterval())
m_decodedDataDeletionTimer.startOneShot(interval);
- CachedResource::allClientsRemoved();
}
void CachedScript::setEncoding(const String& chs)
Modified: trunk/Source/WebCore/loader/cache/CachedStyleSheetClient.h (119917 => 119918)
--- trunk/Source/WebCore/loader/cache/CachedStyleSheetClient.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/loader/cache/CachedStyleSheetClient.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -36,7 +36,7 @@
public:
virtual ~CachedStyleSheetClient() { }
static CachedResourceClientType expectedType() { return StyleSheetType; }
- virtual CachedResourceClientType resourceClientType() const { return expectedType(); }
+ virtual CachedResourceClientType resourceClientType() { return expectedType(); }
virtual void setCSSStyleSheet(const String& /* href */, const KURL& /* baseURL */, const String& /* charset */, const CachedCSSStyleSheet*) { }
virtual void setXSLStyleSheet(const String& /* href */, const KURL& /* baseURL */, const String& /* sheet */) { }
};
Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (119917 => 119918)
--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -97,7 +97,7 @@
void StyleCachedImage::removeClient(RenderObject* renderer)
{
- m_image->removeClient(renderer);
+ m_image->removeClientForRenderer(renderer);
}
PassRefPtr<Image> StyleCachedImage::image(RenderObject* renderer, const IntSize&) const
Modified: trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp (119917 => 119918)
--- trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -108,7 +108,7 @@
void StyleCachedImageSet::removeClient(RenderObject* renderer)
{
- m_bestFitImage->removeClient(renderer);
+ m_bestFitImage->removeClientForRenderer(renderer);
}
PassRefPtr<Image> StyleCachedImageSet::image(RenderObject* renderer, const IntSize&) const
Modified: trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp (119917 => 119918)
--- trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/svg/graphics/SVGImageCache.cpp 2012-06-09 23:03:25 UTC (rev 119918)
@@ -21,7 +21,6 @@
#include "SVGImageCache.h"
#if ENABLE(SVG)
-#include "CachedImage.h"
#include "FrameView.h"
#include "GraphicsContext.h"
#include "ImageBuffer.h"
@@ -42,23 +41,18 @@
m_sizeAndScalesMap.clear();
ImageDataMap::iterator end = m_imageDataMap.end();
- for (ImageDataMap::iterator it = m_imageDataMap.begin(); it != end; ++it) {
- // Checks if the client (it->first) is still valid. The client should remove itself from this
- // cache before its end of life, otherwise the following ASSERT will crash on pure virtual
- // function call or a general crash.
- ASSERT(it->first->resourceClientType() == CachedImageClient::expectedType());
+ for (ImageDataMap::iterator it = m_imageDataMap.begin(); it != end; ++it)
delete it->second.buffer;
- }
m_imageDataMap.clear();
}
-void SVGImageCache::removeClientFromCache(const CachedImageClient* client)
+void SVGImageCache::removeRendererFromCache(const RenderObject* renderer)
{
- ASSERT(client);
- m_sizeAndScalesMap.remove(client);
+ ASSERT(renderer);
+ m_sizeAndScalesMap.remove(renderer);
- ImageDataMap::iterator it = m_imageDataMap.find(client);
+ ImageDataMap::iterator it = m_imageDataMap.find(renderer);
if (it == m_imageDataMap.end())
return;
@@ -66,17 +60,17 @@
m_imageDataMap.remove(it);
}
-void SVGImageCache::setRequestedSizeAndScales(const CachedImageClient* client, const SizeAndScales& sizeAndScales)
+void SVGImageCache::setRequestedSizeAndScales(const RenderObject* renderer, const SizeAndScales& sizeAndScales)
{
- ASSERT(client);
+ ASSERT(renderer);
ASSERT(!sizeAndScales.size.isEmpty());
- m_sizeAndScalesMap.set(client, sizeAndScales);
+ m_sizeAndScalesMap.set(renderer, sizeAndScales);
}
-SVGImageCache::SizeAndScales SVGImageCache::requestedSizeAndScales(const CachedImageClient* client) const
+SVGImageCache::SizeAndScales SVGImageCache::requestedSizeAndScales(const RenderObject* renderer) const
{
- ASSERT(client);
- SizeAndScalesMap::const_iterator it = m_sizeAndScalesMap.find(client);
+ ASSERT(renderer);
+ SizeAndScalesMap::const_iterator it = m_sizeAndScalesMap.find(renderer);
if (it == m_sizeAndScalesMap.end())
return SizeAndScales();
return it->second;
@@ -128,12 +122,12 @@
redraw();
}
-Image* SVGImageCache::lookupOrCreateBitmapImageForClient(const CachedImageClient* client)
+Image* SVGImageCache::lookupOrCreateBitmapImageForRenderer(const RenderObject* renderer)
{
- ASSERT(client);
+ ASSERT(renderer);
- // The cache needs to know the size of the client before querying an image for it.
- SizeAndScalesMap::iterator sizeIt = m_sizeAndScalesMap.find(client);
+ // The cache needs to know the size of the renderer before querying an image for it.
+ SizeAndScalesMap::iterator sizeIt = m_sizeAndScalesMap.find(renderer);
if (sizeIt == m_sizeAndScalesMap.end())
return Image::nullImage();
@@ -142,8 +136,8 @@
float scale = sizeIt->second.scale;
ASSERT(!size.isEmpty());
- // Lookup image for client in cache and eventually update it.
- ImageDataMap::iterator it = m_imageDataMap.find(client);
+ // Lookup image for renderer in cache and eventually update it.
+ ImageDataMap::iterator it = m_imageDataMap.find(renderer);
if (it != m_imageDataMap.end()) {
ImageData& data = ""
@@ -151,7 +145,7 @@
if (data.sizeAndScales.size == size && data.sizeAndScales.zoom == zoom && data.sizeAndScales.scale == scale)
return data.image.get();
- // If the image size for the client changed, we have to delete the buffer, remove the item from the cache and recreate it.
+ // If the image size for the renderer changed, we have to delete the buffer, remove the item from the cache and recreate it.
delete data.buffer;
m_imageDataMap.remove(it);
}
@@ -170,7 +164,7 @@
Image* newImagePtr = newImage.get();
ASSERT(newImagePtr);
- m_imageDataMap.add(client, ImageData(newBuffer.leakPtr(), newImage.release(), sizeIt->second));
+ m_imageDataMap.add(renderer, ImageData(newBuffer.leakPtr(), newImage.release(), sizeIt->second));
return newImagePtr;
}
Modified: trunk/Source/WebCore/svg/graphics/SVGImageCache.h (119917 => 119918)
--- trunk/Source/WebCore/svg/graphics/SVGImageCache.h 2012-06-09 21:38:31 UTC (rev 119917)
+++ trunk/Source/WebCore/svg/graphics/SVGImageCache.h 2012-06-09 23:03:25 UTC (rev 119918)
@@ -31,8 +31,8 @@
namespace WebCore {
class CachedImage;
-class CachedImageClient;
class ImageBuffer;
+class RenderObject;
class SVGImage;
class SVGImageCache {
@@ -63,12 +63,12 @@
float scale;
};
- void removeClientFromCache(const CachedImageClient*);
+ void removeRendererFromCache(const RenderObject*);
- void setRequestedSizeAndScales(const CachedImageClient*, const SizeAndScales&);
- SizeAndScales requestedSizeAndScales(const CachedImageClient*) const;
+ void setRequestedSizeAndScales(const RenderObject*, const SizeAndScales&);
+ SizeAndScales requestedSizeAndScales(const RenderObject*) const;
- Image* lookupOrCreateBitmapImageForClient(const CachedImageClient*);
+ Image* lookupOrCreateBitmapImageForRenderer(const RenderObject*);
void imageContentChanged();
private:
@@ -98,8 +98,8 @@
RefPtr<Image> image;
};
- typedef HashMap<const CachedImageClient*, SizeAndScales> SizeAndScalesMap;
- typedef HashMap<const CachedImageClient*, ImageData> ImageDataMap;
+ typedef HashMap<const RenderObject*, SizeAndScales> SizeAndScalesMap;
+ typedef HashMap<const RenderObject*, ImageData> ImageDataMap;
SVGImage* m_svgImage;
SizeAndScalesMap m_sizeAndScalesMap;