Changeset 101195 in webkit
- Timestamp:
- Nov 26, 2011, 8:09:39 AM (15 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/qt/QtDownloadManager.cpp (modified) (3 diffs)
-
UIProcess/qt/QtDownloadManager.h (modified) (3 diffs)
-
UIProcess/qt/QtWebContext.cpp (modified) (1 diff)
-
UIProcess/qt/QtWebContext.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r101194 r101195 1 2011-11-26 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> 2 3 [Qt] [WK2] QtDownloadManager doesn't need to be RefCounted 4 https://bugs.webkit.org/show_bug.cgi?id=73151 5 6 Reviewed by Kenneth Rohde Christiansen. 7 8 QtDownloadManager is owned by QtWebContext, and doesn't need to be a RefCounted 9 class. This commit also makes the callback handlers private -- following the similar 10 approach we take in other clients of the C API. 11 12 * UIProcess/qt/QtDownloadManager.cpp: 13 (WebKit::QtDownloadManager::QtDownloadManager): 14 (WebKit::QtDownloadManager::addDownload): 15 (WebKit::toQtDownloadManager): 16 (WebKit::QtDownloadManager::didReceiveResponse): 17 (WebKit::QtDownloadManager::didCreateDestination): 18 (WebKit::QtDownloadManager::didFinishDownload): remove unused failingUrl local variable. 19 (WebKit::QtDownloadManager::didFailDownload): 20 (WebKit::QtDownloadManager::didReceiveDataForDownload): 21 * UIProcess/qt/QtDownloadManager.h: 22 * UIProcess/qt/QtWebContext.cpp: 23 (WebKit::QtWebContext::initialize): 24 * UIProcess/qt/QtWebContext.h: 25 1 26 2011-11-26 Sheriff Bot <webkit.review.bot@gmail.com> 2 27 -
trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
r101188 r101195 32 32 namespace WebKit { 33 33 34 static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)34 QtDownloadManager::QtDownloadManager(WebContext* context) 35 35 { 36 ASSERT(clientInfo); 37 return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo)); 38 } 39 40 static void qt_wk_didReceiveResponse(WKContextRef context, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo) 41 { 42 toQtDownloadManager(clientInfo)->downloadReceivedResponse(toImpl(download), toImpl(response)->resourceResponse()); 43 } 44 45 static void qt_wk_didCreateDestination(WKContextRef context, WKDownloadRef download, WKStringRef path, const void *clientInfo) 46 { 47 toQtDownloadManager(clientInfo)->downloadCreatedDestination(toImpl(download), WKStringCopyQString(path)); 48 } 49 50 static void qt_wk_didFinishDownload(WKContextRef context, WKDownloadRef download, const void *clientInfo) 51 { 52 toQtDownloadManager(clientInfo)->downloadFinished(toImpl(download)); 53 } 54 55 static void qt_wk_didFailDownload(WKContextRef context, WKDownloadRef download, WKErrorRef error, const void *clientInfo) 56 { 57 QUrl failingUrl = WKURLCopyQUrl(adoptWK(WKErrorCopyFailingURL(error)).get()); 58 59 toQtDownloadManager(clientInfo)->downloadFailed(toImpl(download), QtWebError(error)); 60 } 61 62 static void qt_wk_didReceiveDataForDownload(WKContextRef context, WKDownloadRef download, uint64_t length, const void *clientInfo) 63 { 64 toQtDownloadManager(clientInfo)->downloadDataReceived(toImpl(download), length); 65 } 66 67 QtDownloadManager::QtDownloadManager() 68 { 36 WKContextDownloadClient downloadClient; 37 memset(&downloadClient, 0, sizeof(WKContextDownloadClient)); 38 downloadClient.version = kWKContextDownloadClientCurrentVersion; 39 downloadClient.clientInfo = this; 40 downloadClient.didReceiveResponse = didReceiveResponse; 41 downloadClient.didReceiveData = didReceiveDataForDownload; 42 downloadClient.didCreateDestination = didCreateDestination; 43 downloadClient.didFinish = didFinishDownload; 44 downloadClient.didFail = didFailDownload; 45 WKContextSetDownloadClient(toAPI(context), &downloadClient); 69 46 } 70 47 … … 73 50 } 74 51 75 PassRefPtr<QtDownloadManager> QtDownloadManager::create(WebContext* context)52 void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem) 76 53 { 77 QtDownloadManager* manager = new QtDownloadManager(); 78 79 WKContextDownloadClient downloadClient; 80 memset(&downloadClient, 0, sizeof(WKContextDownloadClient)); 81 downloadClient.version = kWKContextDownloadClientCurrentVersion; 82 downloadClient.clientInfo = manager; 83 downloadClient.didReceiveResponse = qt_wk_didReceiveResponse; 84 downloadClient.didReceiveData = qt_wk_didReceiveDataForDownload; 85 downloadClient.didCreateDestination = qt_wk_didCreateDestination; 86 downloadClient.didFinish = qt_wk_didFinishDownload; 87 downloadClient.didFail = qt_wk_didFailDownload; 88 WKContextSetDownloadClient(toAPI(context), &downloadClient); 89 return adoptRef(manager); 54 m_downloads[download->downloadID()] = downloadItem; 90 55 } 91 56 … … 137 102 } 138 103 139 void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)104 static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo) 140 105 { 141 m_downloads[download->downloadID()] = downloadItem; 106 ASSERT(clientInfo); 107 return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo)); 108 } 109 110 void QtDownloadManager::didReceiveResponse(WKContextRef, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo) 111 { 112 toQtDownloadManager(clientInfo)->downloadReceivedResponse(toImpl(download), toImpl(response)->resourceResponse()); 113 } 114 115 void QtDownloadManager::didCreateDestination(WKContextRef, WKDownloadRef download, WKStringRef path, const void *clientInfo) 116 { 117 toQtDownloadManager(clientInfo)->downloadCreatedDestination(toImpl(download), WKStringCopyQString(path)); 118 } 119 120 void QtDownloadManager::didFinishDownload(WKContextRef, WKDownloadRef download, const void *clientInfo) 121 { 122 toQtDownloadManager(clientInfo)->downloadFinished(toImpl(download)); 123 } 124 125 void QtDownloadManager::didFailDownload(WKContextRef, WKDownloadRef download, WKErrorRef error, const void *clientInfo) 126 { 127 toQtDownloadManager(clientInfo)->downloadFailed(toImpl(download), QtWebError(error)); 128 } 129 130 void QtDownloadManager::didReceiveDataForDownload(WKContextRef, WKDownloadRef download, uint64_t length, const void *clientInfo) 131 { 132 toQtDownloadManager(clientInfo)->downloadDataReceived(toImpl(download), length); 142 133 } 143 134 -
trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.h
r99178 r101195 23 23 24 24 #include <QMap> 25 #include <wtf/PassRefPtr.h> 26 #include <wtf/RefCounted.h> 25 #include <WKContext.h> 27 26 28 27 class QtWebError; … … 38 37 class WebContext; 39 38 40 class QtDownloadManager : public RefCounted<QtDownloadManager>{39 class QtDownloadManager { 41 40 public: 41 QtDownloadManager(WebContext*); 42 42 ~QtDownloadManager(); 43 43 44 44 void addDownload(DownloadProxy*, QWebDownloadItem*); 45 45 46 private: 46 47 void downloadReceivedResponse(DownloadProxy*, const WebCore::ResourceResponse&); 47 48 void downloadCreatedDestination(DownloadProxy*, const QString& path); … … 50 51 void downloadDataReceived(DownloadProxy*, uint64_t length); 51 52 52 static PassRefPtr<QtDownloadManager> create(WebContext*); 53 private: 54 QtDownloadManager(); 53 // WKContextDownloadClient callbacks. 54 static void didReceiveResponse(WKContextRef, WKDownloadRef, WKURLResponseRef, const void* clientInfo); 55 static void didCreateDestination(WKContextRef, WKDownloadRef, WKStringRef path, const void* clientInfo); 56 static void didFinishDownload(WKContextRef, WKDownloadRef, const void* clientInfo); 57 static void didFailDownload(WKContextRef, WKDownloadRef, WKErrorRef, const void* clientInfo); 58 static void didReceiveDataForDownload(WKContextRef, WKDownloadRef, uint64_t length, const void* clientInfo); 55 59 56 60 QMap<uint64_t, QWebDownloadItem*> m_downloads; -
trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp
r101188 r101195 93 93 void QtWebContext::initialize() 94 94 { 95 m_downloadManager = QtDownloadManager::create(m_context.get());95 m_downloadManager = adoptPtr(new QtDownloadManager(m_context.get())); 96 96 initializeContextInjectedBundleClient(); 97 97 } -
trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h
r101188 r101195 23 23 24 24 #include <WKContext.h> 25 #include <wtf/OwnPtr.h> 25 26 #include <wtf/RefCounted.h> 26 27 #include <wtf/RefPtr.h> … … 60 61 61 62 RefPtr<WebContext> m_context; 62 RefPtr<QtDownloadManager> m_downloadManager;63 OwnPtr<QtDownloadManager> m_downloadManager; 63 64 }; 64 65
Note:
See TracChangeset
for help on using the changeset viewer.