summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_sanitize-sitepermissions.js
blob: 1b43d62fc2f4dec44588783b45301a8ce9309fdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Bug 380852 - Delete permission manager entries in Clear Recent History

var tempScope = {};
Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader)
                                           .loadSubScript("chrome://browser/content/sanitize.js", tempScope);
var Sanitizer = tempScope.Sanitizer;

function countPermissions() {
  let result = 0;
  let enumerator = Services.perms.enumerator;
  while (enumerator.hasMoreElements()) {
    result++;
    enumerator.getNext();
  }
  return result;
}

add_task(function* test() {
  // sanitize before we start so we have a good baseline.
  // Set up the sanitizer to just clear siteSettings
  let s = new Sanitizer();
  s.ignoreTimespan = false;
  s.prefDomain = "privacy.cpd.";
  var itemPrefs = gPrefService.getBranch(s.prefDomain);
  itemPrefs.setBoolPref("history", false);
  itemPrefs.setBoolPref("downloads", false);
  itemPrefs.setBoolPref("cache", false);
  itemPrefs.setBoolPref("cookies", false);
  itemPrefs.setBoolPref("formdata", false);
  itemPrefs.setBoolPref("offlineApps", false);
  itemPrefs.setBoolPref("passwords", false);
  itemPrefs.setBoolPref("sessions", false);
  itemPrefs.setBoolPref("siteSettings", true);
  s.sanitize();

  // Count how many permissions we start with - some are defaults that
  // will not be sanitized.
  let numAtStart = countPermissions();

  // Add a permission entry
  var pm = Services.perms;
  pm.add(makeURI("http://example.com"), "testing", pm.ALLOW_ACTION);

  // Sanity check
  ok(pm.enumerator.hasMoreElements(), "Permission manager should have elements, since we just added one");

  // Clear it
  yield s.sanitize();

  // Make sure it's gone
  is(numAtStart, countPermissions(), "Permission manager should have the same count it started with");
});