diff options
-rw-r--r-- | webbrowser/base/content/urlbarBindings.xml | 17 |
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; |