summaryrefslogtreecommitdiffstats
path: root/application/palemoon/base/content/openLocation.js
diff options
context:
space:
mode:
Diffstat (limited to 'application/palemoon/base/content/openLocation.js')
-rw-r--r--application/palemoon/base/content/openLocation.js93
1 files changed, 51 insertions, 42 deletions
diff --git a/application/palemoon/base/content/openLocation.js b/application/palemoon/base/content/openLocation.js
index f39e34666..7ad2f7c4a 100644
--- a/application/palemoon/base/content/openLocation.js
+++ b/application/palemoon/base/content/openLocation.js
@@ -61,53 +61,62 @@ function doEnabling()
function open()
{
- getShortcutOrURIAndPostData(dialog.input.value).then(data => {
- let url;
- let postData = null;
- let mayInheritPrincipal = false;
-
- if (browser) {
- url = data.url;
- postData = data.postData;
- mayInheritPrincipal = data.mayInheritPrincipal;
- } else {
- url = dialog.input.value;
- }
+ var openData = {
+ "url": null,
+ "postData": null,
+ "mayInheritPrincipal": false
+ };
+ if (browser) {
+ browser.getShortcutOrURIAndPostData(dialog.input.value).then(data => {
+ openData.url = data.url;
+ openData.postData = data.postData;
+ openData.mayInheritPrincipal = data.mayInheritPrincipal;
+
+ openLocation(openData);
+ });
+ } else {
+ openData.url = dialog.input.value;
+
+ openLocation(openData);
+ }
- try {
- // Whichever target we use for the load, we allow third-party services to
- // fixup the URI
- switch (dialog.openWhereList.value) {
- case "0":
- var webNav = Components.interfaces.nsIWebNavigation;
- var flags = webNav.LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP |
- webNav.LOAD_FLAGS_FIXUP_SCHEME_TYPOS;
- if (!mayInheritPrincipal)
- flags |= webNav.LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL;
- browser.gBrowser.loadURIWithFlags(url, flags, null, null, postData);
- break;
- case "1":
- window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no",
- url, postData, null, null, true);
- break;
- case "3":
- browser.delayedOpenTab(url, null, null, postData, true);
- break;
- }
- }
- catch(exception) {
- }
+ return false;
+}
- if (pref) {
- gOpenLocationLastURL.value = dialog.input.value;
- pref.setIntPref("general.open_location.last_window_choice", dialog.openWhereList.value);
+function openLocation(openData)
+{
+ try {
+ // Whichever target we use for the load, we allow third-party services to
+ // fix up the URI
+ switch (dialog.openWhereList.value) {
+ case "0":
+ var webNav = Components.interfaces.nsIWebNavigation;
+ var flags = webNav.LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP |
+ webNav.LOAD_FLAGS_FIXUP_SCHEME_TYPOS;
+ if (!openData.mayInheritPrincipal)
+ flags |= webNav.LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL;
+ browser.gBrowser.loadURIWithFlags(
+ openData.url, flags, null, null, openData.postData);
+ break;
+ case "1":
+ window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no",
+ openData.url, openData.postData,
+ null, null, true);
+ break;
+ case "3":
+ browser.delayedOpenTab(
+ openData.url, null, null, openData.postData, true);
+ break;
}
+ } catch (ex) {}
- // Delay closing slightly to avoid timing bug on Linux.
- window.close();
- });
+ if (pref) {
+ gOpenLocationLastURL.value = dialog.input.value;
+ pref.setIntPref(
+ "general.open_location.last_window_choice", dialog.openWhereList.value);
+ }
- return false;
+ window.close();
}
function createInstance(contractid, iidName)