Title: [137655] trunk/Source/WebKit2
- Revision
- 137655
- Author
- ander...@apple.com
- Date
- 2012-12-13 14:27:24 -0800 (Thu, 13 Dec 2012)
Log Message
DownloadManager shouldn't call the web process directly
https://bugs.webkit.org/show_bug.cgi?id=104946
Reviewed by Antti Koivisto.
Introduce the needed DownloadManager::Client member functions and have Download call them instead of calling the web process directly.
* WebProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::~Download):
(WebKit::Download::connection):
* WebProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::DownloadManager):
(WebKit::DownloadManager::didCreateDownload):
(WebKit::DownloadManager::didDestroyDownload):
(WebKit::DownloadManager::connection):
* WebProcess/Downloads/DownloadManager.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didCreateDownload):
(WebKit::WebProcess::didDestroyDownload):
* WebProcess/WebProcess.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (137654 => 137655)
--- trunk/Source/WebKit2/ChangeLog 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/ChangeLog 2012-12-13 22:27:24 UTC (rev 137655)
@@ -1,3 +1,27 @@
+2012-12-13 Anders Carlsson <ander...@apple.com>
+
+ DownloadManager shouldn't call the web process directly
+ https://bugs.webkit.org/show_bug.cgi?id=104946
+
+ Reviewed by Antti Koivisto.
+
+ Introduce the needed DownloadManager::Client member functions and have Download call them instead of calling the web process directly.
+
+ * WebProcess/Downloads/Download.cpp:
+ (WebKit::Download::Download):
+ (WebKit::Download::~Download):
+ (WebKit::Download::connection):
+ * WebProcess/Downloads/DownloadManager.cpp:
+ (WebKit::DownloadManager::DownloadManager):
+ (WebKit::DownloadManager::didCreateDownload):
+ (WebKit::DownloadManager::didDestroyDownload):
+ (WebKit::DownloadManager::connection):
+ * WebProcess/Downloads/DownloadManager.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::didCreateDownload):
+ (WebKit::WebProcess::didDestroyDownload):
+ * WebProcess/WebProcess.h:
+
2012-12-13 Alexey Proskuryakov <a...@apple.com>
<rdar://problem/12838354> Per-Tab WebProcess: DOM cookie access functions should respect private browsing
Modified: trunk/Source/WebKit2/WebProcess/Downloads/Download.cpp (137654 => 137655)
--- trunk/Source/WebKit2/WebProcess/Downloads/Download.cpp 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/WebProcess/Downloads/Download.cpp 2012-12-13 22:27:24 UTC (rev 137655)
@@ -34,7 +34,6 @@
#include "DownloadManager.h"
#include "SandboxExtension.h"
#include "WebCoreArgumentCoders.h"
-#include "WebProcess.h"
using namespace WebCore;
@@ -57,19 +56,19 @@
{
ASSERT(m_downloadID);
- WebProcess::shared().disableTermination();
+ m_downloadManager.didCreateDownload();
}
Download::~Download()
{
platformInvalidate();
- WebProcess::shared().enableTermination();
+ m_downloadManager.didDestroyDownload();
}
CoreIPC::Connection* Download::connection() const
{
- return WebProcess::shared().connection();
+ return m_downloadManager.connection();
}
void Download::didStart()
Modified: trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.cpp (137654 => 137655)
--- trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.cpp 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.cpp 2012-12-13 22:27:24 UTC (rev 137655)
@@ -27,7 +27,6 @@
#include "DownloadManager.h"
#include "Download.h"
-#include "WebProcess.h"
#include <wtf/StdLibExtras.h>
using namespace WebCore;
@@ -37,8 +36,6 @@
DownloadManager::DownloadManager(Client* client)
: m_client(client)
{
- // FIXME: Actually use the client for something.
- (void)m_client;
}
void DownloadManager::startDownload(uint64_t downloadID, const ResourceRequest& request)
@@ -76,6 +73,21 @@
delete download;
}
+void DownloadManager::didCreateDownload()
+{
+ m_client->didCreateDownload();
+}
+
+void DownloadManager::didDestroyDownload()
+{
+ m_client->didDestroyDownload();
+}
+
+CoreIPC::Connection* DownloadManager::connection()
+{
+ return m_client->connection();
+}
+
#if PLATFORM(QT)
void DownloadManager::startTransfer(uint64_t downloadID, const String& destination)
{
Modified: trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.h (137654 => 137655)
--- trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.h 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/WebProcess/Downloads/DownloadManager.h 2012-12-13 22:27:24 UTC (rev 137655)
@@ -26,17 +26,18 @@
#ifndef DownloadManager_h
#define DownloadManager_h
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
-namespace WTF {
-class String;
+namespace WebCore {
+class ResourceHandle;
+class ResourceRequest;
+class ResourceResponse;
}
-namespace WebCore {
- class ResourceHandle;
- class ResourceRequest;
- class ResourceResponse;
+namespace CoreIPC {
+class Connection;
}
namespace WebKit {
@@ -51,6 +52,11 @@
class Client {
public:
virtual ~Client() { }
+
+ virtual void didCreateDownload() = 0;
+ virtual void didDestroyDownload() = 0;
+
+ virtual CoreIPC::Connection* connection() const = 0;
};
explicit DownloadManager(Client*);
@@ -63,8 +69,13 @@
void downloadFinished(Download*);
bool isDownloading() const { return !m_downloads.isEmpty(); }
+ void didCreateDownload();
+ void didDestroyDownload();
+
+ CoreIPC::Connection* connection();
+
#if PLATFORM(QT)
- void startTransfer(uint64_t downloadID, const WTF::String& destination);
+ void startTransfer(uint64_t downloadID, const String& destination);
#endif
private:
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (137654 => 137655)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2012-12-13 22:27:24 UTC (rev 137655)
@@ -219,6 +219,16 @@
m_messageReceiverMap.removeMessageReceiver(messageReceiverName, destinationID);
}
+void WebProcess::didCreateDownload()
+{
+ disableTermination();
+}
+
+void WebProcess::didDestroyDownload()
+{
+ enableTermination();
+}
+
void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::MessageDecoder& decoder)
{
ASSERT(m_pageMap.isEmpty());
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (137654 => 137655)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2012-12-13 22:25:43 UTC (rev 137654)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2012-12-13 22:27:24 UTC (rev 137655)
@@ -221,6 +221,10 @@
private:
WebProcess();
+ // DownloadManager::Client.
+ virtual void didCreateDownload() OVERRIDE;
+ virtual void didDestroyDownload() OVERRIDE;
+
void initializeWebProcess(const WebProcessCreationParameters&, CoreIPC::MessageDecoder&);
void platformInitializeWebProcess(const WebProcessCreationParameters&, CoreIPC::MessageDecoder&);
void platformTerminate();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes