Title: [265752] trunk/Source/WebKit
- Revision
- 265752
- Author
- [email protected]
- Date
- 2020-08-17 05:21:15 -0700 (Mon, 17 Aug 2020)
Log Message
Set Sec-WebSocket-Protocol for WebSocket NSURLSession code path
https://bugs.webkit.org/show_bug.cgi?id=215456
<rdar://problem/66996369>
Reviewed by Alex Christensen.
Covered by existing protocol tests with NSURLSession code path enabled.
http/tests/websocket/tests/hybi/set-protocol.html, http/tests/websocket/tests/hybi/workers/multiple-subprotocols.html
Code change originating from Jiten Mehta.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
Set Sec-WebSocket-Protocol to support WebSocket protocol negotiation.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (265751 => 265752)
--- trunk/Source/WebKit/ChangeLog 2020-08-17 11:04:35 UTC (rev 265751)
+++ trunk/Source/WebKit/ChangeLog 2020-08-17 12:21:15 UTC (rev 265752)
@@ -1,3 +1,19 @@
+2020-08-17 Youenn Fablet <[email protected]>
+
+ Set Sec-WebSocket-Protocol for WebSocket NSURLSession code path
+ https://bugs.webkit.org/show_bug.cgi?id=215456
+ <rdar://problem/66996369>
+
+ Reviewed by Alex Christensen.
+
+ Covered by existing protocol tests with NSURLSession code path enabled.
+ http/tests/websocket/tests/hybi/set-protocol.html, http/tests/websocket/tests/hybi/workers/multiple-subprotocols.html
+ Code change originating from Jiten Mehta.
+
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (WebKit::NetworkSessionCocoa::createWebSocketTask):
+ Set Sec-WebSocket-Protocol to support WebSocket protocol negotiation.
+
2020-08-17 Carlos Garcia Campos <[email protected]>
REGRESSION(r265725) [GTK][WPE] Several http/tests timeout/failures
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (265751 => 265752)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2020-08-17 11:04:35 UTC (rev 265751)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2020-08-17 12:21:15 UTC (rev 265752)
@@ -1565,8 +1565,14 @@
#if HAVE(NSURLSESSION_WEBSOCKET)
std::unique_ptr<WebSocketTask> NetworkSessionCocoa::createWebSocketTask(NetworkSocketChannel& channel, const WebCore::ResourceRequest& request, const String& protocol)
{
- // FIXME: Use protocol.
- RetainPtr<NSURLSessionWebSocketTask> task = [m_sessionWithCredentialStorage.session webSocketTaskWithRequest:request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::DoNotUpdateHTTPBody)];
+ ASSERT(!request.hasHTTPHeaderField(WebCore::HTTPHeaderName::SecWebSocketProtocol));
+ auto *nsRequest = request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::DoNotUpdateHTTPBody);
+ if (!protocol.isNull()) {
+ NSMutableURLRequest *requestWithProtocols = [[nsRequest mutableCopy] autorelease];
+ [requestWithProtocols addValue: StringView(protocol).createNSString().get() forHTTPHeaderField:@"Sec-WebSocket-Protocol"];
+ nsRequest = requestWithProtocols;
+ }
+ RetainPtr<NSURLSessionWebSocketTask> task = [m_sessionWithCredentialStorage.session webSocketTaskWithRequest:nsRequest];
return makeUnique<WebSocketTask>(channel, WTFMove(task));
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes