Changeset 256497 in webkit
- Timestamp:
- Feb 12, 2020 6:18:29 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r256493 r256497 1 2020-02-12 Pavel Feldman <pavel.feldman@gmail.com> 2 3 Web Inspector: encode binary web socket frames using base64 4 https://bugs.webkit.org/show_bug.cgi?id=207448 5 6 Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback, 7 this patch consistently encodes binary data using base64. 8 9 Reviewed by Timothy Hatcher. 10 11 * http/tests/websocket/tests/hybi/inspector/binary-expected.txt: 12 * http/tests/websocket/tests/hybi/inspector/binary.html: 13 1 14 2020-02-12 Ryan Haddad <ryanhaddad@apple.com> 2 15 -
trunk/LayoutTests/http/tests/websocket/tests/hybi/inspector/binary-expected.txt
r215388 r256497 7 7 PASS: Frame should not have data. 8 8 PASS: Frame should be binary. 9 PASS: Binary frames should be base64 encoded. 9 10 PASS: Frame should be outgoing. 10 11 PASS: Frame should have walltime. … … 34 35 PASS: Frame should not have data. 35 36 PASS: Frame should be binary. 37 PASS: Binary frames should be base64 encoded. 36 38 PASS: Frame should be outgoing. 37 39 PASS: Frame should have walltime. -
trunk/LayoutTests/http/tests/websocket/tests/hybi/inspector/binary.html
r220119 r256497 57 57 58 58 if (frameAddedCount === 1) { 59 InspectorTest.expectEqual(atob(frame.dataForTest), "Hello, world!", "Binary frames should be base64 encoded."); 59 60 InspectorTest.expectThat(frame.isOutgoing, "Frame should be outgoing."); 60 61 InspectorTest.expectThat(typeof frame.walltime === "number", "Frame should have walltime."); -
trunk/Source/JavaScriptCore/ChangeLog
r256477 r256497 1 2020-02-12 Pavel Feldman <pavel.feldman@gmail.com> 2 3 Web Inspector: encode binary web socket frames using base64 4 https://bugs.webkit.org/show_bug.cgi?id=207448 5 6 Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback, 7 this patch consistently encodes binary data using base64. 8 9 Reviewed by Timothy Hatcher. 10 11 * inspector/protocol/Network.json: 12 1 13 2020-02-12 Simon Fraser <simon.fraser@apple.com> 2 14 -
trunk/Source/JavaScriptCore/inspector/protocol/Network.json
r252614 r256497 124 124 { "name": "opcode", "type": "number", "description": "WebSocket frame opcode." }, 125 125 { "name": "mask", "type": "boolean", "description": "WebSocket frame mask." }, 126 { "name": "payloadData", "type": "string", "description": "WebSocket frame payload data ." },126 { "name": "payloadData", "type": "string", "description": "WebSocket frame payload data, binary frames (opcode = 2) are base64-encoded." }, 127 127 { "name": "payloadLength", "type": "number", "description": "WebSocket frame payload length in bytes." } 128 128 ] -
trunk/Source/WebCore/ChangeLog
r256496 r256497 1 2020-02-12 Pavel Feldman <pavel.feldman@gmail.com> 2 3 Web Inspector: encode binary web socket frames using base64 4 https://bugs.webkit.org/show_bug.cgi?id=207448 5 6 Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback, 7 this patch consistently encodes binary data using base64. 8 9 Reviewed by Timothy Hatcher. 10 11 * inspector/agents/InspectorNetworkAgent.cpp: 12 (WebCore::Inspector::buildWebSocketMessage): 13 (WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame): 14 (WebCore::InspectorNetworkAgent::didSendWebSocketFrame): 15 1 16 2020-02-12 Pavel Feldman <pavel.feldman@gmail.com> 2 17 -
trunk/Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp
r254919 r256497 172 172 }; 173 173 174 Ref<Inspector::Protocol::Network::WebSocketFrame> buildWebSocketMessage(const WebSocketFrame& frame) 175 { 176 return Inspector::Protocol::Network::WebSocketFrame::create() 177 .setOpcode(frame.opCode) 178 .setMask(frame.masked) 179 .setPayloadData(frame.opCode == 1 ? String::fromUTF8WithLatin1Fallback(frame.payload, frame.payloadLength) : base64Encode(frame.payload, frame.payloadLength)) 180 .setPayloadLength(frame.payloadLength) 181 .release(); 182 } 183 174 184 } // namespace 175 185 … … 771 781 void InspectorNetworkAgent::didReceiveWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame) 772 782 { 773 auto frameObject = Inspector::Protocol::Network::WebSocketFrame::create() 774 .setOpcode(frame.opCode) 775 .setMask(frame.masked) 776 .setPayloadData(String::fromUTF8WithLatin1Fallback(frame.payload, frame.payloadLength)) 777 .setPayloadLength(frame.payloadLength) 778 .release(); 779 m_frontendDispatcher->webSocketFrameReceived(IdentifiersFactory::requestId(identifier), timestamp(), WTFMove(frameObject)); 780 } 781 783 m_frontendDispatcher->webSocketFrameReceived(IdentifiersFactory::requestId(identifier), timestamp(), buildWebSocketMessage(frame)); 784 } 782 785 void InspectorNetworkAgent::didSendWebSocketFrame(unsigned long identifier, const WebSocketFrame& frame) 783 786 { 784 auto frameObject = Inspector::Protocol::Network::WebSocketFrame::create() 785 .setOpcode(frame.opCode) 786 .setMask(frame.masked) 787 .setPayloadData(String::fromUTF8WithLatin1Fallback(frame.payload, frame.payloadLength)) 788 .setPayloadLength(frame.payloadLength) 789 .release(); 790 m_frontendDispatcher->webSocketFrameSent(IdentifiersFactory::requestId(identifier), timestamp(), WTFMove(frameObject)); 787 m_frontendDispatcher->webSocketFrameSent(IdentifiersFactory::requestId(identifier), timestamp(), buildWebSocketMessage(frame)); 791 788 } 792 789 -
trunk/Source/WebInspectorUI/ChangeLog
r256374 r256497 1 2020-02-12 Pavel Feldman <pavel.feldman@gmail.com> 2 3 Web Inspector: encode binary web socket frames using base64 4 https://bugs.webkit.org/show_bug.cgi?id=207448 5 6 Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback, 7 this patch consistently encodes binary data using base64. 8 9 Reviewed by Timothy Hatcher. 10 11 * UserInterface/Models/WebSocketResource.js: 12 (WI.WebSocketResource.prototype.addFrame): 13 1 14 2020-02-11 Nikita Vasilyev <nvasilyev@apple.com> 2 15 -
trunk/Source/WebInspectorUI/UserInterface/Models/WebSocketResource.js
r248720 r256497 76 76 let frame = {data: frameData, isOutgoing, opcode, walltime: this._walltimeForWebSocketTimestamp(timestamp)}; 77 77 this._frames.push(frame); 78 if (InspectorFrontendHost.isUnderTest()) 79 frame.dataForTest = data; 78 80 79 81 // COMPATIBILITY (iOS 10.3): `payloadLength` did not exist in 10.3 and earlier.
Note: See TracChangeset
for help on using the changeset viewer.