[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

paroga at webkit.org paroga at webkit.org
Wed Dec 22 13:41:51 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 5b0d705ef31ce51ceca70b1e3c4f103db8e8056c
Author: paroga at webkit.org <paroga at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 23 18:08:29 2010 +0000

    2010-09-23  Patrick Gansterer  <paroga at webkit.org>
    
            Reviewed by Adam Roben.
    
            Add synchronous loading for network resources to ResourceHandleWin
            https://bugs.webkit.org/show_bug.cgi?id=46364
    
            Use return value of onRequestComplete() to indicate that an additional
            call to it is required for receiving remaining network data.
    
            * platform/network/ResourceHandle.h:
            * platform/network/win/ResourceHandleWin.cpp:
            (WebCore::ResourceHandle::onRequestComplete):
            (WebCore::ResourceHandle::start):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68167 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 529cef9..c3121a1 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-09-23  Patrick Gansterer  <paroga at webkit.org>
+
+        Reviewed by Adam Roben.
+
+        Add synchronous loading for network resources to ResourceHandleWin
+        https://bugs.webkit.org/show_bug.cgi?id=46364
+
+        Use return value of onRequestComplete() to indicate that an additional
+        call to it is required for receiving remaining network data.
+
+        * platform/network/ResourceHandle.h:
+        * platform/network/win/ResourceHandleWin.cpp:
+        (WebCore::ResourceHandle::onRequestComplete):
+        (WebCore::ResourceHandle::start):
+
 2010-09-23  Nate Chapin  <japhet at chromium.org>
 
         Reviewed by Darin Fisher.
diff --git a/WebCore/platform/network/ResourceHandle.h b/WebCore/platform/network/ResourceHandle.h
index 7b28570..6361a7a 100644
--- a/WebCore/platform/network/ResourceHandle.h
+++ b/WebCore/platform/network/ResourceHandle.h
@@ -173,7 +173,7 @@ public:
     void fileLoadTimer(Timer<ResourceHandle>*);
     void onHandleCreated(LPARAM);
     void onRedirect();
-    void onRequestComplete(LPARAM);
+    bool onRequestComplete();
     static void CALLBACK internetStatusCallback(HINTERNET, DWORD_PTR, DWORD, LPVOID, DWORD);
     friend void __stdcall transferJobStatusCallback(HINTERNET, DWORD_PTR, DWORD, LPVOID, DWORD);
     friend LRESULT __stdcall ResourceHandleWndProc(HWND, unsigned message, WPARAM, LPARAM);
diff --git a/WebCore/platform/network/win/ResourceHandleWin.cpp b/WebCore/platform/network/win/ResourceHandleWin.cpp
index e109c0d..9ceeba8 100644
--- a/WebCore/platform/network/win/ResourceHandleWin.cpp
+++ b/WebCore/platform/network/win/ResourceHandleWin.cpp
@@ -321,7 +321,7 @@ void ResourceHandle::onRedirect()
         resourceHandleClient->willSendRequest(this, newRequest, response);
 }
 
-void ResourceHandle::onRequestComplete(LPARAM lParam)
+bool ResourceHandle::onRequestComplete()
 {
     if (d->m_bytesRemainingToWrite) {
         DWORD bytesWritten;
@@ -331,14 +331,14 @@ void ResourceHandle::onRequestComplete(LPARAM lParam)
                           &bytesWritten);
         d->m_bytesRemainingToWrite -= bytesWritten;
         if (d->m_bytesRemainingToWrite)
-            return;
+            return true;
         d->m_formData.clear();
     }
 
     if (!d->m_sentEndRequest) {
         HttpEndRequestW(d->m_requestHandle, 0, 0, reinterpret_cast<DWORD_PTR>(this));
         d->m_sentEndRequest = true;
-        return;
+        return true;
     }
 
     HINTERNET handle = (request().httpMethod() == "POST") ? d->m_secondaryHandle : d->m_resourceHandle;
@@ -351,7 +351,7 @@ void ResourceHandle::onRequestComplete(LPARAM lParam)
     buffers.dwBufferLength = bufferSize;
 
     BOOL ok = FALSE;
-    while ((ok = InternetReadFileExA(handle, &buffers, IRF_NO_WAIT, (DWORD_PTR)this)) && buffers.dwBufferLength) {
+    while ((ok = InternetReadFileExA(d->m_requestHandle, &buffers, d->m_loadSynchronously ? 0 : IRF_NO_WAIT, reinterpret_cast<DWORD_PTR>(this))) && buffers.dwBufferLength) {
         if (!hasReceivedResponse()) {
             setHasReceivedResponse();
             ResourceResponse response;
@@ -382,13 +382,13 @@ void ResourceHandle::onRequestComplete(LPARAM lParam)
     }
 
     if (!ok && GetLastError() == ERROR_IO_PENDING)
-        return;
+        return true;
 
     client()->didFinishLoading(this, 0);
     InternetCloseHandle(d->m_requestHandle);
     InternetCloseHandle(d->m_connectHandle);
     deref(); // balances ref in start
-    return;
+    return false;
 }
 
 static void __stdcall transferJobStatusCallback(HINTERNET internetHandle,
@@ -497,6 +497,11 @@ bool ResourceHandle::start(NetworkingContext* context)
 
     ref(); // balanced by deref in onRequestComplete
 
+    if (d->m_loadSynchronously)
+        while (onRequestComplete()) {
+            // Loop until finished.
+        }
+
     return true;
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list