Title: [275294] trunk/Source
Revision
275294
Author
[email protected]
Date
2021-03-31 11:13:03 -0700 (Wed, 31 Mar 2021)

Log Message

Make use of NSURLSessionWebSocket.sendCloseCode if available
https://bugs.webkit.org/show_bug.cgi?id=223999

Reviewed by Alex Christensen.

Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

If available, we just call sendCloseCode, cancel will happen when NetworkSocketChannel is destroyed.
Covered by LayoutTests/http/tests/websocket/tests/hybi/client-close-2.html.

* NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::close):

Modified Paths

Diff

Modified: trunk/Source/WebCore/PAL/ChangeLog (275293 => 275294)


--- trunk/Source/WebCore/PAL/ChangeLog	2021-03-31 17:49:07 UTC (rev 275293)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-03-31 18:13:03 UTC (rev 275294)
@@ -1,3 +1,12 @@
+2021-03-31  Youenn Fablet  <[email protected]>
+
+        Make use of NSURLSessionWebSocket.sendCloseCode if available
+        https://bugs.webkit.org/show_bug.cgi?id=223999
+
+        Reviewed by Alex Christensen.
+
+        * pal/spi/cf/CFNetworkSPI.h:
+
 2021-03-29  Per Arne  <[email protected]>
 
         The header file NotifySPI.h should not be private

Modified: trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h (275293 => 275294)


--- trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2021-03-31 17:49:07 UTC (rev 275293)
+++ trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2021-03-31 18:13:03 UTC (rev 275294)
@@ -471,4 +471,8 @@
 @property (readonly) SSLProtocol _TLSNegotiatedProtocolVersion;
 @end
 
+@interface NSURLSessionWebSocketTask (SPI)
+- (void)_sendCloseCode:(NSURLSessionWebSocketCloseCode)closeCode reason:(NSData *)reason;
+@end
+
 #endif // defined(__OBJC__)

Modified: trunk/Source/WebKit/ChangeLog (275293 => 275294)


--- trunk/Source/WebKit/ChangeLog	2021-03-31 17:49:07 UTC (rev 275293)
+++ trunk/Source/WebKit/ChangeLog	2021-03-31 18:13:03 UTC (rev 275294)
@@ -1,5 +1,18 @@
 2021-03-31  Youenn Fablet  <[email protected]>
 
+        Make use of NSURLSessionWebSocket.sendCloseCode if available
+        https://bugs.webkit.org/show_bug.cgi?id=223999
+
+        Reviewed by Alex Christensen.
+
+        If available, we just call sendCloseCode, cancel will happen when NetworkSocketChannel is destroyed.
+        Covered by LayoutTests/http/tests/websocket/tests/hybi/client-close-2.html.
+
+        * NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
+        (WebKit::WebSocketTask::close):
+
+2021-03-31  Youenn Fablet  <[email protected]>
+
         Send WebSocket cocoa authentication challenge to AuthenticationManager
         https://bugs.webkit.org/show_bug.cgi?id=223998
 

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm (275293 => 275294)


--- trunk/Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm	2021-03-31 17:49:07 UTC (rev 275293)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm	2021-03-31 18:13:03 UTC (rev 275294)
@@ -144,6 +144,10 @@
         code = 1005;
     auto utf8 = reason.utf8();
     auto nsData = adoptNS([[NSData alloc] initWithBytes:utf8.data() length:utf8.length()]);
+    if ([m_task respondsToSelector:@selector(_sendCloseCode:reason:)]) {
+        [m_task _sendCloseCode:(NSURLSessionWebSocketCloseCode)code reason:nsData.get()];
+        return;
+    }
     [m_task cancelWithCloseCode:(NSURLSessionWebSocketCloseCode)code reason:nsData.get()];
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to