Title: [101195] trunk/Source/WebKit2
Revision
101195
Author
[email protected]
Date
2011-11-26 08:09:39 -0800 (Sat, 26 Nov 2011)

Log Message

[Qt] [WK2] QtDownloadManager doesn't need to be RefCounted
https://bugs.webkit.org/show_bug.cgi?id=73151

Reviewed by Kenneth Rohde Christiansen.

QtDownloadManager is owned by QtWebContext, and doesn't need to be a RefCounted
class. This commit also makes the callback handlers private -- following the similar
approach we take in other clients of the C API.

* UIProcess/qt/QtDownloadManager.cpp:
(WebKit::QtDownloadManager::QtDownloadManager):
(WebKit::QtDownloadManager::addDownload):
(WebKit::toQtDownloadManager):
(WebKit::QtDownloadManager::didReceiveResponse):
(WebKit::QtDownloadManager::didCreateDestination):
(WebKit::QtDownloadManager::didFinishDownload): remove unused failingUrl local variable.
(WebKit::QtDownloadManager::didFailDownload):
(WebKit::QtDownloadManager::didReceiveDataForDownload):
* UIProcess/qt/QtDownloadManager.h:
* UIProcess/qt/QtWebContext.cpp:
(WebKit::QtWebContext::initialize):
* UIProcess/qt/QtWebContext.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (101194 => 101195)


--- trunk/Source/WebKit2/ChangeLog	2011-11-26 15:51:44 UTC (rev 101194)
+++ trunk/Source/WebKit2/ChangeLog	2011-11-26 16:09:39 UTC (rev 101195)
@@ -1,3 +1,28 @@
+2011-11-26  Caio Marcelo de Oliveira Filho  <[email protected]>
+
+        [Qt] [WK2] QtDownloadManager doesn't need to be RefCounted
+        https://bugs.webkit.org/show_bug.cgi?id=73151
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        QtDownloadManager is owned by QtWebContext, and doesn't need to be a RefCounted
+        class. This commit also makes the callback handlers private -- following the similar
+        approach we take in other clients of the C API.
+
+        * UIProcess/qt/QtDownloadManager.cpp:
+        (WebKit::QtDownloadManager::QtDownloadManager):
+        (WebKit::QtDownloadManager::addDownload):
+        (WebKit::toQtDownloadManager):
+        (WebKit::QtDownloadManager::didReceiveResponse):
+        (WebKit::QtDownloadManager::didCreateDestination):
+        (WebKit::QtDownloadManager::didFinishDownload): remove unused failingUrl local variable.
+        (WebKit::QtDownloadManager::didFailDownload):
+        (WebKit::QtDownloadManager::didReceiveDataForDownload):
+        * UIProcess/qt/QtDownloadManager.h:
+        * UIProcess/qt/QtWebContext.cpp:
+        (WebKit::QtWebContext::initialize):
+        * UIProcess/qt/QtWebContext.h:
+
 2011-11-26  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r101193.

Modified: trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp (101194 => 101195)


--- trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp	2011-11-26 15:51:44 UTC (rev 101194)
+++ trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp	2011-11-26 16:09:39 UTC (rev 101195)
@@ -31,62 +31,27 @@
 
 namespace WebKit {
 
-static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
+QtDownloadManager::QtDownloadManager(WebContext* context)
 {
-    ASSERT(clientInfo);
-    return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo));
+    WKContextDownloadClient downloadClient;
+    memset(&downloadClient, 0, sizeof(WKContextDownloadClient));
+    downloadClient.version = kWKContextDownloadClientCurrentVersion;
+    downloadClient.clientInfo = this;
+    downloadClient.didReceiveResponse = didReceiveResponse;
+    downloadClient.didReceiveData = didReceiveDataForDownload;
+    downloadClient.didCreateDestination = didCreateDestination;
+    downloadClient.didFinish = didFinishDownload;
+    downloadClient.didFail = didFailDownload;
+    WKContextSetDownloadClient(toAPI(context), &downloadClient);
 }
 
-static void qt_wk_didReceiveResponse(WKContextRef context, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo)
-{
-    toQtDownloadManager(clientInfo)->downloadReceivedResponse(toImpl(download), toImpl(response)->resourceResponse());
-}
-
-static void qt_wk_didCreateDestination(WKContextRef context, WKDownloadRef download, WKStringRef path, const void *clientInfo)
-{
-    toQtDownloadManager(clientInfo)->downloadCreatedDestination(toImpl(download), WKStringCopyQString(path));
-}
-
-static void qt_wk_didFinishDownload(WKContextRef context, WKDownloadRef download, const void *clientInfo)
-{
-    toQtDownloadManager(clientInfo)->downloadFinished(toImpl(download));
-}
-
-static void qt_wk_didFailDownload(WKContextRef context, WKDownloadRef download, WKErrorRef error, const void *clientInfo)
-{
-    QUrl failingUrl = WKURLCopyQUrl(adoptWK(WKErrorCopyFailingURL(error)).get());
-
-    toQtDownloadManager(clientInfo)->downloadFailed(toImpl(download), QtWebError(error));
-}
-
-static void qt_wk_didReceiveDataForDownload(WKContextRef context, WKDownloadRef download, uint64_t length, const void *clientInfo)
-{
-    toQtDownloadManager(clientInfo)->downloadDataReceived(toImpl(download), length);
-}
-
-QtDownloadManager::QtDownloadManager()
-{
-}
-
 QtDownloadManager::~QtDownloadManager()
 {
 }
 
-PassRefPtr<QtDownloadManager> QtDownloadManager::create(WebContext* context)
+void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)
 {
-    QtDownloadManager* manager = new QtDownloadManager();
-
-    WKContextDownloadClient downloadClient;
-    memset(&downloadClient, 0, sizeof(WKContextDownloadClient));
-    downloadClient.version = kWKContextDownloadClientCurrentVersion;
-    downloadClient.clientInfo = manager;
-    downloadClient.didReceiveResponse = qt_wk_didReceiveResponse;
-    downloadClient.didReceiveData = qt_wk_didReceiveDataForDownload;
-    downloadClient.didCreateDestination = qt_wk_didCreateDestination;
-    downloadClient.didFinish = qt_wk_didFinishDownload;
-    downloadClient.didFail = qt_wk_didFailDownload;
-    WKContextSetDownloadClient(toAPI(context), &downloadClient);
-    return adoptRef(manager);
+    m_downloads[download->downloadID()] = downloadItem;
 }
 
 void QtDownloadManager::downloadReceivedResponse(DownloadProxy* download, const WebCore::ResourceResponse& response)
@@ -136,9 +101,35 @@
     emit downloadItem->totalBytesReceivedChanged(length);
 }
 
-void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)
+static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
 {
-    m_downloads[download->downloadID()] = downloadItem;
+    ASSERT(clientInfo);
+    return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo));
 }
 
+void QtDownloadManager::didReceiveResponse(WKContextRef, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo)
+{
+    toQtDownloadManager(clientInfo)->downloadReceivedResponse(toImpl(download), toImpl(response)->resourceResponse());
 }
+
+void QtDownloadManager::didCreateDestination(WKContextRef, WKDownloadRef download, WKStringRef path, const void *clientInfo)
+{
+    toQtDownloadManager(clientInfo)->downloadCreatedDestination(toImpl(download), WKStringCopyQString(path));
+}
+
+void QtDownloadManager::didFinishDownload(WKContextRef, WKDownloadRef download, const void *clientInfo)
+{
+    toQtDownloadManager(clientInfo)->downloadFinished(toImpl(download));
+}
+
+void QtDownloadManager::didFailDownload(WKContextRef, WKDownloadRef download, WKErrorRef error, const void *clientInfo)
+{
+    toQtDownloadManager(clientInfo)->downloadFailed(toImpl(download), QtWebError(error));
+}
+
+void QtDownloadManager::didReceiveDataForDownload(WKContextRef, WKDownloadRef download, uint64_t length, const void *clientInfo)
+{
+    toQtDownloadManager(clientInfo)->downloadDataReceived(toImpl(download), length);
+}
+
+}

Modified: trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.h (101194 => 101195)


--- trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.h	2011-11-26 15:51:44 UTC (rev 101194)
+++ trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.h	2011-11-26 16:09:39 UTC (rev 101195)
@@ -22,8 +22,7 @@
 #define QtDownloadManager_h
 
 #include <QMap>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
+#include <WKContext.h>
 
 class QtWebError;
 class QWebDownloadItem;
@@ -37,21 +36,26 @@
 class DownloadProxy;
 class WebContext;
 
-class QtDownloadManager : public RefCounted<QtDownloadManager> {
+class QtDownloadManager {
 public:
+    QtDownloadManager(WebContext*);
     ~QtDownloadManager();
 
     void addDownload(DownloadProxy*, QWebDownloadItem*);
 
+private:
     void downloadReceivedResponse(DownloadProxy*, const WebCore::ResourceResponse&);
     void downloadCreatedDestination(DownloadProxy*, const QString& path);
     void downloadFinished(DownloadProxy*);
     void downloadFailed(DownloadProxy*, const QtWebError&);
     void downloadDataReceived(DownloadProxy*, uint64_t length);
 
-    static PassRefPtr<QtDownloadManager> create(WebContext*);
-private:
-    QtDownloadManager();
+    // WKContextDownloadClient callbacks.
+    static void didReceiveResponse(WKContextRef, WKDownloadRef, WKURLResponseRef, const void* clientInfo);
+    static void didCreateDestination(WKContextRef, WKDownloadRef, WKStringRef path, const void* clientInfo);
+    static void didFinishDownload(WKContextRef, WKDownloadRef, const void* clientInfo);
+    static void didFailDownload(WKContextRef, WKDownloadRef, WKErrorRef, const void* clientInfo);
+    static void didReceiveDataForDownload(WKContextRef, WKDownloadRef, uint64_t length, const void* clientInfo);
 
     QMap<uint64_t, QWebDownloadItem*> m_downloads;
 };

Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp (101194 => 101195)


--- trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp	2011-11-26 15:51:44 UTC (rev 101194)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp	2011-11-26 16:09:39 UTC (rev 101195)
@@ -92,7 +92,7 @@
 
 void QtWebContext::initialize()
 {
-    m_downloadManager = QtDownloadManager::create(m_context.get());
+    m_downloadManager = adoptPtr(new QtDownloadManager(m_context.get()));
     initializeContextInjectedBundleClient();
 }
 

Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h (101194 => 101195)


--- trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h	2011-11-26 15:51:44 UTC (rev 101194)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h	2011-11-26 16:09:39 UTC (rev 101195)
@@ -22,6 +22,7 @@
 #define QtWebContext_h
 
 #include <WKContext.h>
+#include <wtf/OwnPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
 
@@ -59,7 +60,7 @@
     static QtWebContext* s_defaultContext;
 
     RefPtr<WebContext> m_context;
-    RefPtr<QtDownloadManager> m_downloadManager;
+    OwnPtr<QtDownloadManager> m_downloadManager;
 };
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to