Title: [183875] trunk/Source
Revision
183875
Author
an...@apple.com
Date
2015-05-06 10:31:12 -0700 (Wed, 06 May 2015)

Log Message

REGRESSION (r183467): Unable to start downloads in private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=144533

Reviewed by Darin Adler.

Source/WebCore:

If willSendRequest delegate mutated the request we would lose the requester field value from the original.

No test runner support for mutating requests.

* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

    This needs to keep the requester too.

* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.

    Share implementations.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSendRequest):

    Use updateFromDelegatePreservingOldProperties (like WK2) instead of doing the same thing manually.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (183874 => 183875)


--- trunk/Source/WebCore/ChangeLog	2015-05-06 17:10:38 UTC (rev 183874)
+++ trunk/Source/WebCore/ChangeLog	2015-05-06 17:31:12 UTC (rev 183875)
@@ -1,3 +1,24 @@
+2015-05-06  Antti Koivisto  <an...@apple.com>
+
+        REGRESSION (r183467): Unable to start downloads in private browsing mode
+        https://bugs.webkit.org/show_bug.cgi?id=144533
+
+        Reviewed by Darin Adler.
+
+        If willSendRequest delegate mutated the request we would lose the requester field value from the original.
+
+        No test runner support for mutating requests.
+
+        * platform/network/cf/ResourceRequestCFNet.cpp:
+        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
+
+            This needs to keep the requester too.
+
+        * platform/network/cocoa/ResourceRequestCocoa.mm:
+        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.
+
+            Share implementations.
+
 2015-05-06  Ryosuke Niwa  <rn...@webkit.org>
 
         Toggling underline on font panel removes strike through

Modified: trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp (183874 => 183875)


--- trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp	2015-05-06 17:10:38 UTC (rev 183874)
+++ trunk/Source/WebCore/platform/network/cf/ResourceRequestCFNet.cpp	2015-05-06 17:31:12 UTC (rev 183875)
@@ -227,19 +227,6 @@
 #endif
 }
 
-void ResourceRequest::updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest)
-{
-    ResourceLoadPriority oldPriority = priority();
-    RefPtr<FormData> oldHTTPBody = httpBody();
-    bool isHiddenFromInspector = hiddenFromInspector();
-
-    *this = delegateProvidedRequest;
-
-    setPriority(oldPriority);
-    setHTTPBody(oldHTTPBody.release());
-    setHiddenFromInspector(isHiddenFromInspector);
-}
-
 void ResourceRequest::doUpdateResourceRequest()
 {
     if (!m_cfRequest) {
@@ -339,6 +326,22 @@
 
 #endif // USE(CFNETWORK)
 
+void ResourceRequest::updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest)
+{
+    // These are things we don't want willSendRequest delegate to mutate or reset.
+    ResourceLoadPriority oldPriority = priority();
+    RefPtr<FormData> oldHTTPBody = httpBody();
+    bool isHiddenFromInspector = hiddenFromInspector();
+    auto oldRequester = requester();
+
+    *this = delegateProvidedRequest;
+
+    setPriority(oldPriority);
+    setHTTPBody(oldHTTPBody.release());
+    setHiddenFromInspector(isHiddenFromInspector);
+    setRequester(oldRequester);
+}
+
 bool ResourceRequest::httpPipeliningEnabled()
 {
     return s_httpPipeliningEnabled;

Modified: trunk/Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm (183874 => 183875)


--- trunk/Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm	2015-05-06 17:10:38 UTC (rev 183874)
+++ trunk/Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm	2015-05-06 17:31:12 UTC (rev 183875)
@@ -205,19 +205,6 @@
     }
 }
 
-void ResourceRequest::updateFromDelegatePreservingOldProperties(const ResourceRequest& delegateProvidedRequest)
-{
-    ResourceLoadPriority oldPriority = priority();
-    RefPtr<FormData> oldHTTPBody = httpBody();
-    bool isHiddenFromInspector = hiddenFromInspector();
-
-    *this = delegateProvidedRequest;
-
-    setPriority(oldPriority);
-    setHTTPBody(oldHTTPBody.release());
-    setHiddenFromInspector(isHiddenFromInspector);
-}
-
 #if !PLATFORM(IOS)
 void ResourceRequest::applyWebArchiveHackForMail()
 {

Modified: trunk/Source/WebKit/mac/ChangeLog (183874 => 183875)


--- trunk/Source/WebKit/mac/ChangeLog	2015-05-06 17:10:38 UTC (rev 183874)
+++ trunk/Source/WebKit/mac/ChangeLog	2015-05-06 17:31:12 UTC (rev 183875)
@@ -1,3 +1,15 @@
+2015-05-06  Antti Koivisto  <an...@apple.com>
+
+        REGRESSION (r183467): Unable to start downloads in private browsing mode
+        https://bugs.webkit.org/show_bug.cgi?id=144533
+
+        Reviewed by Darin Adler.
+
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        (WebFrameLoaderClient::dispatchWillSendRequest):
+
+            Use updateFromDelegatePreservingOldProperties (like WK2) instead of doing the same thing manually.
+
 2015-05-06  Ryosuke Niwa  <rn...@webkit.org>
 
         Toggling underline on font panel removes strike through

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (183874 => 183875)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm	2015-05-06 17:10:38 UTC (rev 183874)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm	2015-05-06 17:31:12 UTC (rev 183875)
@@ -361,9 +361,6 @@
 
     NSURLRequest *currentURLRequest = request.nsURLRequest(UpdateHTTPBody);
     NSURLRequest *newURLRequest = currentURLRequest;
-    ResourceLoadPriority priority = request.priority();
-    bool isHiddenFromInspector = request.hiddenFromInspector();
-    auto requester = request.requester();
 #if PLATFORM(IOS)
     if (implementations->webThreadWillSendRequestFunc) {
         newURLRequest = (NSURLRequest *)CallResourceLoadDelegateInWebThread(implementations->webThreadWillSendRequestFunc, webView, @selector(webThreadWebView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], currentURLRequest, redirectResponse.nsURLResponse(), dataSource(loader));
@@ -373,10 +370,7 @@
         newURLRequest = (NSURLRequest *)CallResourceLoadDelegate(implementations->willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], currentURLRequest, redirectResponse.nsURLResponse(), dataSource(loader));
 
     if (newURLRequest != currentURLRequest)
-        request = newURLRequest;
-    request.setHiddenFromInspector(isHiddenFromInspector);
-    request.setPriority(priority);
-    request.setRequester(requester);
+        request.updateFromDelegatePreservingOldProperties(ResourceRequest(newURLRequest));
 }
 
 bool WebFrameLoaderClient::shouldUseCredentialStorage(DocumentLoader* loader, unsigned long identifier)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to