Index: chrome/renderer/resources/extensions/extension_process_bindings.js |
=================================================================== |
--- chrome/renderer/resources/extensions/extension_process_bindings.js (revision 107565) |
+++ chrome/renderer/resources/extensions/extension_process_bindings.js (working copy) |
@@ -445,6 +445,15 @@ |
}; |
} |
+ // Remove invalid characters from |text| so that it is suitable to use |
+ // for |AutocompleteMatch::contents|. |
+ function sanitizeString(text) { |
+ // NOTE: This logic mirrors |AutocompleteMatch::SanitizeString()|. |
+ // 0x2028 = line separator; 0x2029 = paragraph separator. |
+ var kRemoveChars = /(\r|\n|\t|\u2028|\u2029)/gm; |
+ return text.trimLeft().replace(kRemoveChars, ''); |
+ } |
+ |
// Parses the xml syntax supported by omnibox suggestion results. Returns an |
// object with two properties: 'description', which is just the text content, |
// and 'descriptionStyles', which is an array of style objects in a format |
@@ -476,7 +485,7 @@ |
for (var i = 0, child; child = node.childNodes[i]; i++) { |
// Append text nodes to our description. |
if (child.nodeType == Node.TEXT_NODE) { |
- result.description += child.nodeValue; |
+ result.description += sanitizeString(child.nodeValue); |
continue; |
} |