[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