diff options
author | pfeldman <pfeldman@chromium.org> | 2014-10-16 08:11:59 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-16 15:12:18 +0000 |
commit | 20f2492c84dc4ab5588b4034f952a99737d37472 (patch) | |
tree | dcd559f16884fbe427244ec153495704cbe01b96 /content/child/shared_worker_devtools_agent.cc | |
parent | 87ccb1133a179c1145b91b16f83cb71090835981 (diff) | |
download | chromium_src-20f2492c84dc4ab5588b4034f952a99737d37472.zip chromium_src-20f2492c84dc4ab5588b4034f952a99737d37472.tar.gz chromium_src-20f2492c84dc4ab5588b4034f952a99737d37472.tar.bz2 |
DevTools: add support for chunked protocol messages.
TBR=jochen
BUG=423738
Review URL: https://codereview.chromium.org/656033005
Cr-Commit-Position: refs/heads/master@{#299896}
Diffstat (limited to 'content/child/shared_worker_devtools_agent.cc')
-rw-r--r-- | content/child/shared_worker_devtools_agent.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/content/child/shared_worker_devtools_agent.cc b/content/child/shared_worker_devtools_agent.cc index cec6e56..06283ed 100644 --- a/content/child/shared_worker_devtools_agent.cc +++ b/content/child/shared_worker_devtools_agent.cc @@ -6,6 +6,7 @@ #include "content/child/child_thread.h" #include "content/common/devtools_messages.h" +#include "ipc/ipc_channel.h" #include "third_party/WebKit/public/platform/WebCString.h" #include "third_party/WebKit/public/platform/WebString.h" #include "third_party/WebKit/public/web/WebSharedWorker.h" @@ -15,6 +16,9 @@ using blink::WebString; namespace content { +static const size_t kMaxMessageChunkSize = + IPC::Channel::kMaximumMessageSize / 4; + SharedWorkerDevToolsAgent::SharedWorkerDevToolsAgent( int route_id, WebSharedWorker* webworker) @@ -43,9 +47,19 @@ bool SharedWorkerDevToolsAgent::OnMessageReceived(const IPC::Message& message) { void SharedWorkerDevToolsAgent::SendDevToolsMessage( const blink::WebString& message) { + std::string msg(message.utf8()); + if (message.length() < kMaxMessageChunkSize) { + Send(new DevToolsClientMsg_DispatchOnInspectorFrontend( + route_id_, msg, msg.size())); + return; + } + + for (size_t pos = 0; pos < msg.length(); pos += kMaxMessageChunkSize) { Send(new DevToolsClientMsg_DispatchOnInspectorFrontend( route_id_, - message.utf8())); + msg.substr(pos, kMaxMessageChunkSize), + pos ? 0 : msg.size())); + } } void SharedWorkerDevToolsAgent::SaveDevToolsAgentState( |