Bug 1312349 - Hide the section of Offline Web Content and User Data in about:preferences
MozReview-Commit-ID: 6K3PigI3wEf
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -665,16 +665,21 @@ pref("plugin.defaultXpi.state", 2);
pref("plugin.state.flash", 2);
pref("plugin.state.java", 1);
#ifdef XP_WIN
pref("browser.preferences.instantApply", false);
#else
pref("browser.preferences.instantApply", true);
#endif
+// Once the Storage Management is completed.
+// (The Storage Management-related prefs are browser.storageManager.* )
+// The Offline(Appcache) Group section in about:preferences will be hidden.
+// And the task to clear appcache will be done by Storage Management.
+pref("browser.preferences.offlineGroup.enabled", true);
pref("browser.download.show_plugins_in_list", true);
pref("browser.download.hide_plugins_without_extensions", true);
// Backspace and Shift+Backspace behavior
// 0 goes Back/Forward
// 1 act like PgUp/PgDown
// 2 and other values, nothing
--- a/browser/components/preferences/in-content-old/advanced.js
+++ b/browser/components/preferences/in-content-old/advanced.js
@@ -37,28 +37,26 @@ var gAdvancedPane = {
let onUnload = function() {
window.removeEventListener("unload", onUnload);
Services.prefs.removeObserver("app.update.", this);
}.bind(this);
window.addEventListener("unload", onUnload);
Services.prefs.addObserver("app.update.", this, false);
this.updateReadPrefs();
}
- this.updateOfflineApps();
if (AppConstants.MOZ_CRASHREPORTER) {
this.initSubmitCrashes();
}
this.initTelemetry();
if (AppConstants.MOZ_TELEMETRY_REPORTING) {
this.initSubmitHealthReport();
}
this.updateOnScreenKeyboardVisibility();
this.updateCacheSizeInputField();
this.updateActualCacheSize();
- this.updateActualAppCacheSize();
if (Services.prefs.getBoolPref("browser.storageManager.enabled")) {
Services.obs.addObserver(this, "sitedatamanager:sites-updated", false);
let unload = () => {
window.removeEventListener("unload", unload);
Services.obs.removeObserver(this, "sitedatamanager:sites-updated");
};
window.addEventListener("unload", unload);
@@ -80,40 +78,47 @@ var gAdvancedPane = {
setEventListener("submitHealthReportBox", "command",
gAdvancedPane.updateSubmitHealthReport);
}
setEventListener("connectionSettings", "command",
gAdvancedPane.showConnections);
setEventListener("clearCacheButton", "command",
gAdvancedPane.clearCache);
- setEventListener("clearOfflineAppCacheButton", "command",
- gAdvancedPane.clearOfflineAppCache);
- setEventListener("offlineNotifyExceptions", "command",
- gAdvancedPane.showOfflineExceptions);
- setEventListener("offlineAppsList", "select",
- gAdvancedPane.offlineAppSelected);
- let bundlePrefs = document.getElementById("bundlePreferences");
- document.getElementById("offlineAppsList")
- .style.height = bundlePrefs.getString("offlineAppsList.height");
- setEventListener("offlineAppsListRemove", "command",
- gAdvancedPane.removeOfflineApp);
if (AppConstants.MOZ_UPDATER) {
setEventListener("updateRadioGroup", "command",
gAdvancedPane.updateWritePrefs);
setEventListener("showUpdateHistory", "command",
gAdvancedPane.showUpdates);
}
setEventListener("viewCertificatesButton", "command",
gAdvancedPane.showCertificates);
setEventListener("viewSecurityDevicesButton", "command",
gAdvancedPane.showSecurityDevices);
setEventListener("cacheSize", "change",
gAdvancedPane.updateCacheSizePref);
+ if (Services.prefs.getBoolPref("browser.preferences.offlineGroup.enabled")) {
+ this.updateOfflineApps();
+ this.updateActualAppCacheSize();
+ setEventListener("offlineNotifyExceptions", "command",
+ gAdvancedPane.showOfflineExceptions);
+ setEventListener("offlineAppsList", "select",
+ gAdvancedPane.offlineAppSelected);
+ setEventListener("offlineAppsListRemove", "command",
+ gAdvancedPane.removeOfflineApp);
+ setEventListener("clearOfflineAppCacheButton", "command",
+ gAdvancedPane.clearOfflineAppCache);
+ let bundlePrefs = document.getElementById("bundlePreferences");
+ document.getElementById("offlineAppsList")
+ .style.height = bundlePrefs.getString("offlineAppsList.height");
+ let offlineGroup = document.getElementById("offlineGroup");
+ offlineGroup.hidden = false;
+ }
+
if (AppConstants.MOZ_WIDGET_GTK) {
// GTK tabbox' allow the scroll wheel to change the selected tab,
// but we don't want this behavior for the in-content preferences.
let tabsElement = document.getElementById("tabsElement");
tabsElement.addEventListener("DOMMouseScroll", event => {
event.stopPropagation();
}, true);
}
@@ -393,42 +398,16 @@ var gAdvancedPane = {
try {
var cacheService =
Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
.getService(Components.interfaces.nsICacheStorageService);
cacheService.asyncGetDiskConsumption(this.observer);
} catch (e) {}
},
- // Retrieves the amount of space currently used by offline cache
- updateActualAppCacheSize() {
- var visitor = {
- onCacheStorageInfo(aEntryCount, aConsumption, aCapacity, aDiskDirectory) {
- var actualSizeLabel = document.getElementById("actualAppCacheSize");
- var sizeStrings = DownloadUtils.convertByteUnits(aConsumption);
- var prefStrBundle = document.getElementById("bundlePreferences");
- // The XBL binding for the string bundle may have been destroyed if
- // the page was closed before this callback was executed.
- if (!prefStrBundle.getFormattedString) {
- return;
- }
- var sizeStr = prefStrBundle.getFormattedString("actualAppCacheSize", sizeStrings);
- actualSizeLabel.value = sizeStr;
- }
- };
-
- try {
- var cacheService =
- Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
- .getService(Components.interfaces.nsICacheStorageService);
- var storage = cacheService.appCacheStorage(LoadContextInfo.default, null);
- storage.asyncVisitStorage(visitor, false);
- } catch (e) {}
- },
-
updateCacheSizeUI(smartSizeEnabled) {
document.getElementById("useCacheBefore").disabled = smartSizeEnabled;
document.getElementById("cacheSize").disabled = smartSizeEnabled;
document.getElementById("useCacheAfter").disabled = smartSizeEnabled;
},
readSmartSizeEnabled() {
// The smart_size.enabled preference element is inverted="true", so its
@@ -470,27 +449,16 @@ var gAdvancedPane = {
try {
var cache = Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
.getService(Components.interfaces.nsICacheStorageService);
cache.clear();
} catch (ex) {}
this.updateActualCacheSize();
},
- /**
- * Clears the application cache.
- */
- clearOfflineAppCache() {
- Components.utils.import("resource:///modules/offlineAppCache.jsm");
- OfflineAppCacheHelper.clear();
-
- this.updateActualAppCacheSize();
- this.updateOfflineApps();
- },
-
clearSiteData() {
let flags =
Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1 +
Services.prompt.BUTTON_POS_0_DEFAULT;
let prefStrBundle = document.getElementById("bundlePreferences");
let title = prefStrBundle.getString("clearSiteDataPromptTitle");
let text = prefStrBundle.getString("clearSiteDataPromptText");
@@ -498,16 +466,55 @@ var gAdvancedPane = {
let result = Services.prompt.confirmEx(
window, title, text, flags, btn0Label, null, null, null, {});
if (result == 0) {
SiteDataManager.removeAll();
}
},
+ // Methods for Offline Apps(Appcache)
+
+ /**
+ * Clears the application cache.
+ */
+ clearOfflineAppCache() {
+ Components.utils.import("resource:///modules/offlineAppCache.jsm");
+ OfflineAppCacheHelper.clear();
+
+ this.updateActualAppCacheSize();
+ this.updateOfflineApps();
+ },
+
+ // Retrieves the amount of space currently used by offline cache
+ updateActualAppCacheSize() {
+ var visitor = {
+ onCacheStorageInfo(aEntryCount, aConsumption, aCapacity, aDiskDirectory) {
+ var actualSizeLabel = document.getElementById("actualAppCacheSize");
+ var sizeStrings = DownloadUtils.convertByteUnits(aConsumption);
+ var prefStrBundle = document.getElementById("bundlePreferences");
+ // The XBL binding for the string bundle may have been destroyed if
+ // the page was closed before this callback was executed.
+ if (!prefStrBundle.getFormattedString) {
+ return;
+ }
+ var sizeStr = prefStrBundle.getFormattedString("actualAppCacheSize", sizeStrings);
+ actualSizeLabel.value = sizeStr;
+ }
+ };
+
+ try {
+ var cacheService =
+ Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
+ .getService(Components.interfaces.nsICacheStorageService);
+ var storage = cacheService.appCacheStorage(LoadContextInfo.default, null);
+ storage.asyncVisitStorage(visitor, false);
+ } catch (e) {}
+ },
+
readOfflineNotify() {
var pref = document.getElementById("browser.offline-apps.notify");
var button = document.getElementById("offlineNotifyExceptions");
button.disabled = !pref.value;
return pref.value;
},
showOfflineExceptions() {
@@ -641,16 +648,17 @@ var gAdvancedPane = {
} catch (e) {}
pm.removePermission(perm);
}
list.removeChild(item);
gAdvancedPane.offlineAppSelected();
this.updateActualAppCacheSize();
},
+ // Methods for Offline Apps(Appcache) end
// UPDATE TAB
/*
* Preferences:
*
* app.update.enabled
* - true if updates to the application are enabled, false otherwise
--- a/browser/components/preferences/in-content-old/advanced.xul
+++ b/browser/components/preferences/in-content-old/advanced.xul
@@ -286,17 +286,17 @@
</label>
<textbox id="cacheSize" type="number" size="4" max="1024"
aria-labelledby="useCacheBefore cacheSize useCacheAfter"/>
<label id="useCacheAfter" flex="1">&limitCacheSizeAfter.label;</label>
</hbox>
</groupbox>
<!-- Offline apps -->
- <groupbox id="offlineGroup">
+ <groupbox id="offlineGroup" hidden="true">
<caption><label>&offlineStorage2.label;</label></caption>
<hbox align="center">
<label id="actualAppCacheSize" flex="1"/>
<button id="clearOfflineAppCacheButton" icon="clear"
label="&clearOfflineAppCacheNow.label;" accesskey="&clearOfflineAppCacheNow.accesskey;"/>
</hbox>
<hbox align="center">
--- a/browser/components/preferences/in-content/advanced.js
+++ b/browser/components/preferences/in-content/advanced.js
@@ -37,28 +37,26 @@ var gAdvancedPane = {
let onUnload = function() {
window.removeEventListener("unload", onUnload);
Services.prefs.removeObserver("app.update.", this);
}.bind(this);
window.addEventListener("unload", onUnload);
Services.prefs.addObserver("app.update.", this, false);
this.updateReadPrefs();
}
- this.updateOfflineApps();
if (AppConstants.MOZ_CRASHREPORTER) {
this.initSubmitCrashes();
}
this.initTelemetry();
if (AppConstants.MOZ_TELEMETRY_REPORTING) {
this.initSubmitHealthReport();
}
this.updateOnScreenKeyboardVisibility();
this.updateCacheSizeInputField();
this.updateActualCacheSize();
- this.updateActualAppCacheSize();
if (Services.prefs.getBoolPref("browser.storageManager.enabled")) {
Services.obs.addObserver(this, "sitedatamanager:sites-updated", false);
let unload = () => {
window.removeEventListener("unload", unload);
Services.obs.removeObserver(this, "sitedatamanager:sites-updated");
};
window.addEventListener("unload", unload);
@@ -80,40 +78,47 @@ var gAdvancedPane = {
setEventListener("submitHealthReportBox", "command",
gAdvancedPane.updateSubmitHealthReport);
}
setEventListener("connectionSettings", "command",
gAdvancedPane.showConnections);
setEventListener("clearCacheButton", "command",
gAdvancedPane.clearCache);
- setEventListener("clearOfflineAppCacheButton", "command",
- gAdvancedPane.clearOfflineAppCache);
- setEventListener("offlineNotifyExceptions", "command",
- gAdvancedPane.showOfflineExceptions);
- setEventListener("offlineAppsList", "select",
- gAdvancedPane.offlineAppSelected);
- let bundlePrefs = document.getElementById("bundlePreferences");
- document.getElementById("offlineAppsList")
- .style.height = bundlePrefs.getString("offlineAppsList.height");
- setEventListener("offlineAppsListRemove", "command",
- gAdvancedPane.removeOfflineApp);
if (AppConstants.MOZ_UPDATER) {
setEventListener("updateRadioGroup", "command",
gAdvancedPane.updateWritePrefs);
setEventListener("showUpdateHistory", "command",
gAdvancedPane.showUpdates);
}
setEventListener("viewCertificatesButton", "command",
gAdvancedPane.showCertificates);
setEventListener("viewSecurityDevicesButton", "command",
gAdvancedPane.showSecurityDevices);
setEventListener("cacheSize", "change",
gAdvancedPane.updateCacheSizePref);
+ if (Services.prefs.getBoolPref("browser.preferences.offlineGroup.enabled")) {
+ this.updateOfflineApps();
+ this.updateActualAppCacheSize();
+ setEventListener("offlineNotifyExceptions", "command",
+ gAdvancedPane.showOfflineExceptions);
+ setEventListener("offlineAppsList", "select",
+ gAdvancedPane.offlineAppSelected);
+ setEventListener("offlineAppsListRemove", "command",
+ gAdvancedPane.removeOfflineApp);
+ setEventListener("clearOfflineAppCacheButton", "command",
+ gAdvancedPane.clearOfflineAppCache);
+ let bundlePrefs = document.getElementById("bundlePreferences");
+ document.getElementById("offlineAppsList")
+ .style.height = bundlePrefs.getString("offlineAppsList.height");
+ let offlineGroup = document.getElementById("offlineGroup");
+ offlineGroup.hidden = false;
+ }
+
if (AppConstants.MOZ_WIDGET_GTK) {
// GTK tabbox' allow the scroll wheel to change the selected tab,
// but we don't want this behavior for the in-content preferences.
let tabsElement = document.getElementById("tabsElement");
tabsElement.addEventListener("DOMMouseScroll", event => {
event.stopPropagation();
}, true);
}
@@ -393,42 +398,16 @@ var gAdvancedPane = {
try {
var cacheService =
Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
.getService(Components.interfaces.nsICacheStorageService);
cacheService.asyncGetDiskConsumption(this.observer);
} catch (e) {}
},
- // Retrieves the amount of space currently used by offline cache
- updateActualAppCacheSize() {
- var visitor = {
- onCacheStorageInfo(aEntryCount, aConsumption, aCapacity, aDiskDirectory) {
- var actualSizeLabel = document.getElementById("actualAppCacheSize");
- var sizeStrings = DownloadUtils.convertByteUnits(aConsumption);
- var prefStrBundle = document.getElementById("bundlePreferences");
- // The XBL binding for the string bundle may have been destroyed if
- // the page was closed before this callback was executed.
- if (!prefStrBundle.getFormattedString) {
- return;
- }
- var sizeStr = prefStrBundle.getFormattedString("actualAppCacheSize", sizeStrings);
- actualSizeLabel.value = sizeStr;
- }
- };
-
- try {
- var cacheService =
- Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
- .getService(Components.interfaces.nsICacheStorageService);
- var storage = cacheService.appCacheStorage(LoadContextInfo.default, null);
- storage.asyncVisitStorage(visitor, false);
- } catch (e) {}
- },
-
updateCacheSizeUI(smartSizeEnabled) {
document.getElementById("useCacheBefore").disabled = smartSizeEnabled;
document.getElementById("cacheSize").disabled = smartSizeEnabled;
document.getElementById("useCacheAfter").disabled = smartSizeEnabled;
},
readSmartSizeEnabled() {
// The smart_size.enabled preference element is inverted="true", so its
@@ -470,27 +449,16 @@ var gAdvancedPane = {
try {
var cache = Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
.getService(Components.interfaces.nsICacheStorageService);
cache.clear();
} catch (ex) {}
this.updateActualCacheSize();
},
- /**
- * Clears the application cache.
- */
- clearOfflineAppCache() {
- Components.utils.import("resource:///modules/offlineAppCache.jsm");
- OfflineAppCacheHelper.clear();
-
- this.updateActualAppCacheSize();
- this.updateOfflineApps();
- },
-
clearSiteData() {
let flags =
Services.prompt.BUTTON_TITLE_IS_STRING * Services.prompt.BUTTON_POS_0 +
Services.prompt.BUTTON_TITLE_CANCEL * Services.prompt.BUTTON_POS_1 +
Services.prompt.BUTTON_POS_0_DEFAULT;
let prefStrBundle = document.getElementById("bundlePreferences");
let title = prefStrBundle.getString("clearSiteDataPromptTitle");
let text = prefStrBundle.getString("clearSiteDataPromptText");
@@ -498,16 +466,55 @@ var gAdvancedPane = {
let result = Services.prompt.confirmEx(
window, title, text, flags, btn0Label, null, null, null, {});
if (result == 0) {
SiteDataManager.removeAll();
}
},
+ // Methods for Offline Apps(Appcache)
+
+ /**
+ * Clears the application cache.
+ */
+ clearOfflineAppCache() {
+ Components.utils.import("resource:///modules/offlineAppCache.jsm");
+ OfflineAppCacheHelper.clear();
+
+ this.updateActualAppCacheSize();
+ this.updateOfflineApps();
+ },
+
+ // Retrieves the amount of space currently used by offline cache
+ updateActualAppCacheSize() {
+ var visitor = {
+ onCacheStorageInfo(aEntryCount, aConsumption, aCapacity, aDiskDirectory) {
+ var actualSizeLabel = document.getElementById("actualAppCacheSize");
+ var sizeStrings = DownloadUtils.convertByteUnits(aConsumption);
+ var prefStrBundle = document.getElementById("bundlePreferences");
+ // The XBL binding for the string bundle may have been destroyed if
+ // the page was closed before this callback was executed.
+ if (!prefStrBundle.getFormattedString) {
+ return;
+ }
+ var sizeStr = prefStrBundle.getFormattedString("actualAppCacheSize", sizeStrings);
+ actualSizeLabel.value = sizeStr;
+ }
+ };
+
+ try {
+ var cacheService =
+ Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
+ .getService(Components.interfaces.nsICacheStorageService);
+ var storage = cacheService.appCacheStorage(LoadContextInfo.default, null);
+ storage.asyncVisitStorage(visitor, false);
+ } catch (e) {}
+ },
+
readOfflineNotify() {
var pref = document.getElementById("browser.offline-apps.notify");
var button = document.getElementById("offlineNotifyExceptions");
button.disabled = !pref.value;
return pref.value;
},
showOfflineExceptions() {
@@ -641,16 +648,17 @@ var gAdvancedPane = {
} catch (e) {}
pm.removePermission(perm);
}
list.removeChild(item);
gAdvancedPane.offlineAppSelected();
this.updateActualAppCacheSize();
},
+ // Methods for Offline Apps(Appcache) end
// UPDATE TAB
/*
* Preferences:
*
* app.update.enabled
* - true if updates to the application are enabled, false otherwise
--- a/browser/components/preferences/in-content/advanced.xul
+++ b/browser/components/preferences/in-content/advanced.xul
@@ -286,17 +286,17 @@
</label>
<textbox id="cacheSize" type="number" size="4" max="1024"
aria-labelledby="useCacheBefore cacheSize useCacheAfter"/>
<label id="useCacheAfter" flex="1">&limitCacheSizeAfter.label;</label>
</hbox>
</groupbox>
<!-- Offline apps -->
- <groupbox id="offlineGroup">
+ <groupbox id="offlineGroup" hidden="true">
<caption><label>&offlineStorage2.label;</label></caption>
<hbox align="center">
<label id="actualAppCacheSize" flex="1"/>
<button id="clearOfflineAppCacheButton" icon="clear"
label="&clearOfflineAppCacheNow.label;" accesskey="&clearOfflineAppCacheNow.accesskey;"/>
</hbox>
<hbox align="center">