⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 101195 in webkit


Ignore:
Timestamp:
Nov 26, 2011, 8:09:39 AM (15 years ago)
Author:
caio.oliveira@openbossa.org
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:
Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r101194 r101195  
     12011-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
    1262011-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>
    227
  • trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp

    r101188 r101195  
    3232namespace WebKit {
    3333
    34 static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
     34QtDownloadManager::QtDownloadManager(WebContext* context)
    3535{
    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);
    6946}
    7047
     
    7350}
    7451
    75 PassRefPtr<QtDownloadManager> QtDownloadManager::create(WebContext* context)
     52void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)
    7653{
    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;
    9055}
    9156
     
    137102}
    138103
    139 void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)
     104static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
    140105{
    141     m_downloads[download->downloadID()] = downloadItem;
     106    ASSERT(clientInfo);
     107    return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo));
     108}
     109
     110void QtDownloadManager::didReceiveResponse(WKContextRef, WKDownloadRef download, WKURLResponseRef response, const void *clientInfo)
     111{
     112    toQtDownloadManager(clientInfo)->downloadReceivedResponse(toImpl(download), toImpl(response)->resourceResponse());
     113}
     114
     115void QtDownloadManager::didCreateDestination(WKContextRef, WKDownloadRef download, WKStringRef path, const void *clientInfo)
     116{
     117    toQtDownloadManager(clientInfo)->downloadCreatedDestination(toImpl(download), WKStringCopyQString(path));
     118}
     119
     120void QtDownloadManager::didFinishDownload(WKContextRef, WKDownloadRef download, const void *clientInfo)
     121{
     122    toQtDownloadManager(clientInfo)->downloadFinished(toImpl(download));
     123}
     124
     125void QtDownloadManager::didFailDownload(WKContextRef, WKDownloadRef download, WKErrorRef error, const void *clientInfo)
     126{
     127    toQtDownloadManager(clientInfo)->downloadFailed(toImpl(download), QtWebError(error));
     128}
     129
     130void QtDownloadManager::didReceiveDataForDownload(WKContextRef, WKDownloadRef download, uint64_t length, const void *clientInfo)
     131{
     132    toQtDownloadManager(clientInfo)->downloadDataReceived(toImpl(download), length);
    142133}
    143134
  • trunk/Source/WebKit2/UIProcess/qt/QtDownloadManager.h

    r99178 r101195  
    2323
    2424#include <QMap>
    25 #include <wtf/PassRefPtr.h>
    26 #include <wtf/RefCounted.h>
     25#include <WKContext.h>
    2726
    2827class QtWebError;
     
    3837class WebContext;
    3938
    40 class QtDownloadManager : public RefCounted<QtDownloadManager> {
     39class QtDownloadManager {
    4140public:
     41    QtDownloadManager(WebContext*);
    4242    ~QtDownloadManager();
    4343
    4444    void addDownload(DownloadProxy*, QWebDownloadItem*);
    4545
     46private:
    4647    void downloadReceivedResponse(DownloadProxy*, const WebCore::ResourceResponse&);
    4748    void downloadCreatedDestination(DownloadProxy*, const QString& path);
     
    5051    void downloadDataReceived(DownloadProxy*, uint64_t length);
    5152
    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);
    5559
    5660    QMap<uint64_t, QWebDownloadItem*> m_downloads;
  • trunk/Source/WebKit2/UIProcess/qt/QtWebContext.cpp

    r101188 r101195  
    9393void QtWebContext::initialize()
    9494{
    95     m_downloadManager = QtDownloadManager::create(m_context.get());
     95    m_downloadManager = adoptPtr(new QtDownloadManager(m_context.get()));
    9696    initializeContextInjectedBundleClient();
    9797}
  • trunk/Source/WebKit2/UIProcess/qt/QtWebContext.h

    r101188 r101195  
    2323
    2424#include <WKContext.h>
     25#include <wtf/OwnPtr.h>
    2526#include <wtf/RefCounted.h>
    2627#include <wtf/RefPtr.h>
     
    6061
    6162    RefPtr<WebContext> m_context;
    62     RefPtr<QtDownloadManager> m_downloadManager;
     63    OwnPtr<QtDownloadManager> m_downloadManager;
    6364};
    6465
Note: See TracChangeset for help on using the changeset viewer.