Commit 595fe3e4 authored by Joey Arhar's avatar Joey Arhar Committed by Commit Bot

[DevTools] Correct WebSocket Frames to be Messages

Bug: 802182
Change-Id: I01b45373ab5fe21bf2513cd1ea9e7f2e90d9820f
Reviewed-on: https://chromium-review.googlesource.com/c/1356135Reviewed-by: default avatarDmitry Gozman <dgozman@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612761}
parent d561872d
......@@ -3818,14 +3818,14 @@ domain Network
# HTTP request headers text.
optional string requestHeadersText
# WebSocket frame data.
# WebSocket message data. This represents an entire WebSocket message, not just a fragmented frame as the name suggests.
type WebSocketFrame extends object
properties
# WebSocket frame opcode.
# WebSocket message opcode.
number opcode
# WebSocke frame mask.
# WebSocket message mask.
boolean mask
# WebSocke frame payload data.
# WebSocket message payload data.
string payloadData
# Information about the cached resource.
......@@ -4459,17 +4459,17 @@ domain Network
# Request initiator.
optional Initiator initiator
# Fired when WebSocket frame error occurs.
# Fired when WebSocket message error occurs.
event webSocketFrameError
parameters
# Request identifier.
RequestId requestId
# Timestamp.
MonotonicTime timestamp
# WebSocket frame error message.
# WebSocket error message.
string errorMessage
# Fired when WebSocket frame is received.
# Fired when WebSocket message is received.
event webSocketFrameReceived
parameters
# Request identifier.
......@@ -4479,7 +4479,7 @@ domain Network
# WebSocket response data.
WebSocketFrame response
# Fired when WebSocket frame is sent.
# Fired when WebSocket message is sent.
event webSocketFrameSent
parameters
# Request identifier.
......
......@@ -1257,11 +1257,11 @@ void InspectorNetworkAgent::DidCloseWebSocket(ExecutionContext*,
CurrentTimeTicksInSeconds());
}
void InspectorNetworkAgent::DidReceiveWebSocketFrame(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length) {
void InspectorNetworkAgent::DidReceiveWebSocketMessage(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length) {
std::unique_ptr<protocol::Network::WebSocketFrame> frame_object =
protocol::Network::WebSocketFrame::create()
.setOpcode(op_code)
......@@ -1274,11 +1274,11 @@ void InspectorNetworkAgent::DidReceiveWebSocketFrame(unsigned long identifier,
CurrentTimeTicksInSeconds(), std::move(frame_object));
}
void InspectorNetworkAgent::DidSendWebSocketFrame(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length) {
void InspectorNetworkAgent::DidSendWebSocketMessage(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length) {
std::unique_ptr<protocol::Network::WebSocketFrame> frame_object =
protocol::Network::WebSocketFrame::create()
.setOpcode(op_code)
......@@ -1291,7 +1291,7 @@ void InspectorNetworkAgent::DidSendWebSocketFrame(unsigned long identifier,
CurrentTimeTicksInSeconds(), std::move(frame_object));
}
void InspectorNetworkAgent::DidReceiveWebSocketFrameError(
void InspectorNetworkAgent::DidReceiveWebSocketMessageError(
unsigned long identifier,
const String& error_message) {
GetFrontend()->webSocketFrameError(
......
......@@ -170,17 +170,17 @@ class CORE_EXPORT InspectorNetworkAgent final
network::mojom::blink::WebSocketHandshakeRequest*,
network::mojom::blink::WebSocketHandshakeResponse*);
void DidCloseWebSocket(ExecutionContext*, unsigned long identifier);
void DidReceiveWebSocketFrame(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length);
void DidSendWebSocketFrame(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length);
void DidReceiveWebSocketFrameError(unsigned long identifier, const String&);
void DidReceiveWebSocketMessage(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length);
void DidSendWebSocketMessage(unsigned long identifier,
int op_code,
bool masked,
const char* payload,
size_t payload_length);
void DidReceiveWebSocketMessageError(unsigned long identifier, const String&);
// Called from frontend
protocol::Response enable(Maybe<int> total_buffer_size,
......
......@@ -129,10 +129,10 @@
"didReceiveEncodedDataLength",
"didReceiveResourceResponse",
"didReceiveScriptResponse",
"didReceiveWebSocketFrame",
"didReceiveWebSocketFrameError",
"didReceiveWebSocketMessage",
"didReceiveWebSocketMessageError",
"didReceiveWebSocketHandshakeResponse",
"didSendWebSocketFrame",
"didSendWebSocketMessage",
"frameClearedScheduledNavigation",
"frameScheduledNavigation",
"markResourceAsCached",
......
......@@ -126,9 +126,9 @@ interface CoreProbes {
void willSendWebSocketHandshakeRequest([Keep] ExecutionContext*, unsigned long identifier, network::mojom::blink::WebSocketHandshakeRequest* request);
void didReceiveWebSocketHandshakeResponse([Keep] ExecutionContext*, unsigned long identifier, network::mojom::blink::WebSocketHandshakeRequest* request, network::mojom::blink::WebSocketHandshakeResponse* response);
void didCloseWebSocket([Keep] ExecutionContext*, unsigned long identifier);
void didReceiveWebSocketFrame(ExecutionContext*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
void didSendWebSocketFrame(ExecutionContext*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
void didReceiveWebSocketFrameError(ExecutionContext*, unsigned long identifier, const String& errorMessage);
void didReceiveWebSocketMessage(ExecutionContext*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
void didSendWebSocketMessage(ExecutionContext*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength);
void didReceiveWebSocketMessageError(ExecutionContext*, unsigned long identifier, const String& errorMessage);
void networkStateChanged([Keep] LocalFrame*, bool online);
void updateApplicationCacheStatus([Keep] LocalFrame*);
void layerTreeDidChange(LocalFrame*);
......
......@@ -49,8 +49,8 @@ Network.NetworkItemView = class extends UI.TabbedPane {
if (request.resourceType() === Common.resourceTypes.WebSocket) {
const frameView = new Network.ResourceWebSocketFrameView(request);
this.appendTab(
Network.NetworkItemView.Tabs.WsFrames, Common.UIString('Frames'), frameView,
Common.UIString('WebSocket frames'));
Network.NetworkItemView.Tabs.WsFrames, Common.UIString('Messages'), frameView,
Common.UIString('WebSocket messages'));
} else if (request.mimeType === 'text/event-stream') {
this.appendTab(
Network.NetworkItemView.Tabs.EventSource, Common.UIString('EventStream'),
......
......@@ -84,7 +84,7 @@ Network.ResourceWebSocketFrameView = class extends UI.VBox {
mainContainer.setMinimumSize(0, 72);
this._splitWidget.setMainWidget(mainContainer);
this._frameEmptyWidget = new UI.EmptyWidget(Common.UIString('Select frame to browse its content.'));
this._frameEmptyWidget = new UI.EmptyWidget(Common.UIString('Select message to browse its content.'));
this._splitWidget.setSidebarWidget(this._frameEmptyWidget);
/** @type {?Network.ResourceWebSocketFrameNode} */
......@@ -220,11 +220,11 @@ Network.ResourceWebSocketFrameView.opCodeDescriptions = (function() {
const opCodes = Network.ResourceWebSocketFrameView.OpCodes;
const map = [];
map[opCodes.ContinuationFrame] = 'Continuation Frame';
map[opCodes.TextFrame] = 'Text Frame';
map[opCodes.BinaryFrame] = 'Binary Frame';
map[opCodes.ContinuationFrame] = 'Connection Close Frame';
map[opCodes.PingFrame] = 'Ping Frame';
map[opCodes.PongFrame] = 'Pong Frame';
map[opCodes.TextFrame] = 'Text Message';
map[opCodes.BinaryFrame] = 'Binary Message';
map[opCodes.ContinuationFrame] = 'Connection Close Message';
map[opCodes.PingFrame] = 'Ping Message';
map[opCodes.PongFrame] = 'Pong Message';
return map;
})();
......
......@@ -278,11 +278,9 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
void WebSocketChannelImpl::Send(const CString& message) {
NETWORK_DVLOG(1) << this << " Send(" << message << ") (CString argument)";
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
probe::didSendWebSocketFrame(execution_context_, identifier_,
WebSocketOpCode::kOpCodeText, true,
message.data(), message.length());
probe::didSendWebSocketMessage(execution_context_, identifier_,
WebSocketOpCode::kOpCodeText, true,
message.data(), message.length());
messages_.push_back(MakeGarbageCollected<Message>(message));
ProcessSendQueue();
}
......@@ -293,13 +291,11 @@ void WebSocketChannelImpl::Send(
<< blob_data_handle->GetType() << ", "
<< blob_data_handle->size() << ") "
<< "(BlobDataHandle argument)";
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
// FIXME: We can't access the data here.
// Since Binary data are not displayed in Inspector, this does not
// affect actual behavior.
probe::didSendWebSocketFrame(execution_context_, identifier_,
WebSocketOpCode::kOpCodeBinary, true, "", 0);
probe::didSendWebSocketMessage(execution_context_, identifier_,
WebSocketOpCode::kOpCodeBinary, true, "", 0);
messages_.push_back(
MakeGarbageCollected<Message>(std::move(blob_data_handle)));
ProcessSendQueue();
......@@ -311,9 +307,7 @@ void WebSocketChannelImpl::Send(const DOMArrayBuffer& buffer,
NETWORK_DVLOG(1) << this << " Send(" << buffer.Data() << ", " << byte_offset
<< ", " << byte_length << ") "
<< "(DOMArrayBuffer argument)";
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
probe::didSendWebSocketFrame(
probe::didSendWebSocketMessage(
execution_context_, identifier_, WebSocketOpCode::kOpCodeBinary, true,
static_cast<const char*>(buffer.Data()) + byte_offset, byte_length);
// buffer.slice copies its contents.
......@@ -329,11 +323,9 @@ void WebSocketChannelImpl::SendTextAsCharVector(
NETWORK_DVLOG(1) << this << " SendTextAsCharVector("
<< static_cast<void*>(data.get()) << ", " << data->size()
<< ")";
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
probe::didSendWebSocketFrame(execution_context_, identifier_,
WebSocketOpCode::kOpCodeText, true, data->data(),
data->size());
probe::didSendWebSocketMessage(execution_context_, identifier_,
WebSocketOpCode::kOpCodeText, true,
data->data(), data->size());
messages_.push_back(MakeGarbageCollected<Message>(
std::move(data), kMessageTypeTextAsCharVector));
ProcessSendQueue();
......@@ -344,11 +336,9 @@ void WebSocketChannelImpl::SendBinaryAsCharVector(
NETWORK_DVLOG(1) << this << " SendBinaryAsCharVector("
<< static_cast<void*>(data.get()) << ", " << data->size()
<< ")";
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
probe::didSendWebSocketFrame(execution_context_, identifier_,
WebSocketOpCode::kOpCodeBinary, true,
data->data(), data->size());
probe::didSendWebSocketMessage(execution_context_, identifier_,
WebSocketOpCode::kOpCodeBinary, true,
data->data(), data->size());
messages_.push_back(MakeGarbageCollected<Message>(
std::move(data), kMessageTypeBinaryAsCharVector));
ProcessSendQueue();
......@@ -367,7 +357,8 @@ void WebSocketChannelImpl::Fail(const String& reason,
MessageLevel level,
std::unique_ptr<SourceLocation> location) {
NETWORK_DVLOG(1) << this << " Fail(" << reason << ")";
probe::didReceiveWebSocketFrameError(execution_context_, identifier_, reason);
probe::didReceiveWebSocketMessageError(execution_context_, identifier_,
reason);
const String message =
"WebSocket connection to '" + url_.ElidedString() + "' failed: " + reason;
......@@ -659,14 +650,12 @@ void WebSocketChannelImpl::DidReceiveData(WebSocketHandle* handle,
if (!fin) {
return;
}
// FIXME: Change the inspector API to show the entire message instead
// of individual frames.
auto opcode = receiving_message_type_is_text_
? WebSocketOpCode::kOpCodeText
: WebSocketOpCode::kOpCodeBinary;
probe::didReceiveWebSocketFrame(execution_context_, identifier_, opcode,
false, receiving_message_data_.data(),
receiving_message_data_.size());
probe::didReceiveWebSocketMessage(execution_context_, identifier_, opcode,
false, receiving_message_data_.data(),
receiving_message_data_.size());
if (receiving_message_type_is_text_) {
String message = receiving_message_data_.IsEmpty()
? g_empty_string
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment