[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 15:06:40 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 536db2406b47d1f167ffdfd5fa807bd0da1e14fd
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Oct 28 00:48:57 2010 +0000
More work on downloads
https://bugs.webkit.org/show_bug.cgi?id=48480
Reviewed by Sam Weinig.
* WebProcess/Downloads/Download.cpp:
(WebKit::Download::~Download):
Call platformInvalidate().
(WebKit::Download::didBegin):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
Add empty stubs.
* WebProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
Create a Download object and insert it into the m_downloads map.
* WebProcess/Downloads/cf/DownloadCFNet.cpp:
(WebKit::Download::platformInvalidate):
Add empty stub.
* WebProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::platformInvalidate):
Tell the WKDownloadAsDelegate object that we're being invalidated.
(-[WKDownloadAsDelegate downloadDidBegin:]):
Call Download::didBegin.
(-[WKDownloadAsDelegate download:didReceiveDataOfLength:]):
Call Download::didReceiveData.
(-[WKDownloadAsDelegate downloadDidFinish:]):
Call Download::didFinish.
* WebProcess/Downloads/qt/DownloadQt.cpp:
(WebKit::Download::platformInvalidate):
Add empty stub.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70733 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 3da8e35..e2149c1 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -226,6 +226,47 @@
Reviewed by Sam Weinig.
+ More work on downloads
+ https://bugs.webkit.org/show_bug.cgi?id=48480
+
+ * WebProcess/Downloads/Download.cpp:
+ (WebKit::Download::~Download):
+ Call platformInvalidate().
+
+ (WebKit::Download::didBegin):
+ (WebKit::Download::didReceiveData):
+ (WebKit::Download::didFinish):
+ Add empty stubs.
+
+ * WebProcess/Downloads/DownloadManager.cpp:
+ (WebKit::DownloadManager::startDownload):
+ Create a Download object and insert it into the m_downloads map.
+
+ * WebProcess/Downloads/cf/DownloadCFNet.cpp:
+ (WebKit::Download::platformInvalidate):
+ Add empty stub.
+
+ * WebProcess/Downloads/mac/DownloadMac.mm:
+ (WebKit::Download::platformInvalidate):
+ Tell the WKDownloadAsDelegate object that we're being invalidated.
+
+ (-[WKDownloadAsDelegate downloadDidBegin:]):
+ Call Download::didBegin.
+
+ (-[WKDownloadAsDelegate download:didReceiveDataOfLength:]):
+ Call Download::didReceiveData.
+
+ (-[WKDownloadAsDelegate downloadDidFinish:]):
+ Call Download::didFinish.
+
+ * WebProcess/Downloads/qt/DownloadQt.cpp:
+ (WebKit::Download::platformInvalidate):
+ Add empty stub.
+
+2010-10-27 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Sam Weinig.
+
WebPageProxy::isValid should return false if the page has been explicitly closed
https://bugs.webkit.org/show_bug.cgi?id=48458
diff --git a/WebKit2/WebProcess/Downloads/Download.cpp b/WebKit2/WebProcess/Downloads/Download.cpp
index 2e3d978..20d3124 100644
--- a/WebKit2/WebProcess/Downloads/Download.cpp
+++ b/WebKit2/WebProcess/Downloads/Download.cpp
@@ -43,6 +43,22 @@ Download::Download(uint64_t downloadID, const ResourceRequest& request)
Download::~Download()
{
+ platformInvalidate();
+}
+
+void Download::didBegin()
+{
+ // FIXME: Implement.
+}
+
+void Download::didReceiveData(uint64_t length)
+{
+ // FIXME: Implement.
+}
+
+void Download::didFinish()
+{
+ // FIXME: Implement.
}
} // namespace WebKit
diff --git a/WebKit2/WebProcess/Downloads/Download.h b/WebKit2/WebProcess/Downloads/Download.h
index 4e2bda5..0bfffb1 100644
--- a/WebKit2/WebProcess/Downloads/Download.h
+++ b/WebKit2/WebProcess/Downloads/Download.h
@@ -52,9 +52,15 @@ public:
void start();
+ void didBegin();
+ void didReceiveData(uint64_t length);
+ void didFinish();
+
private:
Download(uint64_t downloadID, const WebCore::ResourceRequest&);
+ void platformInvalidate();
+
uint64_t m_downloadID;
WebCore::ResourceRequest m_request;
diff --git a/WebKit2/WebProcess/Downloads/DownloadManager.cpp b/WebKit2/WebProcess/Downloads/DownloadManager.cpp
index 6bceb4d..2c85f15 100644
--- a/WebKit2/WebProcess/Downloads/DownloadManager.cpp
+++ b/WebKit2/WebProcess/Downloads/DownloadManager.cpp
@@ -45,8 +45,11 @@ DownloadManager::DownloadManager()
void DownloadManager::startDownload(uint64_t downloadID, const ResourceRequest& request)
{
- // FIXME: Implement.
- notImplemented();
+ OwnPtr<Download> download = Download::create(downloadID, request);
+ download->start();
+
+ ASSERT(!m_downloads.contains(downloadID));
+ m_downloads.set(downloadID, download.leakPtr());
}
} // namespace WebKit
diff --git a/WebKit2/WebProcess/Downloads/DownloadManager.h b/WebKit2/WebProcess/Downloads/DownloadManager.h
index ef3ccf5..9a5d730 100644
--- a/WebKit2/WebProcess/Downloads/DownloadManager.h
+++ b/WebKit2/WebProcess/Downloads/DownloadManager.h
@@ -26,6 +26,7 @@
#ifndef DownloadManager_h
#define DownloadManager_h
+#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
namespace WebCore {
@@ -34,6 +35,8 @@ namespace WebCore {
namespace WebKit {
+class Download;
+
class DownloadManager {
WTF_MAKE_NONCOPYABLE(DownloadManager);
@@ -45,6 +48,7 @@ public:
private:
DownloadManager();
+ HashMap<uint64_t, Download*> m_downloads;
};
} // namespace WebKit
diff --git a/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp b/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp
index e5e7dc5..9a1d921 100644
--- a/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp
+++ b/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp
@@ -36,4 +36,9 @@ void Download::start()
notImplemented();
}
+void Download::platformInvalidate()
+{
+ notImplemented();
+}
+
} // namespace WebKit
diff --git a/WebKit2/WebProcess/Downloads/mac/DownloadMac.mm b/WebKit2/WebProcess/Downloads/mac/DownloadMac.mm
index e6111d3..1936319 100644
--- a/WebKit2/WebProcess/Downloads/mac/DownloadMac.mm
+++ b/WebKit2/WebProcess/Downloads/mac/DownloadMac.mm
@@ -48,6 +48,16 @@ void Download::start()
m_nsURLDownload.adoptNS([[NSURLDownload alloc] initWithRequest:m_request.nsURLRequest() delegate:m_delegate.get()]);
}
+void Download::platformInvalidate()
+{
+ ASSERT(m_nsURLDownload);
+ ASSERT(m_delegate);
+
+ [m_delegate.get() invalidate];
+ m_delegate = nullptr;
+ m_nsURLDownload = nullptr;
+}
+
} // namespace WebKit
@implementation WKDownloadAsDelegate
@@ -69,8 +79,8 @@ void Download::start()
- (void)downloadDidBegin:(NSURLDownload *)download
{
- // FIXME: Implement.
- notImplemented();
+ if (_download)
+ _download->didBegin();
}
- (NSURLRequest *)download:(NSURLDownload *)download willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
@@ -118,8 +128,8 @@ void Download::start()
- (void)download:(NSURLDownload *)download didReceiveDataOfLength:(NSUInteger)length
{
- // FIXME: Implement.
- notImplemented();
+ if (_download)
+ _download->didReceiveData(length);
}
- (BOOL)download:(NSURLDownload *)download shouldDecodeSourceDataOfMIMEType:(NSString *)encodingType
@@ -143,8 +153,8 @@ void Download::start()
- (void)downloadDidFinish:(NSURLDownload *)download
{
- // FIXME: Implement.
- notImplemented();
+ if (_download)
+ _download->didFinish();
}
- (void)download:(NSURLDownload *)download didFailWithError:(NSError *)error
diff --git a/WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp b/WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp
index e5e7dc5..9a1d921 100644
--- a/WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp
+++ b/WebKit2/WebProcess/Downloads/qt/DownloadQt.cpp
@@ -36,4 +36,9 @@ void Download::start()
notImplemented();
}
+void Download::platformInvalidate()
+{
+ notImplemented();
+}
+
} // namespace WebKit
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list