summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp')
-rw-r--r--Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp96
1 files changed, 41 insertions, 55 deletions
diff --git a/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp b/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
index eb76f1aed..514a3e554 100644
--- a/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp
@@ -21,17 +21,23 @@
#include "config.h"
#include "QtDownloadManager.h"
-#include "DownloadProxy.h"
#include "QtWebError.h"
-#include "WKStringQt.h"
-#include "WKURLQt.h"
-#include "WebContext.h"
#include "qwebdownloaditem_p.h"
#include "qwebdownloaditem_p_p.h"
+#include <WKDownload.h>
+#include <WKStringQt.h>
+#include <WKURLQt.h>
+#include <WKURLResponse.h>
namespace WebKit {
-QtDownloadManager::QtDownloadManager(WebContext* context)
+static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
+{
+ ASSERT(clientInfo);
+ return reinterpret_cast<QtDownloadManager*>(const_cast<void*>(clientInfo));
+}
+
+QtDownloadManager::QtDownloadManager(WKContextRef context)
{
WKContextDownloadClient downloadClient;
memset(&downloadClient, 0, sizeof(WKContextDownloadClient));
@@ -42,52 +48,60 @@ QtDownloadManager::QtDownloadManager(WebContext* context)
downloadClient.didCreateDestination = didCreateDestination;
downloadClient.didFinish = didFinishDownload;
downloadClient.didFail = didFailDownload;
- WKContextSetDownloadClient(toAPI(context), &downloadClient);
+ WKContextSetDownloadClient(context, &downloadClient);
}
QtDownloadManager::~QtDownloadManager()
{
}
-void QtDownloadManager::addDownload(DownloadProxy* download, QWebDownloadItem* downloadItem)
+void QtDownloadManager::addDownload(WKDownloadRef download, QWebDownloadItem* downloadItem)
{
- m_downloads[download->downloadID()] = downloadItem;
+ m_downloads[WKDownloadGetID(download)] = downloadItem;
}
-void QtDownloadManager::downloadReceivedResponse(DownloadProxy* download, const WebCore::ResourceResponse& response)
+void QtDownloadManager::didReceiveResponse(WKContextRef, WKDownloadRef download, WKURLResponseRef response, const void* clientInfo)
{
+ QtDownloadManager* q = toQtDownloadManager(clientInfo);
+
// Will be called when the headers are read by WebProcess.
- QWebDownloadItem* downloadItem = m_downloads.value(download->downloadID());
+ QWebDownloadItem* downloadItem = q->m_downloads.value(WKDownloadGetID(download));
ASSERT(downloadItem);
- downloadItem->d->sourceUrl = response.url();
- downloadItem->d->mimeType = response.mimeType();
- downloadItem->d->expectedContentLength = response.expectedContentLength();
- downloadItem->d->suggestedFilename = response.suggestedFilename();
+ downloadItem->d->sourceUrl = adoptToQUrl(WKURLResponseCopyURL(response));
+ downloadItem->d->mimeType = adoptToQString(WKURLResponseCopyMIMEType(response));
+ downloadItem->d->expectedContentLength = WKURLResponseGetExpectedContentLength(response);
+ downloadItem->d->suggestedFilename = WKStringCopyQString(adoptWK(WKURLResponseCopySuggestedFilename(response)).get());
downloadItem->d->didReceiveResponse(downloadItem);
}
-void QtDownloadManager::downloadCreatedDestination(DownloadProxy* download, const QString& path)
+void QtDownloadManager::didCreateDestination(WKContextRef, WKDownloadRef download, WKStringRef path, const void* clientInfo)
{
- QWebDownloadItem* downloadItem = m_downloads.value(download->downloadID());
+ QtDownloadManager* q = toQtDownloadManager(clientInfo);
+
+ QWebDownloadItem* downloadItem = q->m_downloads.value(WKDownloadGetID(download));
ASSERT(downloadItem);
- downloadItem->d->destinationPath = path;
+ downloadItem->d->destinationPath = WKStringCopyQString(path);
emit downloadItem->destinationFileCreated(downloadItem->d->destinationPath);
}
-void QtDownloadManager::downloadFinished(DownloadProxy* download)
+void QtDownloadManager::didFinishDownload(WKContextRef, WKDownloadRef download, const void *clientInfo)
{
+ QtDownloadManager* q = toQtDownloadManager(clientInfo);
+
// Will be called when download finishes with success.
- QWebDownloadItem* downloadItem = m_downloads.take(download->downloadID());
+ QWebDownloadItem* downloadItem = q->m_downloads.take(WKDownloadGetID(download));
ASSERT(downloadItem);
emit downloadItem->succeeded();
}
-void QtDownloadManager::downloadFailed(DownloadProxy* download, const QtWebError& error)
+void QtDownloadManager::didFailDownload(WKContextRef, WKDownloadRef download, WKErrorRef error, const void* clientInfo)
{
+ QtDownloadManager* q = toQtDownloadManager(clientInfo);
+
// Will be called when download fails or is aborted.
- QWebDownloadItem* downloadItem = m_downloads.take(download->downloadID());
+ QWebDownloadItem* downloadItem = q->m_downloads.take(WKDownloadGetID(download));
ASSERT(downloadItem);
// If the parent is null at this point, the download failed before it
@@ -99,47 +113,19 @@ void QtDownloadManager::downloadFailed(DownloadProxy* download, const QtWebError
return;
}
- emit downloadItem->failed(error.errorCodeAsDownloadError(), error.url(), error.description());
+ QtWebError qtError(error);
+ emit downloadItem->failed(qtError.errorCodeAsDownloadError(), qtError.url(), qtError.description());
}
-void QtDownloadManager::downloadDataReceived(DownloadProxy* download, uint64_t length)
+void QtDownloadManager::didReceiveDataForDownload(WKContextRef, WKDownloadRef download, uint64_t length, const void* clientInfo)
{
+ QtDownloadManager* q = toQtDownloadManager(clientInfo);
+
// Will be called everytime bytes were written to destination file by WebProcess.
- QWebDownloadItem* downloadItem = m_downloads.value(download->downloadID());
+ QWebDownloadItem* downloadItem = q->m_downloads.value(WKDownloadGetID(download));
ASSERT(downloadItem);
downloadItem->d->totalBytesReceived += length;
emit downloadItem->totalBytesReceivedChanged(length);
}
-static inline QtDownloadManager* toQtDownloadManager(const void* clientInfo)
-{
- 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);
-}
-
} // namespace WebKit