[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