mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 14:25:52 +00:00
7b4b3f1ba2
This commit removes most of the cache section in about:preferences, following the UX concept from bug 1421690. This is in the general interest of de-cluttering privacy preferences and giving users controls that are easier to understand and use. The cache size is instead shown in the site data section and the cache can be cleared using the "Clear Data" button in that same section. MozReview-Commit-ID: 7PDTDgllFFI --HG-- extra : rebase_source : 98eea84efb2b90068bf0d106321d8af64afd1f77
82 lines
2.9 KiB
JavaScript
82 lines
2.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
|
|
ChromeUtils.import("resource://gre/modules/DownloadUtils.jsm");
|
|
ChromeUtils.import("resource:///modules/SiteDataManager.jsm");
|
|
|
|
var gClearSiteDataDialog = {
|
|
_clearSiteDataCheckbox: null,
|
|
_clearCacheCheckbox: null,
|
|
_clearButton: null,
|
|
|
|
init() {
|
|
this._bundle = Services.strings
|
|
.createBundle("chrome://browser/locale/preferences/clearSiteData.properties");
|
|
|
|
SiteDataManager.getTotalUsage().then(bytes => {
|
|
// Size is an array of amount and unit, e.g. [20, "MB"].
|
|
let size = DownloadUtils.convertByteUnits(bytes);
|
|
document.getElementById("clearSiteDataLabel").value =
|
|
this._bundle.formatStringFromName("clearSiteDataWithEstimates.label", size, 2);
|
|
});
|
|
SiteDataManager.getCacheSize().then(bytes => {
|
|
// Size is an array of amount and unit, e.g. [20, "MB"].
|
|
let size = DownloadUtils.convertByteUnits(bytes);
|
|
document.getElementById("clearCacheLabel").value =
|
|
this._bundle.formatStringFromName("clearCacheWithEstimates.label", size, 2);
|
|
});
|
|
|
|
this._clearButton = document.getElementById("clearButton");
|
|
this._cancelButton = document.getElementById("cancelButton");
|
|
this._clearSiteDataCheckbox = document.getElementById("clearSiteData");
|
|
this._clearCacheCheckbox = document.getElementById("clearCache");
|
|
|
|
window.addEventListener("keypress", this.onWindowKeyPress);
|
|
|
|
this._cancelButton.addEventListener("command", window.close);
|
|
this._clearButton.addEventListener("command", () => this.onClear());
|
|
|
|
this._clearSiteDataCheckbox.addEventListener("command", e => this.onCheckboxCommand(e));
|
|
this._clearCacheCheckbox.addEventListener("command", e => this.onCheckboxCommand(e));
|
|
},
|
|
|
|
onWindowKeyPress(event) {
|
|
if (event.keyCode == KeyEvent.DOM_VK_ESCAPE)
|
|
window.close();
|
|
},
|
|
|
|
onCheckboxCommand(event) {
|
|
this._clearButton.disabled =
|
|
!(this._clearSiteDataCheckbox.checked || this._clearCacheCheckbox.checked);
|
|
},
|
|
|
|
onClear() {
|
|
let allowed = true;
|
|
|
|
if (this._clearCacheCheckbox.checked && allowed) {
|
|
SiteDataManager.removeCache();
|
|
// If we're not clearing site data, we need to tell the
|
|
// SiteDataManager to signal that it's updating.
|
|
if (!this._clearSiteDataCheckbox.checked) {
|
|
SiteDataManager.updateSites();
|
|
}
|
|
}
|
|
|
|
if (this._clearSiteDataCheckbox.checked) {
|
|
allowed = SiteDataManager.promptSiteDataRemoval(window);
|
|
if (allowed) {
|
|
SiteDataManager.removeSiteData();
|
|
}
|
|
}
|
|
|
|
if (allowed) {
|
|
window.close();
|
|
}
|
|
},
|
|
};
|
|
|
|
window.addEventListener("load", () => gClearSiteDataDialog.init());
|