Thu, 15 Jan 2015 21:13:52 +0100
Remove forgotten relic of ABI crash risk averse overloaded method change.
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 // Check about:cache after private browsing
6 // This test covers MozTrap test 6047
7 // bug 880621
9 let {LoadContextInfo} = Cu.import("resource://gre/modules/LoadContextInfo.jsm", null);
11 let tmp = {};
13 Cc["@mozilla.org/moz/jssubscript-loader;1"]
14 .getService(Ci.mozIJSSubScriptLoader)
15 .loadSubScript("chrome://browser/content/sanitize.js", tmp);
17 let Sanitizer = tmp.Sanitizer;
19 function test() {
21 waitForExplicitFinish();
23 sanitizeCache();
25 let nrEntriesR1 = getStorageEntryCount("regular", function(nrEntriesR1) {
26 is(nrEntriesR1, 0, "Disk cache reports 0KB and has no entries");
28 get_cache_for_private_window();
29 });
30 }
32 function cleanup() {
33 let prefs = Services.prefs.getBranch("privacy.cpd.");
35 prefs.clearUserPref("history");
36 prefs.clearUserPref("downloads");
37 prefs.clearUserPref("cache");
38 prefs.clearUserPref("cookies");
39 prefs.clearUserPref("formdata");
40 prefs.clearUserPref("offlineApps");
41 prefs.clearUserPref("passwords");
42 prefs.clearUserPref("sessions");
43 prefs.clearUserPref("siteSettings");
44 }
46 function sanitizeCache() {
48 let s = new Sanitizer();
49 s.ignoreTimespan = false;
50 s.prefDomain = "privacy.cpd.";
52 let prefs = gPrefService.getBranch(s.prefDomain);
53 prefs.setBoolPref("history", false);
54 prefs.setBoolPref("downloads", false);
55 prefs.setBoolPref("cache", true);
56 prefs.setBoolPref("cookies", false);
57 prefs.setBoolPref("formdata", false);
58 prefs.setBoolPref("offlineApps", false);
59 prefs.setBoolPref("passwords", false);
60 prefs.setBoolPref("sessions", false);
61 prefs.setBoolPref("siteSettings", false);
63 s.sanitize();
64 }
66 function get_cache_service() {
67 return Components.classes["@mozilla.org/netwerk/cache-storage-service;1"]
68 .getService(Components.interfaces.nsICacheStorageService);
69 }
71 function getStorageEntryCount(device, goon) {
72 var cs = get_cache_service();
74 var storage;
75 switch (device) {
76 case "private":
77 storage = cs.diskCacheStorage(LoadContextInfo.private, false);
78 break;
79 case "regular":
80 storage = cs.diskCacheStorage(LoadContextInfo.default, false);
81 break;
82 default:
83 throw "Unknown device " + device + " at getStorageEntryCount";
84 }
86 var visitor = {
87 entryCount: 0,
88 onCacheStorageInfo: function (aEntryCount, aConsumption) {
89 },
90 onCacheEntryInfo: function(entry)
91 {
92 info(device + ":" + entry.key + "\n");
93 if (entry.key.match(/^http:\/\/example.org\//))
94 ++this.entryCount;
95 },
96 onCacheEntryVisitCompleted: function()
97 {
98 goon(this.entryCount);
99 }
100 };
102 storage.asyncVisitStorage(visitor, true);
103 }
105 function get_cache_for_private_window () {
106 let win = whenNewWindowLoaded({private: true}, function() {
108 executeSoon(function() {
110 ok(true, "The private window got loaded");
112 let tab = win.gBrowser.addTab("http://example.org");
113 win.gBrowser.selectedTab = tab;
114 let newTabBrowser = win.gBrowser.getBrowserForTab(tab);
116 newTabBrowser.addEventListener("load", function eventHandler() {
117 newTabBrowser.removeEventListener("load", eventHandler, true);
119 executeSoon(function() {
121 getStorageEntryCount("private", function(nrEntriesP) {
122 ok(nrEntriesP >= 1, "Memory cache reports some entries from example.org domain");
124 getStorageEntryCount("regular", function(nrEntriesR2) {
125 is(nrEntriesR2, 0, "Disk cache reports 0KB and has no entries");
127 cleanup();
129 win.close();
130 finish();
131 });
132 });
133 });
134 }, true);
135 });
136 });
137 }