forked from mirrors/gecko-dev
		
	 7b4b3f1ba2
			
		
	
	
		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
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 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());
 |