Bug 1443644 - Add UI explaining why the "Keep until..." menu is disabled in permanent private browsing.
MozReview-Commit-ID: 167xaVQyQHA
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -833,29 +833,36 @@ var gPrivacyPane = {
* Returns "0" if cookies are accepted and "2" if they are entirely disabled.
*/
readAcceptCookies() {
let pref = Preferences.get("network.cookie.cookieBehavior");
let acceptThirdPartyLabel = document.getElementById("acceptThirdPartyLabel");
let acceptThirdPartyMenu = document.getElementById("acceptThirdPartyMenu");
let keepUntilLabel = document.getElementById("keepUntil");
let keepUntilMenu = document.getElementById("keepCookiesUntil");
+ let keepUntilMenuPBNote = document.getElementById("keepUntilPrivateBrowsingNote");
// enable the rest of the UI for anything other than "disable all cookies"
let acceptCookies = (pref.value != 2);
let cookieBehaviorLocked = Services.prefs.prefIsLocked("network.cookie.cookieBehavior");
const acceptThirdPartyControlsDisabled = !acceptCookies || cookieBehaviorLocked;
acceptThirdPartyLabel.disabled = acceptThirdPartyMenu.disabled = acceptThirdPartyControlsDisabled;
let privateBrowsing = Preferences.get("browser.privatebrowsing.autostart").value;
let cookieExpirationLocked = Services.prefs.prefIsLocked("network.cookie.lifetimePolicy");
const keepUntilControlsDisabled = privateBrowsing || !acceptCookies || cookieExpirationLocked;
keepUntilLabel.disabled = keepUntilMenu.disabled = keepUntilControlsDisabled;
+ if (privateBrowsing) {
+ keepUntilMenuPBNote.removeAttribute("hidden");
+ } else {
+ keepUntilMenuPBNote.setAttribute("hidden", "true");
+ }
+
// Our top-level setting is a radiogroup that only sets "enable all"
// and "disable all", so convert the pref value accordingly.
return acceptCookies ? "0" : "2";
},
/**
* Updates the "accept third party cookies" menu based on whether the
* "accept cookies" or "block cookies" radio buttons are selected.
--- a/browser/components/preferences/in-content/privacy.xul
+++ b/browser/components/preferences/in-content/privacy.xul
@@ -174,34 +174,38 @@
preference="network.cookie.cookieBehavior"
onsyncfrompreference="return gPrivacyPane.readAcceptCookies();"
onsynctopreference="return gPrivacyPane.writeAcceptCookies();">
<hbox id="cookiesBox">
<radio value="0"
data-l10n-id="sitedata-accept-cookies-option"
flex="1" />
</hbox>
- <hbox id="keepRow"
- class="indent"
- align="center">
- <label id="keepUntil"
- control="keepCookiesUntil"
- data-l10n-id="sitedata-keep-until"/>
- <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
- <hbox>
- <menulist id="keepCookiesUntil"
- onsyncfrompreference="return gPrivacyPane.readKeepCookiesUntil();"
- preference="network.cookie.lifetimePolicy">
- <menupopup>
- <menuitem data-l10n-id="sitedata-keep-until-expire" value="0"/>
- <menuitem data-l10n-id="sitedata-keep-until-closed" value="2"/>
- </menupopup>
- </menulist>
+ <vbox id="keepRow"
+ class="indent">
+ <hbox align="center">
+ <label id="keepUntil"
+ control="keepCookiesUntil"
+ data-l10n-id="sitedata-keep-until"/>
+ <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
+ <hbox>
+ <menulist id="keepCookiesUntil"
+ onsyncfrompreference="return gPrivacyPane.readKeepCookiesUntil();"
+ preference="network.cookie.lifetimePolicy">
+ <menupopup>
+ <menuitem data-l10n-id="sitedata-keep-until-expire" value="0"/>
+ <menuitem data-l10n-id="sitedata-keep-until-closed" value="2"/>
+ </menupopup>
+ </menulist>
+ </hbox>
</hbox>
- </hbox>
+ <description id="keepUntilPrivateBrowsingNote"
+ hidden="true"
+ data-l10n-id="sitedata-keep-until-private-browsing"/>
+ </vbox>
<hbox id="acceptThirdPartyRow"
class="indent"
align="center">
<label id="acceptThirdPartyLabel" control="acceptThirdPartyMenu"
data-l10n-id="sitedata-accept-third-party-desc"/>
<!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
<hbox>
<menulist id="acceptThirdPartyMenu" preference="network.cookie.cookieBehavior"
--- a/browser/locales/en-US/browser/preferences/preferences.ftl
+++ b/browser/locales/en-US/browser/preferences/preferences.ftl
@@ -658,16 +658,18 @@ sitedata-accept-cookies-option =
sitedata-block-cookies-option =
.label = Block cookies and site data (may cause websites to break)
.accesskey = B
sitedata-keep-until = Keep until
.accesskey = u
+sitedata-keep-until-private-browsing = In permanent private browsing mode, cookies and site data will always be cleared when { -brand-short-name } is closed.
+
sitedata-keep-until-expire =
.label = They expire
sitedata-keep-until-closed =
.label = { -brand-short-name } is closed
sitedata-accept-third-party-desc = Accept third-party cookies and site data
.accesskey = y