diff options
author | nick@chromium.org <nick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-18 09:29:01 +0000 |
---|---|---|
committer | nick@chromium.org <nick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-18 09:29:01 +0000 |
commit | 9e5952ecac6a0d63fafcb6ed0bbb89a843214408 (patch) | |
tree | 11b281c4350ced02ff1bbb6ffec559d51b3a5d91 /content/browser/tracing/tracing_ui.cc | |
parent | 95b60a1ee9946e7c37ef1fbeb519d66943c5421a (diff) | |
download | chromium_src-9e5952ecac6a0d63fafcb6ed0bbb89a843214408.zip chromium_src-9e5952ecac6a0d63fafcb6ed0bbb89a843214408.tar.gz chromium_src-9e5952ecac6a0d63fafcb6ed0bbb89a843214408.tar.bz2 |
tracing_ui.cc: fix single-quote escaping issue that caused
many tracing sources to be lost.
R=nduca
BUG=237481
TEST=collect about:tracing with "tasks" category enabled. Make sure the browser thread exists.
Review URL: https://chromiumcodereview.appspot.com/14943011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200984 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/tracing/tracing_ui.cc')
-rw-r--r-- | content/browser/tracing/tracing_ui.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/content/browser/tracing/tracing_ui.cc b/content/browser/tracing/tracing_ui.cc index 5b7e359..87f2f93 100644 --- a/content/browser/tracing/tracing_ui.cc +++ b/content/browser/tracing/tracing_ui.cc @@ -11,6 +11,7 @@ #include "base/command_line.h" #include "base/debug/trace_event.h" #include "base/file_util.h" +#include "base/json/string_escape.h" #include "base/memory/scoped_ptr.h" #include "base/string_util.h" #include "base/stringprintf.h" @@ -487,16 +488,15 @@ void TracingMessageHandler::OnTraceDataCollected( const scoped_refptr<base::RefCountedString>& trace_fragment) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - std::string javascript("window.traceData += '"); - - std::string escaped_data; - ReplaceChars(trace_fragment->data(), "\\", "\\\\", &escaped_data); - javascript += escaped_data; + std::string javascript; + javascript.reserve(trace_fragment->size() * 2); + javascript.append("window.traceData += \""); + base::JsonDoubleQuote(trace_fragment->data(), false, &javascript); // Intentionally append a , to the traceData. This technically causes all // traceData that we pass back to JS to end with a comma, but that is actually // something the JS side strips away anyway - javascript += ",';"; + javascript.append(",\";"); web_ui()->GetWebContents()->GetRenderViewHost()-> ExecuteJavascriptInWebFrame(string16(), UTF8ToUTF16(javascript)); |