summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPale Moon <git-repo@palemoon.org>2017-01-12 19:12:39 +0100
committerPale Moon <git-repo@palemoon.org>2017-01-12 19:12:39 +0100
commite47de2870c354d426eac6e3cd489c175d7664e1a (patch)
tree9275201da06af49eacad3f54cc3f5a067366a104
parent414543ddc9c987de039805df8422d00d31b4fb3f (diff)
downloadpalemoon-gre-e47de2870c354d426eac6e3cd489c175d7664e1a.tar.gz
Make privacy preferences a tabbed category.
No string changes, previous strings for groupboxes have been re-used. This resolves #766.
-rw-r--r--browser/components/preferences/privacy.js26
-rw-r--r--browser/components/preferences/privacy.xul340
2 files changed, 204 insertions, 162 deletions
diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index ebb47bd74..6f7103b4a 100644
--- a/browser/components/preferences/privacy.js
+++ b/browser/components/preferences/privacy.js
@@ -20,9 +20,22 @@ var gPrivacyPane = {
/**
* Sets up the UI for the number of days of history to keep, and updates the
* label of the "Clear Now..." button.
+ * Also restores the previously selected tab or tab index passed as argument.
*/
init: function ()
{
+ this._inited = true;
+ var privacyPrefs = document.getElementById("privacyPrefs");
+
+ var extraArgs = window.arguments[1];
+ if (extraArgs && extraArgs["privacyTab"]){
+ privacyPrefs.selectedTab = document.getElementById(extraArgs["privacyTab"]);
+ } else {
+ var preference = document.getElementById("browser.preferences.privacy.selectedTabIndex");
+ if (preference.value !== null)
+ privacyPrefs.selectedIndex = preference.value;
+ }
+
this._updateSanitizeSettingsButton();
this.initializeHistoryMode();
this.updateHistoryModePane();
@@ -30,6 +43,19 @@ var gPrivacyPane = {
this.initAutoStartPrivateBrowsingReverter();
},
+ /**
+ * Stores the identity of the current tab in preferences so that the selected
+ * tab can be persisted between openings of the preferences window.
+ */
+ tabSelectionChanged: function ()
+ {
+ if (!this._inited)
+ return;
+ var privacyPrefs = document.getElementById("privacyPrefs");
+ var preference = document.getElementById("browser.preferences.privacy.selectedTabIndex");
+ preference.valueFromPreferences = privacyPrefs.selectedIndex;
+ },
+
// HISTORY MODE
/**
diff --git a/browser/components/preferences/privacy.xul b/browser/components/preferences/privacy.xul
index 37e05c202..5290c3583 100644
--- a/browser/components/preferences/privacy.xul
+++ b/browser/components/preferences/privacy.xul
@@ -21,6 +21,10 @@
helpTopic="prefs-privacy">
<preferences id="privacyPreferences">
+
+ <preference id="browser.preferences.privacy.selectedTabIndex"
+ name="browser.preferences.privacy.selectedTabIndex"
+ type="int"/>
<!-- Tracking -->
<preference id="privacy.donottrackheader.enabled"
@@ -86,185 +90,197 @@
<script type="application/javascript" src="chrome://browser/content/preferences/privacy.js"/>
- <!-- Tracking -->
- <groupbox id="trackingGroup" align="start">
- <caption label="&tracking.label;"/>
- <radiogroup id="doNotTrackSelection" orient="vertical"
- preference="privacy.donottrackheader.value"
- onsynctopreference="return gPrivacyPane.setTrackingPrefs()"
- onsyncfrompreference="return gPrivacyPane.getTrackingPrefs()">
- <radio id="dntnotrack" value="1" label="&dntTrackingNotOkay.label2;"
- accesskey="&dntTrackingNotOkay.accesskey;" />
- <radio id="dntdotrack" value="0" label="&dntTrackingOkay.label2;"
- accesskey="&dntTrackingOkay.accesskey;" />
- <radio id="dntnopref" value="-1" label="&dntTrackingNopref.label2;"
- accesskey="&dntTrackingNopref.accesskey;" />
- </radiogroup>
- <label class="text-link" id="doNotTrackInfo"
- href="https://www.mozilla.org/dnt"
- value="&doNotTrackInfo.label;"/>
+ <tabbox id="privacyPrefs" flex="1"
+ onselect="gPrivacyPane.tabSelectionChanged();">
- </groupbox>
+ <tabs id="tabsElement">
+ <tab id="historyTab" label="&history.label;"/>
+ <tab id="trackingTab" label="&tracking.label;"/>
+ <tab id="locationBarTab" label="&locationBar.label;"/>
+ </tabs>
- <!-- History -->
- <groupbox id="historyGroup">
- <caption label="&history.label;"/>
+ <tabpanels flex="1">
- <hbox align="center">
- <label id="historyModeLabel"
- control="historyMode"
- accesskey="&historyHeader.pre.accesskey;">&historyHeader.pre.label;</label>
- <menulist id="historyMode"
- oncommand="gPrivacyPane.updateHistoryModePane();
- gPrivacyPane.updateHistoryModePrefs();
- gPrivacyPane.updatePrivacyMicroControls();
- gPrivacyPane.updateAutostart();">
- <menupopup>
- <menuitem label="&historyHeader.remember.label;" value="remember"/>
- <menuitem label="&historyHeader.dontremember.label;" value="dontremember"/>
- <menuitem label="&historyHeader.custom.label;" value="custom"/>
- </menupopup>
- </menulist>
- <label>&historyHeader.post.label;</label>
- </hbox>
+ <!-- History -->
+ <tabpanel id="historyPanel" orient="vertical">
+
+ <hbox align="center">
+ <label id="historyModeLabel"
+ control="historyMode"
+ accesskey="&historyHeader.pre.accesskey;">&historyHeader.pre.label;</label>
+ <menulist id="historyMode"
+ oncommand="gPrivacyPane.updateHistoryModePane();
+ gPrivacyPane.updateHistoryModePrefs();
+ gPrivacyPane.updatePrivacyMicroControls();
+ gPrivacyPane.updateAutostart();">
+ <menupopup>
+ <menuitem label="&historyHeader.remember.label;" value="remember"/>
+ <menuitem label="&historyHeader.dontremember.label;" value="dontremember"/>
+ <menuitem label="&historyHeader.custom.label;" value="custom"/>
+ </menupopup>
+ </menulist>
+ <label>&historyHeader.post.label;</label>
+ </hbox>
- <deck id="historyPane">
- <vbox align="center" id="historyRememberPane">
- <hbox align="center" flex="1">
- <spacer flex="1" class="indent"/>
- <vbox flex="2">
- <description>&rememberDescription.label;</description>
- <separator/>
- <description>&rememberActions.pre.label;<html:a
- class="inline-link" href="#"
- onclick="gPrivacyPane.clearPrivateDataNow(false); return false;"
- >&rememberActions.clearHistory.label;</html:a>&rememberActions.middle.label;<html:a
- class="inline-link" href="#"
- onclick="gPrivacyPane.showCookies(); return false;"
- >&rememberActions.removeCookies.label;</html:a>&rememberActions.post.label;</description>
+ <deck id="historyPane">
+ <vbox align="center" id="historyRememberPane">
+ <hbox align="center" flex="1">
+ <spacer flex="1" class="indent"/>
+ <vbox flex="2">
+ <description>&rememberDescription.label;</description>
+ <separator/>
+ <description>&rememberActions.pre.label;<html:a
+ class="inline-link" href="#"
+ onclick="gPrivacyPane.clearPrivateDataNow(false); return false;"
+ >&rememberActions.clearHistory.label;</html:a>&rememberActions.middle.label;<html:a
+ class="inline-link" href="#"
+ onclick="gPrivacyPane.showCookies(); return false;"
+ >&rememberActions.removeCookies.label;</html:a>&rememberActions.post.label;</description>
+ </vbox>
+ <spacer flex="1" class="indent"/>
+ </hbox>
</vbox>
- <spacer flex="1" class="indent"/>
- </hbox>
- </vbox>
- <vbox align="center" id="historyDontRememberPane">
- <hbox align="center" flex="1">
- <spacer flex="1" class="indent"/>
- <vbox flex="2">
- <description>&dontrememberDescription.label;</description>
- <separator/>
- <description>&dontrememberActions.pre.label;<html:a
- class="inline-link" href="#"
- onclick="gPrivacyPane.clearPrivateDataNow(true); return false;"
- >&dontrememberActions.clearHistory.label;</html:a>&dontrememberActions.post.label;</description>
+ <vbox align="center" id="historyDontRememberPane">
+ <hbox align="center" flex="1">
+ <spacer flex="1" class="indent"/>
+ <vbox flex="2">
+ <description>&dontrememberDescription.label;</description>
+ <separator/>
+ <description>&dontrememberActions.pre.label;<html:a
+ class="inline-link" href="#"
+ onclick="gPrivacyPane.clearPrivateDataNow(true); return false;"
+ >&dontrememberActions.clearHistory.label;</html:a>&dontrememberActions.post.label;</description>
+ </vbox>
+ <spacer flex="1" class="indent"/>
+ </hbox>
</vbox>
- <spacer flex="1" class="indent"/>
- </hbox>
- </vbox>
- <vbox id="historyCustomPane">
- <separator class="thin"/>
- <checkbox id="privateBrowsingAutoStart" class="indent"
- label="&privateBrowsingPermanent2.label;"
- accesskey="&privateBrowsingPermanent2.accesskey;"
- preference="browser.privatebrowsing.autostart"
- oncommand="gPrivacyPane.updateAutostart()"/>
+ <vbox id="historyCustomPane">
+ <separator class="thin"/>
+ <checkbox id="privateBrowsingAutoStart" class="indent"
+ label="&privateBrowsingPermanent2.label;"
+ accesskey="&privateBrowsingPermanent2.accesskey;"
+ preference="browser.privatebrowsing.autostart"
+ oncommand="gPrivacyPane.updateAutostart()"/>
- <vbox class="indent">
- <vbox class="indent">
- <checkbox id="rememberHistory"
- label="&rememberHistory2.label;"
- accesskey="&rememberHistory2.accesskey;"
- preference="places.history.enabled"/>
- <checkbox id="rememberForms"
- label="&rememberSearchForm.label;"
- accesskey="&rememberSearchForm.accesskey;"
- preference="browser.formfill.enable"/>
+ <vbox class="indent">
+ <vbox class="indent">
+ <checkbox id="rememberHistory"
+ label="&rememberHistory2.label;"
+ accesskey="&rememberHistory2.accesskey;"
+ preference="places.history.enabled"/>
+ <checkbox id="rememberForms"
+ label="&rememberSearchForm.label;"
+ accesskey="&rememberSearchForm.accesskey;"
+ preference="browser.formfill.enable"/>
- <hbox id="cookiesBox">
- <checkbox id="acceptCookies" label="&acceptCookies.label;" flex="1"
- preference="network.cookie.cookieBehavior"
- accesskey="&acceptCookies.accesskey;"
- onsyncfrompreference="return gPrivacyPane.readAcceptCookies();"
- onsynctopreference="return gPrivacyPane.writeAcceptCookies();"/>
- <button id="cookieExceptions" oncommand="gPrivacyPane.showCookieExceptions();"
- label="&cookieExceptions.label;" accesskey="&cookieExceptions.accesskey;"
- preference="pref.privacy.disable_button.cookie_exceptions"/>
- </hbox>
+ <hbox id="cookiesBox">
+ <checkbox id="acceptCookies" label="&acceptCookies.label;" flex="1"
+ preference="network.cookie.cookieBehavior"
+ accesskey="&acceptCookies.accesskey;"
+ onsyncfrompreference="return gPrivacyPane.readAcceptCookies();"
+ onsynctopreference="return gPrivacyPane.writeAcceptCookies();"/>
+ <button id="cookieExceptions" oncommand="gPrivacyPane.showCookieExceptions();"
+ label="&cookieExceptions.label;" accesskey="&cookieExceptions.accesskey;"
+ preference="pref.privacy.disable_button.cookie_exceptions"/>
+ </hbox>
- <hbox id="acceptThirdPartyRow" class="indent">
- <hbox id="acceptThirdPartyBox" align="center">
- <label id="acceptThirdPartyLabel" control="acceptThirdPartyMenu"
- accesskey="&acceptThirdParty.pre.accesskey;">&acceptThirdParty.pre.label;</label>
- <menulist id="acceptThirdPartyMenu" preference="network.cookie.cookieBehavior"
- onsyncfrompreference="return gPrivacyPane.readAcceptThirdPartyCookies();"
- onsynctopreference="return gPrivacyPane.writeAcceptThirdPartyCookies();">
- <menupopup>
- <menuitem label="&acceptThirdParty.always.label;" value="always"/>
- <menuitem label="&acceptThirdParty.visited.label;" value="visited"/>
- <menuitem label="&acceptThirdParty.never.label;" value="never"/>
- </menupopup>
- </menulist>
- </hbox>
- </hbox>
+ <hbox id="acceptThirdPartyRow" class="indent">
+ <hbox id="acceptThirdPartyBox" align="center">
+ <label id="acceptThirdPartyLabel" control="acceptThirdPartyMenu"
+ accesskey="&acceptThirdParty.pre.accesskey;">&acceptThirdParty.pre.label;</label>
+ <menulist id="acceptThirdPartyMenu" preference="network.cookie.cookieBehavior"
+ onsyncfrompreference="return gPrivacyPane.readAcceptThirdPartyCookies();"
+ onsynctopreference="return gPrivacyPane.writeAcceptThirdPartyCookies();">
+ <menupopup>
+ <menuitem label="&acceptThirdParty.always.label;" value="always"/>
+ <menuitem label="&acceptThirdParty.visited.label;" value="visited"/>
+ <menuitem label="&acceptThirdParty.never.label;" value="never"/>
+ </menupopup>
+ </menulist>
+ </hbox>
+ </hbox>
- <hbox id="keepRow" class="indent">
- <hbox id="keepBox" align="center">
- <label id="keepUntil"
- control="keepCookiesUntil"
- accesskey="&keepUntil.accesskey;">&keepUntil.label;</label>
- <menulist id="keepCookiesUntil"
- preference="network.cookie.lifetimePolicy">
- <menupopup>
- <menuitem label="&expire.label;" value="0"/>
- <menuitem label="&close.label;" value="2"/>
- <menuitem label="&askEachTime.label;" value="1"/>
- </menupopup>
- </menulist>
- </hbox>
- <hbox flex="1"/>
- <button id="showCookiesButton"
- label="&showCookies.label;" accesskey="&showCookies.accesskey;"
- oncommand="gPrivacyPane.showCookies();"
- preference="pref.privacy.disable_button.view_cookies"/>
- </hbox>
+ <hbox id="keepRow" class="indent">
+ <hbox id="keepBox" align="center">
+ <label id="keepUntil"
+ control="keepCookiesUntil"
+ accesskey="&keepUntil.accesskey;">&keepUntil.label;</label>
+ <menulist id="keepCookiesUntil"
+ preference="network.cookie.lifetimePolicy">
+ <menupopup>
+ <menuitem label="&expire.label;" value="0"/>
+ <menuitem label="&close.label;" value="2"/>
+ <menuitem label="&askEachTime.label;" value="1"/>
+ </menupopup>
+ </menulist>
+ </hbox>
+ <hbox flex="1"/>
+ <button id="showCookiesButton"
+ label="&showCookies.label;" accesskey="&showCookies.accesskey;"
+ oncommand="gPrivacyPane.showCookies();"
+ preference="pref.privacy.disable_button.view_cookies"/>
+ </hbox>
- <hbox id="clearDataBox" align="center">
- <checkbox id="alwaysClear" flex="1"
- preference="privacy.sanitize.sanitizeOnShutdown"
- label="&clearOnClose.label;"
- accesskey="&clearOnClose.accesskey;"/>
- <button id="clearDataSettings" label="&clearOnCloseSettings.label;"
- accesskey="&clearOnCloseSettings.accesskey;"
- oncommand="gPrivacyPane.showClearPrivateDataSettings();"/>
- </hbox>
+ <hbox id="clearDataBox" align="center">
+ <checkbox id="alwaysClear" flex="1"
+ preference="privacy.sanitize.sanitizeOnShutdown"
+ label="&clearOnClose.label;"
+ accesskey="&clearOnClose.accesskey;"/>
+ <button id="clearDataSettings" label="&clearOnCloseSettings.label;"
+ accesskey="&clearOnCloseSettings.accesskey;"
+ oncommand="gPrivacyPane.showClearPrivateDataSettings();"/>
+ </hbox>
+ </vbox>
+ </vbox>
</vbox>
- </vbox>
- </vbox>
- </deck>
+ </deck>
- </groupbox>
+ </tabpanel>
+
+ <!-- Tracking -->
+ <tabpanel id="trackingPanel" orient="vertical">
- <!-- Location Bar -->
- <groupbox id="locationBarGroup">
- <caption label="&locationBar.label;"/>
+ <radiogroup id="doNotTrackSelection" orient="vertical"
+ preference="privacy.donottrackheader.value"
+ onsynctopreference="return gPrivacyPane.setTrackingPrefs()"
+ onsyncfrompreference="return gPrivacyPane.getTrackingPrefs()">
+ <radio id="dntnotrack" value="1" label="&dntTrackingNotOkay.label2;"
+ accesskey="&dntTrackingNotOkay.accesskey;" />
+ <radio id="dntdotrack" value="0" label="&dntTrackingOkay.label2;"
+ accesskey="&dntTrackingOkay.accesskey;" />
+ <radio id="dntnopref" value="-1" label="&dntTrackingNopref.label2;"
+ accesskey="&dntTrackingNopref.accesskey;" />
+ </radiogroup>
+ <label class="text-link" id="doNotTrackInfo"
+ href="https://www.mozilla.org/dnt"
+ value="&doNotTrackInfo.label;"/>
- <label id="locationBarSuggestionLabel">&locbar.suggest.label;</label>
+ </tabpanel>
+
+ <!-- Location Bar -->
+ <tabpanel id="locatioBarPanel" orient="vertical">
+
+ <label id="locationBarSuggestionLabel">&locbar.suggest.label;</label>
- <vbox id="tabPrefsBox" align="start" flex="1">
- <checkbox id="historySuggestion" label="&locbar.history.label;"
- onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
- accesskey="&locbar.history.accesskey;"
- preference="browser.urlbar.suggest.history"/>
- <checkbox id="bookmarkSuggestion" label="&locbar.bookmarks.label;"
- onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
- accesskey="&locbar.bookmarks.accesskey;"
- preference="browser.urlbar.suggest.bookmark"/>
- <checkbox id="openpageSuggestion" label="&locbar.openpage.label;"
- onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
- accesskey="&locbar.openpage.accesskey;"
- preference="browser.urlbar.suggest.openpage"/>
- </vbox>
- </groupbox>
+ <vbox id="tabPrefsBox" align="start" flex="1">
+ <checkbox id="historySuggestion" label="&locbar.history.label;"
+ onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
+ accesskey="&locbar.history.accesskey;"
+ preference="browser.urlbar.suggest.history"/>
+ <checkbox id="bookmarkSuggestion" label="&locbar.bookmarks.label;"
+ onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
+ accesskey="&locbar.bookmarks.accesskey;"
+ preference="browser.urlbar.suggest.bookmark"/>
+ <checkbox id="openpageSuggestion" label="&locbar.openpage.label;"
+ onsyncfrompreference="return gPrivacyPane.writeSuggestionPref();"
+ accesskey="&locbar.openpage.accesskey;"
+ preference="browser.urlbar.suggest.openpage"/>
+ </vbox>
+
+ </tabpanel>
+ </tabpanels>
+ </tabbox>
</prefpane>
</overlay>