[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
darin at chromium.org
darin at chromium.org
Wed Dec 22 18:42:08 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit f07950761e33a4e492ca28d5277fa5efcb2c8e0c
Author: darin at chromium.org <darin at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Dec 16 00:12:46 2010 +0000
2010-12-14 Darin Fisher <darin at chromium.org>
Reviewed by Dimitri Glazkov.
[chromium] AssociatedURLLoader leaks m_realLoader to its WebURLLoaderClient.
https://bugs.webkit.org/show_bug.cgi?id=51062
* src/AssociatedURLLoader.cpp: Intercept WebURLLoaderClient methods and
forward |this| as the WebURLLoader parameter.
(WebKit::AssociatedURLLoader::AssociatedURLLoader):
(WebKit::AssociatedURLLoader::loadSynchronously):
(WebKit::AssociatedURLLoader::loadAsynchronously):
(WebKit::AssociatedURLLoader::willSendRequest):
(WebKit::AssociatedURLLoader::didSendData):
(WebKit::AssociatedURLLoader::didReceiveResponse):
(WebKit::AssociatedURLLoader::didDownloadData):
(WebKit::AssociatedURLLoader::didReceiveData):
(WebKit::AssociatedURLLoader::didReceiveCachedMetadata):
(WebKit::AssociatedURLLoader::didFinishLoading):
(WebKit::AssociatedURLLoader::didFail):
* src/AssociatedURLLoader.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74161 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 008d901..ec48251 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,25 @@
+2010-12-14 Darin Fisher <darin at chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] AssociatedURLLoader leaks m_realLoader to its WebURLLoaderClient.
+ https://bugs.webkit.org/show_bug.cgi?id=51062
+
+ * src/AssociatedURLLoader.cpp: Intercept WebURLLoaderClient methods and
+ forward |this| as the WebURLLoader parameter.
+ (WebKit::AssociatedURLLoader::AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::loadSynchronously):
+ (WebKit::AssociatedURLLoader::loadAsynchronously):
+ (WebKit::AssociatedURLLoader::willSendRequest):
+ (WebKit::AssociatedURLLoader::didSendData):
+ (WebKit::AssociatedURLLoader::didReceiveResponse):
+ (WebKit::AssociatedURLLoader::didDownloadData):
+ (WebKit::AssociatedURLLoader::didReceiveData):
+ (WebKit::AssociatedURLLoader::didReceiveCachedMetadata):
+ (WebKit::AssociatedURLLoader::didFinishLoading):
+ (WebKit::AssociatedURLLoader::didFail):
+ * src/AssociatedURLLoader.h:
+
2010-12-14 Mihai Parparita <mihaip at chromium.org>
Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/src/AssociatedURLLoader.cpp b/WebKit/chromium/src/AssociatedURLLoader.cpp
index f494a0e..34a4055 100644
--- a/WebKit/chromium/src/AssociatedURLLoader.cpp
+++ b/WebKit/chromium/src/AssociatedURLLoader.cpp
@@ -42,7 +42,8 @@ namespace WebKit {
AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl)
: m_frameImpl(frameImpl),
- m_realLoader(webKitClient()->createURLLoader())
+ m_realLoader(webKitClient()->createURLLoader()),
+ m_realClient(0)
{
}
@@ -52,6 +53,8 @@ AssociatedURLLoader::~AssociatedURLLoader()
void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data)
{
+ ASSERT(!m_realClient);
+
WebURLRequest requestCopy(request);
prepareRequest(requestCopy);
@@ -60,10 +63,13 @@ void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURL
void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client)
{
+ ASSERT(!m_realClient);
+
WebURLRequest requestCopy(request);
prepareRequest(requestCopy);
- m_realLoader->loadAsynchronously(requestCopy, client);
+ m_realClient = client;
+ m_realLoader->loadAsynchronously(requestCopy, this);
}
void AssociatedURLLoader::cancel()
@@ -84,4 +90,44 @@ void AssociatedURLLoader::prepareRequest(WebURLRequest& request)
m_frameImpl->dispatchWillSendRequest(request);
}
+void AssociatedURLLoader::willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse)
+{
+ m_realClient->willSendRequest(this, newRequest, redirectResponse);
+}
+
+void AssociatedURLLoader::didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
+{
+ m_realClient->didSendData(this, bytesSent, totalBytesToBeSent);
+}
+
+void AssociatedURLLoader::didReceiveResponse(WebURLLoader*, const WebURLResponse& response)
+{
+ m_realClient->didReceiveResponse(this, response);
+}
+
+void AssociatedURLLoader::didDownloadData(WebURLLoader*, int dataLength)
+{
+ m_realClient->didDownloadData(this, dataLength);
+}
+
+void AssociatedURLLoader::didReceiveData(WebURLLoader*, const char* data, int dataLength)
+{
+ m_realClient->didReceiveData(this, data, dataLength);
+}
+
+void AssociatedURLLoader::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength)
+{
+ m_realClient->didReceiveCachedMetadata(this, data, dataLength);
+}
+
+void AssociatedURLLoader::didFinishLoading(WebURLLoader*, double finishTime)
+{
+ m_realClient->didFinishLoading(this, finishTime);
+}
+
+void AssociatedURLLoader::didFail(WebURLLoader*, const WebURLError& error)
+{
+ m_realClient->didFail(this, error);
+}
+
} // namespace WebKit
diff --git a/WebKit/chromium/src/AssociatedURLLoader.h b/WebKit/chromium/src/AssociatedURLLoader.h
index 4c9f54e..91cb0bf 100644
--- a/WebKit/chromium/src/AssociatedURLLoader.h
+++ b/WebKit/chromium/src/AssociatedURLLoader.h
@@ -32,6 +32,7 @@
#define AssociatedURLLoader_h
#include "WebURLLoader.h"
+#include "WebURLLoaderClient.h"
#include <wtf/OwnPtr.h>
#include <wtf/RefPtr.h>
@@ -41,7 +42,8 @@ class WebFrameImpl;
// This class is used to implement WebFrame::createAssociatedURLLoader.
// FIXME: Implement in terms of WebCore::SubresourceLoader.
-class AssociatedURLLoader : public WebURLLoader {
+class AssociatedURLLoader : public WebURLLoader,
+ public WebURLLoaderClient {
public:
AssociatedURLLoader(PassRefPtr<WebFrameImpl>);
~AssociatedURLLoader();
@@ -52,11 +54,22 @@ public:
virtual void cancel();
virtual void setDefersLoading(bool);
+ // WebURLLoaderClient methods:
+ virtual void willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse);
+ virtual void didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent);
+ virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&);
+ virtual void didDownloadData(WebURLLoader*, int dataLength);
+ virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength);
+ virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength);
+ virtual void didFinishLoading(WebURLLoader*, double finishTime);
+ virtual void didFail(WebURLLoader*, const WebURLError&);
+
private:
void prepareRequest(WebURLRequest&);
RefPtr<WebFrameImpl> m_frameImpl;
OwnPtr<WebURLLoader> m_realLoader;
+ WebURLLoaderClient* m_realClient;
};
} // namespace WebKit
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list