Title: [279896] trunk/Source/WebKit
Revision
279896
Author
[email protected]
Date
2021-07-13 15:55:56 -0700 (Tue, 13 Jul 2021)

Log Message

REGRESSION(r279069): http/tests/websocket/tests/hybi/too-long-payload.html is a constant timeout when using NSURLSESSION_WEBSOCKET
https://bugs.webkit.org/show_bug.cgi?id=227923
<rdar://80343436>

Reviewed by Chris Dumez.

We need to add a large maximum frame size that was first introduced to WebKit in r91243
Covered by existing tests.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (279895 => 279896)


--- trunk/Source/WebKit/ChangeLog	2021-07-13 22:54:29 UTC (rev 279895)
+++ trunk/Source/WebKit/ChangeLog	2021-07-13 22:55:56 UTC (rev 279896)
@@ -1,3 +1,17 @@
+2021-07-13  Alex Christensen  <[email protected]>
+
+        REGRESSION(r279069): http/tests/websocket/tests/hybi/too-long-payload.html is a constant timeout when using NSURLSESSION_WEBSOCKET
+        https://bugs.webkit.org/show_bug.cgi?id=227923
+        <rdar://80343436>
+
+        Reviewed by Chris Dumez.
+
+        We need to add a large maximum frame size that was first introduced to WebKit in r91243
+        Covered by existing tests.
+
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (WebKit::NetworkSessionCocoa::createWebSocketTask):
+
 2021-07-13  Peng Liu  <[email protected]>
 
         [GPUP] RemoteMediaPlayerProxy may not send the latest "naturalSize" to MediaPlayerPrivateRemote

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (279895 => 279896)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-07-13 22:54:29 UTC (rev 279895)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2021-07-13 22:55:56 UTC (rev 279896)
@@ -1694,7 +1694,10 @@
 
     auto& sessionSet = sessionSetForPage(webPageProxyID);
     RetainPtr<NSURLSessionWebSocketTask> task = [sessionSet.sessionWithCredentialStorage.session webSocketTaskWithRequest:nsRequest.get()];
-    task.get().maximumMessageSize = 0;
+    
+    // Although the WebSocket protocol allows full 64-bit lengths, Chrome and Firefox limit the length to 2^63 - 1
+    task.get().maximumMessageSize = 0x7FFFFFFFFFFFFFFFull;
+
     return makeUnique<WebSocketTask>(channel, webPageProxyID, makeWeakPtr(sessionSet), request, WTFMove(task));
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to