Thu, 15 Jan 2015 15:59:08 +0100
Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
michael@0 | 1 | 'use strict'; |
michael@0 | 2 | |
michael@0 | 3 | const tabs = require('sdk/tabs'); |
michael@0 | 4 | const { isPrivate } = require('sdk/private-browsing'); |
michael@0 | 5 | const pbUtils = require('sdk/private-browsing/utils'); |
michael@0 | 6 | const { getOwnerWindow } = require('sdk/private-browsing/window/utils'); |
michael@0 | 7 | |
michael@0 | 8 | exports.testPrivateTabsAreListed = function (assert, done) { |
michael@0 | 9 | let originalTabCount = tabs.length; |
michael@0 | 10 | |
michael@0 | 11 | tabs.open({ |
michael@0 | 12 | url: 'about:blank', |
michael@0 | 13 | isPrivate: true, |
michael@0 | 14 | onOpen: function(tab) { |
michael@0 | 15 | let win = getOwnerWindow(tab); |
michael@0 | 16 | // PWPB case |
michael@0 | 17 | if (pbUtils.isWindowPBSupported || pbUtils.isTabPBSupported) { |
michael@0 | 18 | assert.ok(isPrivate(tab), "tab is private"); |
michael@0 | 19 | assert.equal(tabs.length, originalTabCount + 1, |
michael@0 | 20 | 'New private window\'s tab are visible in tabs list'); |
michael@0 | 21 | } |
michael@0 | 22 | else { |
michael@0 | 23 | // Global case, openDialog didn't opened a private window/tab |
michael@0 | 24 | assert.ok(!isPrivate(tab), "tab isn't private"); |
michael@0 | 25 | assert.equal(tabs.length, originalTabCount + 1, |
michael@0 | 26 | 'New non-private window\'s tab is visible in tabs list'); |
michael@0 | 27 | } |
michael@0 | 28 | |
michael@0 | 29 | tab.close(done); |
michael@0 | 30 | } |
michael@0 | 31 | }); |
michael@0 | 32 | }; |
michael@0 | 33 |