diff options
Diffstat (limited to 'application/palemoon/components/preferences')
-rw-r--r-- | application/palemoon/components/preferences/tabs.js | 35 | ||||
-rw-r--r-- | application/palemoon/components/preferences/tabs.xul | 3 |
2 files changed, 27 insertions, 11 deletions
diff --git a/application/palemoon/components/preferences/tabs.js b/application/palemoon/components/preferences/tabs.js index 9e15d8bb4..f0ad8490c 100644 --- a/application/palemoon/components/preferences/tabs.js +++ b/application/palemoon/components/preferences/tabs.js @@ -89,7 +89,7 @@ var gTabsPane = { case "about:logopage": newtabUrlChoice.value = 1; break; - case "https://start.palemoon.org/": + case "http://start.palemoon.org/": newtabUrlChoice.value = 2; break; case newtabUrlSanitizedPref.value: @@ -101,6 +101,8 @@ var gTabsPane = { default: // Custom URL entered. document.getElementById("newtabPageCustom").hidden = false; newtabUrlChoice.value = 0; + // We need this to consider instantApply. + this.newtabPageCustom = newtabUrlPref.value; } }, @@ -109,32 +111,45 @@ var gTabsPane = { * if the choice is "my home page", get and sanitize the browser home page * URL to make it suitable for newtab use. * - * Called from prefwindow's ondialogaccept handler. + * Called from prefwindow's ondialogaccept handler and + * from browser.newtab.choice's oncommand to consider instantApply. */ - writeNewtabUrl: function() { + writeNewtabUrl: function(newtabUrlChoice) { try { - let newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice"); - let browserHomepageUrl = Services.prefs.getCharPref("browser.startup.homepage"); + if (newtabUrlChoice) { + if (Services.prefs.getBoolPref("browser.preferences.instantApply")) { + newtabUrlChoice = parseInt(newtabUrlChoice); + } else { + return; + } + } else { + newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice"); + } + let browserHomepageUrl = Services.prefs.getComplexValue("browser.startup.homepage", + Components.interfaces.nsIPrefLocalizedString).data; let newtabUrlPref = Services.prefs.getCharPref("browser.newtab.url"); switch (newtabUrlChoice) { case 1: - newtabUrlPref="about:logopage"; + newtabUrlPref = "about:logopage"; break; case 2: - newtabUrlPref="https://start.palemoon.org/"; + newtabUrlPref = "http://start.palemoon.org/"; break; case 3: // If url is a pipe-delimited set of pages, just take the first one. let newtabUrlSanitizedPref=browserHomepageUrl.split("|")[0]; // XXX: do we need extra sanitation here, e.g. for invalid URLs? Services.prefs.setCharPref("browser.newtab.myhome", newtabUrlSanitizedPref); - newtabUrlPref=newtabUrlSanitizedPref; + newtabUrlPref = newtabUrlSanitizedPref; break; case 4: - newtabUrlPref="about:newtab"; + newtabUrlPref = "about:newtab"; break; default: - // In case of any other value it's a custom URL, so don't change anything... + // In case of any other value it's a custom URL, consider instantApply. + if (this.newtabPageCustom) { + newtabUrlPref = this.newtabPageCustom; + } } Services.prefs.setCharPref("browser.newtab.url",newtabUrlPref); } catch(e) { console.error(e); } diff --git a/application/palemoon/components/preferences/tabs.xul b/application/palemoon/components/preferences/tabs.xul index fc15a87ef..f5b44b776 100644 --- a/application/palemoon/components/preferences/tabs.xul +++ b/application/palemoon/components/preferences/tabs.xul @@ -84,7 +84,8 @@ <label value="&newtabPage.label;"/> <menulist id="newtabPage" - preference="browser.newtab.choice"> + preference="browser.newtab.choice" + oncommand="gTabsPane.writeNewtabUrl(event.target.value);"> <menupopup> <menuitem label="&newtabPage.custom.label;" value="0" id="newtabPageCustom" hidden="true" /> <menuitem label="&newtabPage.blank.label;" value="1" /> |