Bug 452979 p=Masahiro Yamada <masa141421356@gmail.com>, r=gavin, a=beltzner
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -2090,16 +2090,21 @@ function losslessDecodeURI(aURI) {
// ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '#'
// (RFC 3987 section 3.2)
// 2. Re-encode whitespace so that it doesn't get eaten away
// by the location bar (bug 410726).
.replace(/%(?!3B|2F|3F|3A|40|26|3D|2B|24|2C|23)|[\r\n\t]/ig,
encodeURIComponent);
} catch (e) {}
+ // Encode invisible characters (invisible control characters, soft hyphen,
+ // zero-width space, BOM, line separator, paragraph separator) (bug 452979)
+ value = value.replace(/[\v\x0c\x1c\x1d\x1e\x1f\u00ad\u200b\ufeff\u2028\u2029]/g,
+ encodeURIComponent);
+
// Encode bidirectional formatting characters.
// (RFC 3987 sections 3.2 and 4.1 paragraph 6)
value = value.replace(/[\u200e\u200f\u202a\u202b\u202c\u202d\u202e]/g,
encodeURIComponent);
return value;
}
function UpdateUrlbarSearchSplitterState()