docshell/test/unit/test_privacy_transition.js

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 var gNotifications = 0;
michael@0 2
michael@0 3 var observer = {
michael@0 4 QueryInterface: function(iid) {
michael@0 5 if (Ci.nsIPrivacyTransitionObserver.equals(iid) ||
michael@0 6 Ci.nsISupportsWeakReference.equals(iid) ||
michael@0 7 Ci.nsISupports.equals(iid))
michael@0 8 return this;
michael@0 9 throw Cr.NS_ERROR_NO_INTERFACE;
michael@0 10 },
michael@0 11
michael@0 12 privateModeChanged: function(enabled) {
michael@0 13 gNotifications++;
michael@0 14 }
michael@0 15 }
michael@0 16
michael@0 17 function run_test() {
michael@0 18 var docshell = Cc["@mozilla.org/docshell;1"].createInstance(Ci.nsIDocShell);
michael@0 19 docshell.addWeakPrivacyTransitionObserver(observer);
michael@0 20 docshell.QueryInterface(Ci.nsILoadContext).usePrivateBrowsing = true;
michael@0 21 docshell.QueryInterface(Ci.nsILoadContext).usePrivateBrowsing = false;
michael@0 22 do_check_eq(gNotifications, 2);
michael@0 23 }

mercurial