Index: chrome/browser/devtools/devtools_ui_bindings.cc |
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc |
index b035e7f19410c3309b989ebf99fe6d9842e9f464..d8636d9106033555e9be8550e81472f16c206923 100644 |
--- a/chrome/browser/devtools/devtools_ui_bindings.cc |
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc |
@@ -7,6 +7,7 @@ |
#include <stddef.h> |
#include <utility> |
+#include "base/base64.h" |
#include "base/json/json_reader.h" |
#include "base/json/json_writer.h" |
#include "base/json/string_escape.h" |
@@ -267,17 +268,21 @@ int ResponseWriter::Write(net::IOBuffer* buffer, |
int num_bytes, |
const net::CompletionCallback& callback) { |
std::string chunk = std::string(buffer->data(), num_bytes); |
- if (!base::IsStringUTF8(chunk)) |
- return num_bytes; |
+ bool encoded = false; |
+ if (!base::IsStringUTF8(chunk)) { |
+ encoded = true; |
+ base::Base64Encode(chunk, &chunk); |
+ } |
base::FundamentalValue* id = new base::FundamentalValue(stream_id_); |
base::StringValue* chunkValue = new base::StringValue(chunk); |
+ base::FundamentalValue* encodedValue = new base::FundamentalValue(encoded); |
content::BrowserThread::PostTask( |
content::BrowserThread::UI, FROM_HERE, |
- base::Bind(&DevToolsUIBindings::CallClientFunction, |
- bindings_, "DevToolsAPI.streamWrite", |
- base::Owned(id), base::Owned(chunkValue), nullptr)); |
+ base::Bind(&DevToolsUIBindings::CallClientFunction, bindings_, |
+ "DevToolsAPI.streamWrite", base::Owned(id), |
+ base::Owned(chunkValue), base::Owned(encodedValue))); |
return num_bytes; |
} |