summaryrefslogtreecommitdiffstats
path: root/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2016-08-25 19:20:41 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2017-02-02 12:30:55 +0000
commit6882a04fb36642862b11efe514251d32070c3d65 (patch)
treeb7959826000b061fd5ccc7512035c7478742f7b0 /Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp
parentab6df191029eeeb0b0f16f127d553265659f739e (diff)
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp')
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp
index 8290b11e5..132e26dc8 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp
@@ -28,6 +28,8 @@
#include "WKAPICast.h"
#include "WKBundleAPICast.h"
+#include "WebFrame.h"
+#include "WebPage.h"
using namespace WebCore;
@@ -38,7 +40,7 @@ void InjectedBundlePageResourceLoadClient::didInitiateLoadForResource(WebPage* p
if (!m_client.didInitiateLoadForResource)
return;
- m_client.didInitiateLoadForResource(toAPI(page), toAPI(frame), identifier, toAPI(request), pageIsProvisionallyLoading, m_client.clientInfo);
+ m_client.didInitiateLoadForResource(toAPI(page), toAPI(frame), identifier, toAPI(request), pageIsProvisionallyLoading, m_client.base.clientInfo);
}
void InjectedBundlePageResourceLoadClient::willSendRequestForFrame(WebPage* page, WebFrame* frame, uint64_t identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
@@ -46,11 +48,16 @@ void InjectedBundlePageResourceLoadClient::willSendRequestForFrame(WebPage* page
if (!m_client.willSendRequestForFrame)
return;
- RefPtr<WebURLRequest> returnedRequest = adoptRef(toImpl(m_client.willSendRequestForFrame(toAPI(page), toAPI(frame), identifier, toAPI(request), toAPI(redirectResponse), m_client.clientInfo)));
- if (returnedRequest)
- request.updateFromDelegatePreservingOldHTTPBody(returnedRequest->resourceRequest());
- else
- request = ResourceRequest();
+ RefPtr<API::URLRequest> returnedRequest = adoptRef(toImpl(m_client.willSendRequestForFrame(toAPI(page), toAPI(frame), identifier, toAPI(request), toAPI(redirectResponse), m_client.base.clientInfo)));
+ if (returnedRequest) {
+ // If the client returned an HTTP body, we want to use that http body. This is needed to fix <rdar://problem/23763584>
+ auto& returnedResourceRequest = returnedRequest->resourceRequest();
+ RefPtr<FormData> returnedHTTPBody = returnedResourceRequest.httpBody();
+ request.updateFromDelegatePreservingOldProperties(returnedResourceRequest);
+ if (returnedHTTPBody)
+ request.setHTTPBody(WTFMove(returnedHTTPBody));
+ } else
+ request = { };
}
void InjectedBundlePageResourceLoadClient::didReceiveResponseForResource(WebPage* page, WebFrame* frame, uint64_t identifier, const WebCore::ResourceResponse& response)
@@ -58,7 +65,7 @@ void InjectedBundlePageResourceLoadClient::didReceiveResponseForResource(WebPage
if (!m_client.didReceiveResponseForResource)
return;
- m_client.didReceiveResponseForResource(toAPI(page), toAPI(frame), identifier, toAPI(response), m_client.clientInfo);
+ m_client.didReceiveResponseForResource(toAPI(page), toAPI(frame), identifier, toAPI(response), m_client.base.clientInfo);
}
void InjectedBundlePageResourceLoadClient::didReceiveContentLengthForResource(WebPage* page, WebFrame* frame, uint64_t identifier, uint64_t contentLength)
@@ -66,7 +73,7 @@ void InjectedBundlePageResourceLoadClient::didReceiveContentLengthForResource(We
if (!m_client.didReceiveContentLengthForResource)
return;
- m_client.didReceiveContentLengthForResource(toAPI(page), toAPI(frame), identifier, contentLength, m_client.clientInfo);
+ m_client.didReceiveContentLengthForResource(toAPI(page), toAPI(frame), identifier, contentLength, m_client.base.clientInfo);
}
void InjectedBundlePageResourceLoadClient::didFinishLoadForResource(WebPage* page, WebFrame* frame, uint64_t identifier)
@@ -74,7 +81,7 @@ void InjectedBundlePageResourceLoadClient::didFinishLoadForResource(WebPage* pag
if (!m_client.didFinishLoadForResource)
return;
- m_client.didFinishLoadForResource(toAPI(page), toAPI(frame), identifier, m_client.clientInfo);
+ m_client.didFinishLoadForResource(toAPI(page), toAPI(frame), identifier, m_client.base.clientInfo);
}
void InjectedBundlePageResourceLoadClient::didFailLoadForResource(WebPage* page, WebFrame* frame, uint64_t identifier, const WebCore::ResourceError& error)
@@ -82,7 +89,7 @@ void InjectedBundlePageResourceLoadClient::didFailLoadForResource(WebPage* page,
if (!m_client.didFailLoadForResource)
return;
- m_client.didFailLoadForResource(toAPI(page), toAPI(frame), identifier, toAPI(error), m_client.clientInfo);
+ m_client.didFailLoadForResource(toAPI(page), toAPI(frame), identifier, toAPI(error), m_client.base.clientInfo);
}
bool InjectedBundlePageResourceLoadClient::shouldCacheResponse(WebPage* page, WebFrame* frame, uint64_t identifier)
@@ -90,7 +97,7 @@ bool InjectedBundlePageResourceLoadClient::shouldCacheResponse(WebPage* page, We
if (!m_client.shouldCacheResponse)
return true;
- return m_client.shouldCacheResponse(toAPI(page), toAPI(frame), identifier, m_client.clientInfo);
+ return m_client.shouldCacheResponse(toAPI(page), toAPI(frame), identifier, m_client.base.clientInfo);
}
bool InjectedBundlePageResourceLoadClient::shouldUseCredentialStorage(WebPage* page, WebFrame* frame, uint64_t identifier)
@@ -98,7 +105,7 @@ bool InjectedBundlePageResourceLoadClient::shouldUseCredentialStorage(WebPage* p
if (!m_client.shouldUseCredentialStorage)
return true;
- return m_client.shouldUseCredentialStorage(toAPI(page), toAPI(frame), identifier, m_client.clientInfo);
+ return m_client.shouldUseCredentialStorage(toAPI(page), toAPI(frame), identifier, m_client.base.clientInfo);
}
} // namespace WebKit