Diff
Modified: trunk/Source/WebCore/ChangeLog (151276 => 151277)
--- trunk/Source/WebCore/ChangeLog 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/ChangeLog 2013-06-06 16:36:59 UTC (rev 151277)
@@ -1,3 +1,57 @@
+2013-06-06 Carlos Garcia Campos <[email protected]>
+
+ ResourceLoader::resourceData() should not return a PassRefPtr
+ https://bugs.webkit.org/show_bug.cgi?id=117288
+
+ Reviewed by Darin Adler.
+
+ Change ResourceLoader::resourceData() to return a raw pointer
+ instead of a PassRefPtr since we don't want to transfer the
+ ownership of the resource data. Also pass a raw pointer to
+ CachedResource::data() so that the cached resource can decide
+ whether to take a reference of the data or not, for example,
+ CachedRawResource only takes a reference when buffering policy is
+ BufferData.
+
+ * html/ImageDocument.cpp:
+ (WebCore::ImageDocumentParser::appendBytes):
+ (WebCore::ImageDocumentParser::finish):
+ * loader/ResourceLoader.cpp:
+ * loader/ResourceLoader.h:
+ (WebCore::ResourceLoader::resourceData):
+ * loader/SubresourceLoader.cpp:
+ (WebCore::SubresourceLoader::sendDataToResource):
+ * loader/cache/CachedCSSStyleSheet.cpp:
+ (WebCore::CachedCSSStyleSheet::data):
+ * loader/cache/CachedCSSStyleSheet.h:
+ * loader/cache/CachedFont.cpp:
+ (WebCore::CachedFont::data):
+ * loader/cache/CachedFont.h:
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::data):
+ * loader/cache/CachedImage.h:
+ * loader/cache/CachedRawResource.cpp:
+ (WebCore::CachedRawResource::data):
+ * loader/cache/CachedRawResource.h:
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::data):
+ * loader/cache/CachedResource.h:
+ * loader/cache/CachedSVGDocument.cpp:
+ (WebCore::CachedSVGDocument::data):
+ * loader/cache/CachedSVGDocument.h:
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::data):
+ * loader/cache/CachedScript.h:
+ * loader/cache/CachedShader.cpp:
+ (WebCore::CachedShader::data):
+ * loader/cache/CachedShader.h:
+ * loader/cache/CachedTextTrack.cpp:
+ (WebCore::CachedTextTrack::data):
+ * loader/cache/CachedTextTrack.h:
+ * loader/cache/CachedXSLStyleSheet.cpp:
+ (WebCore::CachedXSLStyleSheet::data):
+ * loader/cache/CachedXSLStyleSheet.h:
+
2013-06-06 Chris Fleizach <[email protected]>
AX: iOS ignores ARIA progressbar elements
Modified: trunk/Source/WebCore/html/ImageDocument.cpp (151276 => 151277)
--- trunk/Source/WebCore/html/ImageDocument.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/html/ImageDocument.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -135,7 +135,8 @@
return;
CachedImage* cachedImage = document()->cachedImage();
- cachedImage->data(frame->loader()->documentLoader()->mainResourceData(), false);
+ RefPtr<ResourceBuffer> resourceData = frame->loader()->documentLoader()->mainResourceData();
+ cachedImage->data(resourceData.get(), false);
document()->imageUpdated();
}
@@ -151,7 +152,7 @@
if (document()->frame()->loader()->documentLoader()->isLoadingMultipartContent())
data = ""
- cachedImage->data(data.release(), true);
+ cachedImage->data(data.get(), true);
cachedImage->finish();
cachedImage->setResponse(document()->frame()->loader()->documentLoader()->response());
Modified: trunk/Source/WebCore/loader/ResourceLoader.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/ResourceLoader.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/ResourceLoader.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -52,11 +52,6 @@
namespace WebCore {
-PassRefPtr<ResourceBuffer> ResourceLoader::resourceData()
-{
- return m_resourceData;
-}
-
ResourceLoader::ResourceLoader(Frame* frame, ResourceLoaderOptions options)
: m_frame(frame)
, m_documentLoader(frame->loader()->activeDocumentLoader())
Modified: trunk/Source/WebCore/loader/ResourceLoader.h (151276 => 151277)
--- trunk/Source/WebCore/loader/ResourceLoader.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/ResourceLoader.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -73,7 +73,7 @@
virtual void releaseResources();
const ResourceResponse& response() const;
- PassRefPtr<ResourceBuffer> resourceData();
+ ResourceBuffer* resourceData() const { return m_resourceData.get(); }
void clearResourceData();
virtual bool isSubresourceLoader();
Modified: trunk/Source/WebCore/loader/SubresourceLoader.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/SubresourceLoader.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/SubresourceLoader.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -266,7 +266,7 @@
// that all data has been received yet.
if (m_loadingMultipartContent || !resourceData()) {
RefPtr<ResourceBuffer> copiedData = ResourceBuffer::create(data, length);
- m_resource->data(copiedData.release(), m_loadingMultipartContent);
+ m_resource->data(copiedData.get(), m_loadingMultipartContent);
} else
m_resource->data(resourceData(), false);
}
Modified: trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -93,7 +93,7 @@
return sheetText;
}
-void CachedCSSStyleSheet::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedCSSStyleSheet::data(ResourceBuffer* data, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -47,7 +47,7 @@
virtual void setEncoding(const String&);
virtual String encoding() const;
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
virtual void destroyDecodedData() OVERRIDE;
PassRefPtr<StyleSheetContents> restoreParsedStyleSheet(const CSSParserContext&);
Modified: trunk/Source/WebCore/loader/cache/CachedFont.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedFont.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedFont.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -75,7 +75,7 @@
static_cast<CachedFontClient*>(c)->fontLoaded(this);
}
-void CachedFont::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedFont::data(ResourceBuffer* data, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedFont.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedFont.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedFont.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -48,7 +48,7 @@
virtual void load(CachedResourceLoader*, const ResourceLoaderOptions&);
virtual void didAddClient(CachedResourceClient*);
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
virtual void allClientsRemoved();
void beginLoadIfNeeded(CachedResourceLoader* dl);
Modified: trunk/Source/WebCore/loader/cache/CachedImage.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedImage.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedImage.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -352,7 +352,7 @@
return settings ? settings->maximumDecodedImageSize() : 0;
}
-void CachedImage::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedImage::data(ResourceBuffer* data, bool allDataReceived)
{
m_data = data;
Modified: trunk/Source/WebCore/loader/cache/CachedImage.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedImage.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedImage.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -76,7 +76,7 @@
virtual void allClientsRemoved();
virtual void destroyDecodedData();
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
virtual void error(CachedResource::Status);
virtual void responseReceived(const ResourceResponse&);
Modified: trunk/Source/WebCore/loader/cache/CachedRawResource.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedRawResource.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedRawResource.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -41,7 +41,7 @@
{
}
-void CachedRawResource::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedRawResource::data(ResourceBuffer* data, bool allDataReceived)
{
CachedResourceHandle<CachedRawResource> protect(this);
const char* incrementalData = 0;
@@ -68,7 +68,7 @@
while (CachedRawResourceClient* c = w.next())
c->dataReceived(this, incrementalData, incrementalDataLength);
}
- CachedResource::data(m_data, allDataReceived);
+ CachedResource::data(data, allDataReceived);
if (dataBufferingPolicy == BufferData && m_options.dataBufferingPolicy == DoNotBufferData) {
if (m_loader)
Modified: trunk/Source/WebCore/loader/cache/CachedRawResource.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedRawResource.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedRawResource.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -50,7 +50,7 @@
private:
virtual void didAddClient(CachedResourceClient*);
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
virtual bool shouldIgnoreHTTPStatusCodeErrors() const { return true; }
virtual void allClientsRemoved();
Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedResource.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -362,7 +362,7 @@
c->notifyFinished(this);
}
-void CachedResource::data(PassRefPtr<ResourceBuffer>, bool allDataReceived)
+void CachedResource::data(ResourceBuffer*, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedResource.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -101,7 +101,7 @@
virtual void setEncoding(const String&) { }
virtual String encoding() const { return String(); }
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
virtual void error(CachedResource::Status);
void setResourceError(const ResourceError& error) { m_error = error; }
Modified: trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -53,7 +53,7 @@
return m_decoder->encoding().name();
}
-void CachedSVGDocument::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedSVGDocument::data(ResourceBuffer* data, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedSVGDocument.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedSVGDocument.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedSVGDocument.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -40,7 +40,7 @@
virtual void setEncoding(const String&);
virtual String encoding() const;
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
protected:
RefPtr<SVGDocument> m_document;
Modified: trunk/Source/WebCore/loader/cache/CachedScript.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedScript.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedScript.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -82,7 +82,7 @@
return m_script;
}
-void CachedScript::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedScript::data(ResourceBuffer* data, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedScript.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedScript.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedScript.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -42,7 +42,7 @@
virtual void setEncoding(const String&);
virtual String encoding() const;
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
String mimeType() const;
virtual void destroyDecodedData();
Modified: trunk/Source/WebCore/loader/cache/CachedShader.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedShader.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedShader.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -60,7 +60,7 @@
return m_shaderString;
}
-void CachedShader::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedShader::data(ResourceBuffer* data, bool allDataReceived)
{
if (allDataReceived)
m_data = data;
Modified: trunk/Source/WebCore/loader/cache/CachedShader.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedShader.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedShader.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -44,7 +44,7 @@
virtual ~CachedShader();
const String& shaderString();
- void data(PassRefPtr<ResourceBuffer>, bool allDataReceived);
+ void data(ResourceBuffer*, bool allDataReceived);
private:
virtual bool mayTryReplaceEncodedData() const OVERRIDE { return true; }
Modified: trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -48,7 +48,7 @@
{
}
-void CachedTextTrack::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedTextTrack::data(ResourceBuffer* data, bool allDataReceived)
{
m_data = data;
setEncodedSize(m_data.get() ? m_data->size() : 0);
Modified: trunk/Source/WebCore/loader/cache/CachedTextTrack.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedTextTrack.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedTextTrack.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -38,7 +38,7 @@
CachedTextTrack(const ResourceRequest&);
virtual ~CachedTextTrack();
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
private:
virtual bool mayTryReplaceEncodedData() const OVERRIDE { return true; }
Modified: trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp 2013-06-06 16:36:59 UTC (rev 151277)
@@ -63,7 +63,7 @@
return m_decoder->encoding().name();
}
-void CachedXSLStyleSheet::data(PassRefPtr<ResourceBuffer> data, bool allDataReceived)
+void CachedXSLStyleSheet::data(ResourceBuffer* data, bool allDataReceived)
{
if (!allDataReceived)
return;
Modified: trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h (151276 => 151277)
--- trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h 2013-06-06 16:29:23 UTC (rev 151276)
+++ trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h 2013-06-06 16:36:59 UTC (rev 151277)
@@ -45,7 +45,7 @@
virtual void setEncoding(const String&);
virtual String encoding() const;
- virtual void data(PassRefPtr<ResourceBuffer> data, bool allDataReceived);
+ virtual void data(ResourceBuffer*, bool allDataReceived);
protected:
virtual void checkNotify();