Title: [201593] trunk/Source/WebKit2
Revision
201593
Author
commit-qu...@webkit.org
Date
2016-06-01 22:39:52 -0700 (Wed, 01 Jun 2016)

Log Message

Notify client immediately if network session doesn't exist for a synchronous XHR load.
https://bugs.webkit.org/show_bug.cgi?id=158239
<rdar://problem/26344251>

Patch by Yongjun Zhang <yongjun_zh...@apple.com> on 2016-06-01
Reviewed by Brady Eidson.

For a synchronous XHR load, if the network session doesn't exist, we should notify NetworkLoadClient.
Otherwise the Web process could hang when waiting for the synchronous load to finish.

* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (201592 => 201593)


--- trunk/Source/WebKit2/ChangeLog	2016-06-02 05:21:30 UTC (rev 201592)
+++ trunk/Source/WebKit2/ChangeLog	2016-06-02 05:39:52 UTC (rev 201593)
@@ -1,3 +1,17 @@
+2016-06-01  Yongjun Zhang  <yongjun_zh...@apple.com>
+
+        Notify client immediately if network session doesn't exist for a synchronous XHR load.
+        https://bugs.webkit.org/show_bug.cgi?id=158239
+        <rdar://problem/26344251>
+
+        Reviewed by Brady Eidson.
+
+        For a synchronous XHR load, if the network session doesn't exist, we should notify NetworkLoadClient.
+        Otherwise the Web process could hang when waiting for the synchronous load to finish.
+
+        * NetworkProcess/NetworkLoad.cpp:
+        (WebKit::NetworkLoad::NetworkLoad):
+
 2016-05-31  Brian Burg  <bb...@apple.com>
   
         REGRESSION(r191907): Can't enter combining diacritic marks in Web Inspector fields

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp (201592 => 201593)


--- trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp	2016-06-02 05:21:30 UTC (rev 201592)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkLoad.cpp	2016-06-02 05:39:52 UTC (rev 201593)
@@ -57,8 +57,12 @@
         m_task = NetworkDataTask::create(*networkSession, *this, parameters.request, parameters.allowStoredCredentials, parameters.contentSniffingPolicy, parameters.shouldClearReferrerOnHTTPSToHTTPRedirect);
         if (!parameters.defersLoading)
             m_task->resume();
-    } else
+    } else {
         WTFLogAlways("Attempted to create a NetworkLoad with a session (id=%" PRIu64 ") that does not exist.", parameters.sessionID.sessionID());
+        RunLoop::current().dispatch([this, url = "" {
+            didCompleteWithError(internalError(url));
+        });
+    }
 #else
     m_handle = ResourceHandle::create(m_networkingContext.get(), parameters.request, this, parameters.defersLoading, parameters.contentSniffingPolicy == SniffContent);
 #endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to