[tor-commits] [torbutton/master] Bug 16200. Wipe cache on New Identity for TBB/FFESR38
mikeperry at torproject.org
mikeperry at torproject.org
Thu Jun 25 02:39:39 UTC 2015
commit d37746c1077bf65666c13fed761afba385c3bb07
Author: Arthur Edelstein <arthuredelstein at gmail.com>
Date: Mon Jun 8 00:19:25 2015 -0700
Bug 16200. Wipe cache on New Identity for TBB/FFESR38
(This updates and consolidates offline cache code as well.)
---
src/chrome/content/torbutton.js | 30 ++++++++++++++----------------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 3454613..5f4ba5c 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -19,6 +19,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "ConsoleServiceListener",
XPCOMUtils.defineLazyModuleGetter(this, "WebConsoleUtils",
"resource://gre/modules/devtools/WebConsoleUtils.jsm");
+let { LoadContextInfo } = Cu.import('resource://gre/modules/LoadContextInfo.jsm');
+
const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion";
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
const k_tb_last_update_check_pref = "extensions.torbutton.lastUpdateCheck";
@@ -1785,30 +1787,26 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing Offline Cache");
- var cache = Components.classes["@mozilla.org/network/cache-service;1"].
- getService(Components.interfaces.nsICacheService);
-
try {
- cache.evictEntries(Ci.nsICache.STORE_OFFLINE);
+ for (let contextInfo of [LoadContextInfo.default, LoadContextInfo.private]) {
+ let appCacheStorage = Services.cache2.appCacheStorage(contextInfo, null);
+ // The following call (asyncEvictStorage) is actually synchronous, either
+ // if we have pref "browser.cache.use_new_backend" -> 1 or
+ // "browser.cache.use_new_backend_temp" -> true,
+ // then we are using the new cache (cache2) which operates synchronously.
+ // If we are using the old cache, then the tor-browser.git patch for
+ // #5715 also makes this synchronous. So we pass a null callback.
+ appCacheStorage.asyncEvictStorage(null);
+ }
} catch(e) {
torbutton_log(5, "Exception on cache clearing: "+e);
window.alert("Torbutton: Unexpected error during offline cache clearing: "+e);
}
- torbutton_log(3, "New Identity: Clearing LocalStorage");
-
- try {
- Components.utils.import("resource:///modules/offlineAppCache.jsm");
- OfflineAppCacheHelper.clear();
- } catch(e) {
- torbutton_log(5, "Exception on localStorage clearing: "+e);
- window.alert("Torbutton: Unexpected error during localStorage clearing: "+e);
- }
-
- torbutton_log(3, "New Identity: Clearing Disk Cache");
+ torbutton_log(3, "New Identity: Clearing Disk and Memory Caches");
try {
- cache.evictEntries(0);
+ Services.cache2.clear();
} catch(e) {
torbutton_log(5, "Exception on cache clearing: "+e);
window.alert("Torbutton: Unexpected error during cache clearing: "+e);
More information about the tor-commits
mailing list