diff options
author | JustOff <Off.Just.Off@gmail.com> | 2019-03-26 01:27:46 +0200 |
---|---|---|
committer | JustOff <Off.Just.Off@gmail.com> | 2019-03-26 01:27:46 +0200 |
commit | a15e49e4269f34afaa1f37092332e134d9b9b711 (patch) | |
tree | 67c353ce808d67226a1d35928a089f76533b8e9f /application/palemoon/components/preferences/newtaburl.js | |
parent | aa816b3d848d38c83204c3dd1a1d0b86013978b4 (diff) | |
download | UXP-a15e49e4269f34afaa1f37092332e134d9b9b711.tar UXP-a15e49e4269f34afaa1f37092332e134d9b9b711.tar.gz UXP-a15e49e4269f34afaa1f37092332e134d9b9b711.tar.lz UXP-a15e49e4269f34afaa1f37092332e134d9b9b711.tar.xz UXP-a15e49e4269f34afaa1f37092332e134d9b9b711.zip |
Prevent mistaken overwriting of browser.newtab.url when using the browser preferences dialog
Diffstat (limited to 'application/palemoon/components/preferences/newtaburl.js')
-rw-r--r-- | application/palemoon/components/preferences/newtaburl.js | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/application/palemoon/components/preferences/newtaburl.js b/application/palemoon/components/preferences/newtaburl.js index ac0eec1c5..3c82df846 100644 --- a/application/palemoon/components/preferences/newtaburl.js +++ b/application/palemoon/components/preferences/newtaburl.js @@ -22,7 +22,11 @@ var gNewtabUrl = { return;
}
} else {
- newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice");
+ if (this.newtabUrlChoiceIsSet) {
+ newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice");
+ } else {
+ newtabUrlChoice = this.getNewtabChoice();
+ }
}
if (browserHomepageUrl || browserHomepageUrl == "") {
if (Services.prefs.getBoolPref("browser.preferences.instantApply")) {
@@ -64,5 +68,35 @@ var gNewtabUrl = { }
Services.prefs.setCharPref("browser.newtab.url",newtabUrlPref);
} catch(e) { console.error(e); }
+ },
+
+ /**
+ * Determines the value of browser.newtab.choice based
+ * on the value of browser.newtab.url
+ *
+ * @returns the value of browser.newtab.choice
+ */
+ getNewtabChoice: function() {
+ let newtabUrlPref = Services.prefs.getCharPref("browser.newtab.url");
+ let browserHomepageUrl = Services.prefs.getComplexValue("browser.startup.homepage",
+ Components.interfaces.nsIPrefLocalizedString).data;
+ let newtabUrlSanitizedPref = browserHomepageUrl.split("|")[0];
+ let defaultStartupHomepage = Services.prefs.getDefaultBranch("browser.")
+ .getComplexValue("startup.homepage",
+ Components.interfaces.nsIPrefLocalizedString).data;
+ switch (newtabUrlPref) {
+ case "about:logopage":
+ return 1;
+ case defaultStartupHomepage:
+ return 2;
+ case newtabUrlSanitizedPref:
+ return 3;
+ case "about:newtab":
+ return 4;
+ default: // Custom URL entered.
+ // We need this to consider instantApply.
+ this.newtabPageCustom = newtabUrlPref;
+ return 0;
+ }
}
};
|