Index: Source/core/inspector/InspectorFrontendHost.cpp |
diff --git a/Source/core/inspector/InspectorFrontendHost.cpp b/Source/core/inspector/InspectorFrontendHost.cpp |
index 04d53529857bf85a59f12195c2651b3a24ce445f..d80087eee5a20e0d283812c880571d2d99a7822c 100644 |
--- a/Source/core/inspector/InspectorFrontendHost.cpp |
+++ b/Source/core/inspector/InspectorFrontendHost.cpp |
@@ -160,16 +160,33 @@ void InspectorFrontendHost::copyText(const String& text) |
Pasteboard::generalPasteboard()->writePlainText(text, Pasteboard::CannotSmartReplace); |
} |
+static String escapeUnicodeNonCharacters(const String& str) |
+{ |
+ StringBuilder dst; |
+ for (unsigned i = 0; i < str.length(); ++i) { |
+ UChar c = str[i]; |
+ if (c > 126) { |
alph
2014/03/05 09:01:54
126 seems to be too conservative. I'd suggest esca
yurys
2014/03/05 11:33:37
PTAL: https://codereview.chromium.org/180113008/
|
+ unsigned symbol = static_cast<unsigned>(c); |
+ String symbolCode = String::format("\\u%04X", symbol); |
+ dst.append(symbolCode); |
+ } else { |
+ dst.append(c); |
+ } |
+ |
+ } |
+ return dst.toString(); |
+} |
+ |
void InspectorFrontendHost::sendMessageToBackend(const String& message) |
{ |
if (m_client) |
- m_client->sendMessageToBackend(message); |
+ m_client->sendMessageToBackend(escapeUnicodeNonCharacters(message)); |
} |
void InspectorFrontendHost::sendMessageToEmbedder(const String& message) |
{ |
if (m_client) |
- m_client->sendMessageToEmbedder(message); |
+ m_client->sendMessageToEmbedder(escapeUnicodeNonCharacters(message)); |
} |
void InspectorFrontendHost::showContextMenu(Event* event, const Vector<ContextMenuItem>& items) |