summaryrefslogtreecommitdiffstats
path: root/webbrowser/base
diff options
context:
space:
mode:
Diffstat (limited to 'webbrowser/base')
-rw-r--r--webbrowser/base/content/urlbarBindings.xml17
1 files changed, 10 insertions, 7 deletions
diff --git a/webbrowser/base/content/urlbarBindings.xml b/webbrowser/base/content/urlbarBindings.xml
index d2d9cc7..31d6aa5 100644
--- a/webbrowser/base/content/urlbarBindings.xml
+++ b/webbrowser/base/content/urlbarBindings.xml
@@ -505,11 +505,15 @@
let uriFixup = Cc["@mozilla.org/docshell/urifixup;1"].getService(Ci.nsIURIFixup);
let uri;
- try {
- uri = uriFixup.createFixupURI(inputVal, Ci.nsIURIFixup.FIXUP_FLAG_NONE);
- } catch (e) {}
- if (!uri)
- return selectedVal;
+
+ if (this.getAttribute("pageproxystate") == "valid") {
+ uri = gBrowser.currentURI;
+ } else {
+ // We're dealing with an autocompleted value, create a new URI from that.
+ try { uri = uriFixup.createFixupURI(inputVal, Ci.nsIURIFixup.FIXUP_FLAG_NONE); } catch (e) {}
+ if (!uri)
+ return selectedVal;
+ }
// Only copy exposable URIs
try {
@@ -521,8 +525,7 @@
// ... but only if isn't a javascript: or data: URI, since those
// are hard to read when encoded
if (!uri.schemeIs("javascript") && !uri.schemeIs("data")) {
- // Parentheses are known to confuse third-party applications (bug 458565).
- selectedVal = uri.spec.replace(/[()]/g, function (c) escape(c));
+ selectedVal = uri.spec;
}
return selectedVal;