Diff
Modified: trunk/Source/WebKit2/ChangeLog (137808 => 137809)
--- trunk/Source/WebKit2/ChangeLog 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/ChangeLog 2012-12-15 21:53:11 UTC (rev 137809)
@@ -1,3 +1,27 @@
+2012-12-15 Anders Carlsson <[email protected]>
+
+ Remove WebContext::downloadFinished
+ https://bugs.webkit.org/show_bug.cgi?id=105105
+
+ Reviewed by Sam Weinig.
+
+ Have DownloadProxyMap manage the message receiver map and remove WebContext::downloadFinished.
+
+ * UIProcess/Downloads/DownloadProxy.cpp:
+ (WebKit::DownloadProxy::didFinish):
+ (WebKit::DownloadProxy::didFail):
+ (WebKit::DownloadProxy::didCancel):
+ * UIProcess/Downloads/DownloadProxyMap.cpp:
+ (WebKit::DownloadProxyMap::DownloadProxyMap):
+ (WebKit::DownloadProxyMap::createDownloadProxy):
+ (WebKit::DownloadProxyMap::downloadFinished):
+ * UIProcess/Downloads/DownloadProxyMap.h:
+ (DownloadProxyMap):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::createDownloadProxy):
+ * UIProcess/WebContext.h:
+
2012-12-15 Sam Weinig <[email protected]>
Make the NetworkProcess be managed by the WebContext, rather than a singleton NetworkProcessMananger
Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp (137808 => 137809)
--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp 2012-12-15 21:53:11 UTC (rev 137809)
@@ -167,7 +167,7 @@
m_webContext->downloadClient().didFinish(m_webContext, this);
// This can cause the DownloadProxy object to be deleted.
- m_webContext->downloadFinished(this);
+ m_downloadProxyMap.downloadFinished(this);
}
static PassRefPtr<WebData> createWebData(const CoreIPC::DataReference& data)
@@ -188,7 +188,7 @@
m_webContext->downloadClient().didFail(m_webContext, this, error);
// This can cause the DownloadProxy object to be deleted.
- m_webContext->downloadFinished(this);
+ m_downloadProxyMap.downloadFinished(this);
}
void DownloadProxy::didCancel(const CoreIPC::DataReference& resumeData)
@@ -198,7 +198,7 @@
m_webContext->downloadClient().didCancel(m_webContext, this);
// This can cause the DownloadProxy object to be deleted.
- m_webContext->downloadFinished(this);
+ m_downloadProxyMap.downloadFinished(this);
}
#if PLATFORM(QT)
Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp (137808 => 137809)
--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp 2012-12-15 21:53:11 UTC (rev 137809)
@@ -27,11 +27,14 @@
#include "DownloadProxyMap.h"
#include "DownloadProxy.h"
+#include "DownloadProxyMessages.h"
+#include "MessageReceiverMap.h"
#include <wtf/StdLibExtras.h>
namespace WebKit {
-DownloadProxyMap::DownloadProxyMap()
+DownloadProxyMap::DownloadProxyMap(CoreIPC::MessageReceiverMap& messageReceiverMap)
+ : m_messageReceiverMap(messageReceiverMap)
{
}
@@ -45,6 +48,8 @@
RefPtr<DownloadProxy> downloadProxy = DownloadProxy::create(*this, webContext);
m_downloads.set(downloadProxy->downloadID(), downloadProxy);
+ m_messageReceiverMap.addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID(), downloadProxy.get());
+
return downloadProxy.get();
}
@@ -53,8 +58,9 @@
ASSERT(m_downloads.contains(downloadProxy->downloadID()));
downloadProxy->invalidate();
+ m_downloads.remove(downloadProxy->downloadID());
- m_downloads.remove(downloadProxy->downloadID());
+ m_messageReceiverMap.removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID());
}
void DownloadProxyMap::processDidClose()
Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h (137808 => 137809)
--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h 2012-12-15 21:53:11 UTC (rev 137809)
@@ -30,6 +30,10 @@
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
+namespace CoreIPC {
+class MessageReceiverMap;
+}
+
namespace WebKit {
class DownloadProxy;
@@ -39,7 +43,7 @@
WTF_MAKE_NONCOPYABLE(DownloadProxyMap);
public:
- DownloadProxyMap();
+ explicit DownloadProxyMap(CoreIPC::MessageReceiverMap&);
~DownloadProxyMap();
DownloadProxy* createDownloadProxy(WebContext*);
@@ -50,6 +54,8 @@
void processDidClose();
private:
+ CoreIPC::MessageReceiverMap& m_messageReceiverMap;
+
HashMap<uint64_t, RefPtr<DownloadProxy> > m_downloads;
};
Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (137808 => 137809)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2012-12-15 21:53:11 UTC (rev 137809)
@@ -128,6 +128,7 @@
, m_alwaysUsesComplexTextCodePath(false)
, m_shouldUseFontSmoothing(true)
, m_cacheModel(CacheModelDocumentViewer)
+ , m_downloads(m_messageReceiverMap)
, m_memorySamplerEnabled(false)
, m_memorySamplerInterval(1400.0)
#if PLATFORM(WIN)
@@ -846,18 +847,9 @@
DownloadProxy* WebContext::createDownloadProxy()
{
- DownloadProxy* downloadProxy = m_downloads.createDownloadProxy(this);
- addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID(), downloadProxy);
- return downloadProxy;
+ return m_downloads.createDownloadProxy(this);
}
-void WebContext::downloadFinished(DownloadProxy* downloadProxy)
-{
- m_downloads.downloadFinished(downloadProxy);
-
- removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy->downloadID());
-}
-
// FIXME: This is not the ideal place for this function.
HashSet<String, CaseFoldingHash> WebContext::pdfAndPostScriptMIMETypes()
{
Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (137808 => 137809)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2012-12-15 21:31:14 UTC (rev 137808)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2012-12-15 21:53:11 UTC (rev 137809)
@@ -181,7 +181,6 @@
// Downloads.
DownloadProxy* createDownloadProxy();
WebDownloadClient& downloadClient() { return m_downloadClient; }
- void downloadFinished(DownloadProxy*);
WebHistoryClient& historyClient() { return m_historyClient; }