| Index: content/shell/browser/shell_devtools_frontend.cc
|
| diff --git a/content/shell/browser/shell_devtools_frontend.cc b/content/shell/browser/shell_devtools_frontend.cc
|
| index 0dea6a16b5567df25149282e255cd437ed3a6145..e580e28a7a9ae6ac5b290acf52a76a40b6b8758a 100644
|
| --- a/content/shell/browser/shell_devtools_frontend.cc
|
| +++ b/content/shell/browser/shell_devtools_frontend.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/command_line.h"
|
| #include "base/json/json_reader.h"
|
| #include "base/json/json_writer.h"
|
| +#include "base/json/string_escape.h"
|
| #include "base/macros.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/stringprintf.h"
|
| @@ -270,18 +271,21 @@ void ShellDevToolsFrontend::DispatchProtocolMessage(
|
| DevToolsAgentHost* agent_host, const std::string& message) {
|
|
|
| if (message.length() < kMaxMessageChunkSize) {
|
| - base::string16 javascript = base::UTF8ToUTF16(
|
| - "DevToolsAPI.dispatchMessage(" + message + ");");
|
| + std::string param;
|
| + base::EscapeJSONString(message, true, ¶m);
|
| + std::string code = "DevToolsAPI.dispatchMessage(" + param + ");";
|
| + base::string16 javascript = base::UTF8ToUTF16(code);
|
| web_contents()->GetMainFrame()->ExecuteJavaScriptForTests(javascript);
|
| return;
|
| }
|
|
|
| - base::FundamentalValue total_size(static_cast<int>(message.length()));
|
| + size_t total_size = message.length();
|
| for (size_t pos = 0; pos < message.length(); pos += kMaxMessageChunkSize) {
|
| std::string param;
|
| - base::JSONWriter::Write(
|
| - base::StringValue(message.substr(pos, kMaxMessageChunkSize)), ¶m);
|
| - std::string code = "DevToolsAPI.dispatchMessageChunk(" + param + ");";
|
| + base::EscapeJSONString(message.substr(pos, kMaxMessageChunkSize), true,
|
| + ¶m);
|
| + std::string code = "DevToolsAPI.dispatchMessageChunk(" + param + "," +
|
| + std::to_string(pos ? 0 : total_size) + ");";
|
| base::string16 javascript = base::UTF8ToUTF16(code);
|
| web_contents()->GetMainFrame()->ExecuteJavaScriptForTests(javascript);
|
| }
|
|
|