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

Reply via email to