From 8148615da179fdd60f19018e13b4e94b95609cc6 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Sat, 3 Feb 2018 06:00:38 -0500 Subject: Remove browser tests - Part 1: The Tests (except for experiments) --- .../contextualidentity/test/browser/.eslintrc.js | 11 - .../contextualidentity/test/browser/browser.ini | 30 -- .../test/browser/browser_aboutURLs.js | 49 --- .../test/browser/browser_blobUrl.js | 78 ----- .../test/browser/browser_broadcastchannel.js | 80 ----- .../test/browser/browser_count_and_remove.js | 34 -- .../contextualidentity/test/browser/browser_eme.js | 186 ----------- .../test/browser/browser_favicon.js | 140 -------- .../browser_forgetAPI_EME_forgetThisSite.js | 219 ------------- ...getAPI_cookie_getCookiesWithOriginAttributes.js | 86 ----- ...er_forgetAPI_quota_clearStoragesForPrincipal.js | 147 --------- .../test/browser/browser_forgetaboutsite.js | 352 --------------------- .../test/browser/browser_imageCache.js | 59 ---- .../test/browser/browser_middleClick.js | 41 --- .../test/browser/browser_newtabButton.js | 35 -- .../test/browser/browser_serviceworkers.js | 108 ------- .../test/browser/browser_usercontext.js | 86 ----- .../test/browser/browser_usercontextid_tabdrop.js | 134 -------- .../test/browser/browser_windowName.js | 74 ----- .../test/browser/browser_windowOpen.js | 41 --- .../test/browser/empty_file.html | 5 - .../test/browser/favicon-normal32.png | Bin 344 -> 0 bytes .../browser/file_reflect_cookie_into_title.html | 23 -- .../test/browser/file_set_storages.html | 41 --- .../test/browser/serviceworker.html | 12 - .../contextualidentity/test/browser/worker.js | 1 - 26 files changed, 2072 deletions(-) delete mode 100644 browser/components/contextualidentity/test/browser/.eslintrc.js delete mode 100644 browser/components/contextualidentity/test/browser/browser.ini delete mode 100644 browser/components/contextualidentity/test/browser/browser_aboutURLs.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_blobUrl.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_broadcastchannel.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_count_and_remove.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_eme.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_favicon.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_forgetAPI_EME_forgetThisSite.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_forgetAPI_quota_clearStoragesForPrincipal.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_forgetaboutsite.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_imageCache.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_middleClick.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_newtabButton.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_serviceworkers.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_usercontext.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_usercontextid_tabdrop.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_windowName.js delete mode 100644 browser/components/contextualidentity/test/browser/browser_windowOpen.js delete mode 100644 browser/components/contextualidentity/test/browser/empty_file.html delete mode 100644 browser/components/contextualidentity/test/browser/favicon-normal32.png delete mode 100644 browser/components/contextualidentity/test/browser/file_reflect_cookie_into_title.html delete mode 100644 browser/components/contextualidentity/test/browser/file_set_storages.html delete mode 100644 browser/components/contextualidentity/test/browser/serviceworker.html delete mode 100644 browser/components/contextualidentity/test/browser/worker.js (limited to 'browser/components/contextualidentity') diff --git a/browser/components/contextualidentity/test/browser/.eslintrc.js b/browser/components/contextualidentity/test/browser/.eslintrc.js deleted file mode 100644 index e25a6863e..000000000 --- a/browser/components/contextualidentity/test/browser/.eslintrc.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -module.exports = { - "extends": [ - "../../../../../testing/mochitest/browser.eslintrc.js" - ], - - "rules": { - "no-undef": "error" - } -}; diff --git a/browser/components/contextualidentity/test/browser/browser.ini b/browser/components/contextualidentity/test/browser/browser.ini deleted file mode 100644 index 55083f8d2..000000000 --- a/browser/components/contextualidentity/test/browser/browser.ini +++ /dev/null @@ -1,30 +0,0 @@ -[DEFAULT] -support-files = - empty_file.html - file_reflect_cookie_into_title.html - favicon-normal32.png - file_set_storages.html - serviceworker.html - worker.js - -[browser_aboutURLs.js] -[browser_eme.js] -[browser_favicon.js] -[browser_forgetaboutsite.js] -[browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js] -[browser_forgetAPI_EME_forgetThisSite.js] -[browser_forgetAPI_quota_clearStoragesForPrincipal.js] -[browser_newtabButton.js] -[browser_usercontext.js] -[browser_usercontextid_tabdrop.js] -skip-if = os == "mac" || os == "win" # Intermittent failure - bug 1268276 -[browser_windowName.js] -tags = openwindow -[browser_windowOpen.js] -tags = openwindow -[browser_serviceworkers.js] -[browser_broadcastchannel.js] -[browser_blobUrl.js] -[browser_middleClick.js] -[browser_imageCache.js] -[browser_count_and_remove.js] diff --git a/browser/components/contextualidentity/test/browser/browser_aboutURLs.js b/browser/components/contextualidentity/test/browser/browser_aboutURLs.js deleted file mode 100644 index 586bca37f..000000000 --- a/browser/components/contextualidentity/test/browser/browser_aboutURLs.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -// For some about: URLs, they will take more time to load and cause timeout. -// See Bug 1270998. -requestLongerTimeout(2); - -add_task(function* () { - let aboutURLs = []; - - // List of about: URLs that will initiate network requests. - let networkURLs = [ - "credits", - "telemetry" // about:telemetry will fetch Telemetry asynchrounously and takes - // longer, we skip this for now. - ]; - - let ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); - for (let cid in Cc) { - let result = cid.match(/@mozilla.org\/network\/protocol\/about;1\?what\=(.*)$/); - if (!result) { - continue; - } - - let aboutType = result[1]; - let contract = "@mozilla.org/network/protocol/about;1?what=" + aboutType; - try { - let am = Cc[contract].getService(Ci.nsIAboutModule); - let uri = ios.newURI("about:"+aboutType, null, null); - let flags = am.getURIFlags(uri); - if (!(flags & Ci.nsIAboutModule.HIDE_FROM_ABOUTABOUT) && - networkURLs.indexOf(aboutType) == -1) { - aboutURLs.push(aboutType); - } - } catch (e) { - // getService might have thrown if the component doesn't actually - // implement nsIAboutModule - } - } - - for (let url of aboutURLs) { - info("Loading about:" + url); - let tab = gBrowser.addTab("about:"+url, {userContextId: 1}); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - ok(true, "Done loading about:" + url); - - yield BrowserTestUtils.removeTab(tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_blobUrl.js b/browser/components/contextualidentity/test/browser/browser_blobUrl.js deleted file mode 100644 index 8a441311e..000000000 --- a/browser/components/contextualidentity/test/browser/browser_blobUrl.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; - -// Here we want to test that blob URLs are not available cross containers. - -const BASE_URI = "http://mochi.test:8888/browser/browser/components/" - + "contextualidentity/test/browser/empty_file.html"; - -add_task(function* setup() { - yield new Promise((resolve) => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}, resolve); - }); -}); - - -add_task(function* test() { - info("Creating a tab with UCI = 1..."); - let tab1 = gBrowser.addTab(BASE_URI, {userContextId: 1}); - is(tab1.getAttribute('usercontextid'), 1, "New tab has UCI equal 1"); - - let browser1 = gBrowser.getBrowserForTab(tab1); - yield BrowserTestUtils.browserLoaded(browser1); - - let blobURL; - - info("Creating a blob URL..."); - yield ContentTask.spawn(browser1, null, function() { - return Promise.resolve(content.window.URL.createObjectURL(new content.window.Blob([123]))); - }).then(newURL => { blobURL = newURL }); - - info("Blob URL: " + blobURL); - - info("Creating a tab with UCI = 2..."); - let tab2 = gBrowser.addTab(BASE_URI, {userContextId: 2}); - is(tab2.getAttribute('usercontextid'), 2, "New tab has UCI equal 2"); - - let browser2 = gBrowser.getBrowserForTab(tab2); - yield BrowserTestUtils.browserLoaded(browser2); - - yield ContentTask.spawn(browser2, blobURL, function(url) { - return new Promise(resolve => { - var xhr = new content.window.XMLHttpRequest(); - xhr.onerror = function() { resolve("SendErrored"); } - xhr.onload = function() { resolve("SendLoaded"); } - xhr.open("GET", url); - xhr.send(); - }); - }).then(status => { - is(status, "SendErrored", "Using a blob URI from one user context id in another should not work"); - }); - - info("Creating a tab with UCI = 1..."); - let tab3 = gBrowser.addTab(BASE_URI, {userContextId: 1}); - is(tab3.getAttribute('usercontextid'), 1, "New tab has UCI equal 1"); - - let browser3 = gBrowser.getBrowserForTab(tab3); - yield BrowserTestUtils.browserLoaded(browser3); - - yield ContentTask.spawn(browser3, blobURL, function(url) { - return new Promise(resolve => { - var xhr = new content.window.XMLHttpRequest(); - xhr.open("GET", url); - try { - xhr.send(); - resolve("SendSucceeded"); - } catch (e) { - resolve("SendThrew"); - } - }); - }).then(status => { - is(status, "SendSucceeded", "Using a blob URI within a single user context id should work"); - }); - - yield BrowserTestUtils.removeTab(tab1); - yield BrowserTestUtils.removeTab(tab2); - yield BrowserTestUtils.removeTab(tab3); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_broadcastchannel.js b/browser/components/contextualidentity/test/browser/browser_broadcastchannel.js deleted file mode 100644 index a821ce96b..000000000 --- a/browser/components/contextualidentity/test/browser/browser_broadcastchannel.js +++ /dev/null @@ -1,80 +0,0 @@ -let { classes: Cc, interfaces: Ci } = Components; - -const BASE_ORIGIN = "http://example.com"; -const URI = BASE_ORIGIN + - "/browser/browser/components/contextualidentity/test/browser/empty_file.html"; - -// opens `uri' in a new tab with the provided userContextId and focuses it. -// returns the newly opened tab -function* openTabInUserContext(uri, userContextId) { - // open the tab in the correct userContextId - let tab = gBrowser.addTab(uri, {userContextId}); - - // select tab and make sure its browser is focused - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -add_task(function* setup() { - // make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}, resolve); - }); -}); - -add_task(function* test() { - let receiver = yield* openTabInUserContext(URI, 2); - - let channelName = "contextualidentity-broadcastchannel"; - - // reflect the received message on title - yield ContentTask.spawn(receiver.browser, channelName, - function (name) { - content.window.testPromise = new content.window.Promise(resolve => { - content.window.bc = new content.window.BroadcastChannel(name); - content.window.bc.onmessage = function (e) { - content.document.title += e.data; - resolve(); - } - }); - } - ); - - let sender1 = yield* openTabInUserContext(URI, 1); - let sender2 = yield* openTabInUserContext(URI, 2); - sender1.message = "Message from user context #1"; - sender2.message = "Message from user context #2"; - - // send a message from a tab in different user context first - // then send a message from a tab in the same user context - for (let sender of [sender1, sender2]) { - yield ContentTask.spawn( - sender.browser, - { name: channelName, message: sender.message }, - function (opts) { - let bc = new content.window.BroadcastChannel(opts.name); - bc.postMessage(opts.message); - }); - } - - // Since sender1 sends before sender2, if the title is exactly - // sender2's message, sender1's message must've been blocked - yield ContentTask.spawn(receiver.browser, sender2.message, - function* (message) { - yield content.window.testPromise.then(function() { - is(content.document.title, message, - "should only receive messages from the same user context"); - }); - } - ); - - gBrowser.removeTab(sender1.tab); - gBrowser.removeTab(sender2.tab); - gBrowser.removeTab(receiver.tab); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_count_and_remove.js b/browser/components/contextualidentity/test/browser/browser_count_and_remove.js deleted file mode 100644 index 23b7e948a..000000000 --- a/browser/components/contextualidentity/test/browser/browser_count_and_remove.js +++ /dev/null @@ -1,34 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; - -Cu.import("resource://gre/modules/ContextualIdentityService.jsm"); - -function openTabInUserContext(userContextId) { - let tab = gBrowser.addTab("about:blank", {userContextId}); - gBrowser.selectedTab = tab; -} - -add_task(function* setup() { - // make sure userContext is enabled. - yield SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}); -}); - -add_task(function* test() { - is(ContextualIdentityService.countContainerTabs(), 0, "0 container tabs by default."); - - openTabInUserContext(1); - is(ContextualIdentityService.countContainerTabs(), 1, "1 container tab created"); - - openTabInUserContext(1); - is(ContextualIdentityService.countContainerTabs(), 2, "2 container tab created"); - - openTabInUserContext(2); - is(ContextualIdentityService.countContainerTabs(), 3, "3 container tab created"); - - ContextualIdentityService.closeAllContainerTabs(); - is(ContextualIdentityService.countContainerTabs(), 0, "0 container tab at the end."); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_eme.js b/browser/components/contextualidentity/test/browser/browser_eme.js deleted file mode 100644 index 557648d60..000000000 --- a/browser/components/contextualidentity/test/browser/browser_eme.js +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Bug 1283325 - A test case to test the EME is originAttributes aware or not. - */ -const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components; - -const TEST_HOST = "example.com"; -const TEST_URL = "http://" + TEST_HOST + "/browser/browser/components/contextualidentity/test/browser/"; - -const TESTKEY = { - initDataType: 'keyids', - initData: '{"kids":["LwVHf8JLtPrv2GUXFW2v_A"], "type":"persistent-license"}', - kid: "LwVHf8JLtPrv2GUXFW2v_A", - key: "97b9ddc459c8d5ff23c1f2754c95abe8", - sessionType: 'persistent-license', -}; - -const USER_ID_DEFAULT = 0; -const USER_ID_PERSONAL = 1; - -function* openTabInUserContext(uri, userContextId) { - // Open the tab in the correct userContextId. - let tab = gBrowser.addTab(uri, {userContextId}); - - // Select tab and make sure its browser is focused. - gBrowser.selectedTab = tab; - tab.ownerDocument.defaultView.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -function HexToBase64(hex) -{ - var bin = ""; - for (var i = 0; i < hex.length; i += 2) { - bin += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); - } - return window.btoa(bin).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); -} - -function Base64ToHex(str) -{ - var bin = window.atob(str.replace(/-/g, "+").replace(/_/g, "/")); - var res = ""; - for (var i = 0; i < bin.length; i++) { - res += ("0" + bin.charCodeAt(i).toString(16)).substr(-2); - } - return res; -} - -function ByteArrayToHex(array) { - let bin = String.fromCharCode.apply(null, new Uint8Array(array)); - let res = ""; - - for (let i = 0; i < bin.length; i++) { - res += ("0" + bin.charCodeAt(i).toString(16)).substr(-2); - } - - return res; -} - -function generateKeyObject(aKid, aKey) { - let keyObj = { - kty: 'oct', - kid: aKid, - k: HexToBase64(aKey), - }; - - return new TextEncoder().encode(JSON.stringify({ - keys: [keyObj] - })); -} - -function generateKeyInfo(aData) { - let keyInfo = { - initDataType: aData.initDataType, - initData: new TextEncoder().encode(aData.initData), - sessionType: aData.sessionType, - keyObj: generateKeyObject(aData.kid, aData.key), - }; - - return keyInfo; -} - -add_task(function* setup() { - // Make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - [ "privacy.userContext.enabled", true ], - [ "media.mediasource.enabled", true ], - [ "media.eme.apiVisible", true ], - [ "media.mediasource.webm.enabled", true ], - [ "media.clearkey.persistent-license.enabled", true ], - ]}, resolve); - }); -}); - -add_task(function* test() { - // Open a tab with the default container. - let defaultContainer = yield openTabInUserContext(TEST_URL + "empty_file.html", USER_ID_DEFAULT); - - // Generate the key info for the default container. - let keyInfo = generateKeyInfo(TESTKEY); - - // Update the media key for the default container. - let result = yield ContentTask.spawn(defaultContainer.browser, keyInfo, function* (aKeyInfo) { - let access = yield content.navigator.requestMediaKeySystemAccess('org.w3.clearkey', - [{ - initDataTypes: [aKeyInfo.initDataType], - videoCapabilities: [{contentType: 'video/webm'}], - sessionTypes: ['persistent-license'], - persistentState: 'required', - }]); - let mediaKeys = yield access.createMediaKeys(); - let session = mediaKeys.createSession(aKeyInfo.sessionType); - let res = {}; - - // Insert the media key. - yield new Promise(resolve => { - session.addEventListener("message", function(event) { - session.update(aKeyInfo.keyObj).then( - () => { resolve(); } - ).catch( - () => { - ok(false, "Update the media key fail."); - resolve(); - } - ); - }); - - session.generateRequest(aKeyInfo.initDataType, aKeyInfo.initData); - }); - - let map = session.keyStatuses; - - is(map.size, 1, "One media key has been added."); - - if (map.size === 1) { - res.keyId = map.keys().next().value; - res.sessionId = session.sessionId; - } - - // Close the session. - session.close(); - yield session.closed; - - return res; - }); - - // Check the media key ID. - is(ByteArrayToHex(result.keyId), Base64ToHex(TESTKEY.kid), "The key Id of the default container is correct."); - - // Store the sessionId for the further checking. - keyInfo.sessionId = result.sessionId; - - // Open a tab with personal container. - let personalContainer = yield openTabInUserContext(TEST_URL + "empty_file.html", USER_ID_PERSONAL); - - yield ContentTask.spawn(personalContainer.browser, keyInfo, function* (aKeyInfo) { - let access = yield content.navigator.requestMediaKeySystemAccess('org.w3.clearkey', - [{ - initDataTypes: [aKeyInfo.initDataType], - videoCapabilities: [{contentType: 'video/webm'}], - sessionTypes: ['persistent-license'], - persistentState: 'required', - }]); - let mediaKeys = yield access.createMediaKeys(); - let session = mediaKeys.createSession(aKeyInfo.sessionType); - - // First, load the session to check that mediakeys do not share with - // default container. - yield session.load(aKeyInfo.sessionId); - - let map = session.keyStatuses; - - // Check that there is no media key here. - is(map.size, 0, "No media key should be here for the personal container."); - }); - - // Close default container tab. - yield BrowserTestUtils.removeTab(defaultContainer.tab); - - // Close personal container tab. - yield BrowserTestUtils.removeTab(personalContainer.tab); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_favicon.js b/browser/components/contextualidentity/test/browser/browser_favicon.js deleted file mode 100644 index a0a7eb208..000000000 --- a/browser/components/contextualidentity/test/browser/browser_favicon.js +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Bug 1270678 - A test case to test does the favicon obey originAttributes. - */ -let { classes: Cc, interfaces: Ci, utils: Cu } = Components; - -Cu.import("resource://gre/modules/PlacesUtils.jsm"); -Cu.import("resource://gre/modules/NetUtil.jsm"); -let {HttpServer} = Cu.import("resource://testing-common/httpd.js", {}); - -const USER_CONTEXTS = [ - "default", - "personal", - "work", -]; - -let gHttpServer = null; -let gUserContextId; -let gFaviconData; - -function getIconFile() { - new Promise(resolve => { - NetUtil.asyncFetch({ - uri: "http://www.example.com/browser/browser/components/contextualidentity/test/browser/favicon-normal32.png", - loadUsingSystemPrincipal: true, - contentPolicyType: Ci.nsIContentPolicy.TYPE_INTERNAL_IMAGE_FAVICON - }, function(inputStream, status) { - let size = inputStream.available(); - gFaviconData = NetUtil.readInputStreamToString(inputStream, size); - resolve(); - }); - }); -} - -function* openTabInUserContext(uri, userContextId) { - // open the tab in the correct userContextId - let tab = gBrowser.addTab(uri, {userContextId}); - - // select tab and make sure its browser is focused - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -function loadIndexHandler(metadata, response) { - response.setStatusLine(metadata.httpVersion, 200, "Ok"); - response.setHeader("Content-Type", "text/html", false); - let body = ` - - - - - Favicon Test - - - Favicon!! - - `; - response.bodyOutputStream.write(body, body.length); -} - -function loadFaviconHandler(metadata, response) { - let expectedCookie = "userContext=" + USER_CONTEXTS[gUserContextId]; - - if (metadata.hasHeader("Cookie")) { - is(metadata.getHeader("Cookie"), expectedCookie, "The cookie has matched with the expected cookie."); - } else { - ok(false, "The request should have a cookie."); - } - - response.setStatusLine(metadata.httpVersion, 200, "Ok"); - response.setHeader("Content-Type", "image/png", false); - response.bodyOutputStream.write(gFaviconData, gFaviconData.length); -} - -add_task(function* setup() { - // Make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}, resolve); - }); - - // Create a http server for the image cache test. - if (!gHttpServer) { - gHttpServer = new HttpServer(); - gHttpServer.registerPathHandler('/', loadIndexHandler); - gHttpServer.registerPathHandler('/favicon.png', loadFaviconHandler); - gHttpServer.start(-1); - } -}); - -registerCleanupFunction(() => { - gHttpServer.stop(() => { - gHttpServer = null; - }); -}); - -add_task(function* test() { - waitForExplicitFinish(); - - // First, get the icon data. - yield getIconFile(); - - let serverPort = gHttpServer.identity.primaryPort; - let testURL = "http://localhost:" + serverPort + "/"; - let testFaviconURL = "http://localhost:" + serverPort + "/favicon.png"; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - gUserContextId = userContextId; - - // Load the page in 3 different contexts and set a cookie - // which should only be visible in that context. - - // Open our tab in the given user context. - let tabInfo = yield* openTabInUserContext(testURL, userContextId); - - // Write a cookie according to the userContext. - yield ContentTask.spawn(tabInfo.browser, { userContext: USER_CONTEXTS[userContextId] }, function (arg) { - content.document.cookie = "userContext=" + arg.userContext; - }); - - let pageURI = NetUtil.newURI(testURL); - let favIconURI = NetUtil.newURI(testFaviconURL); - - yield new Promise(resolve => { - PlacesUtils.favicons.setAndFetchFaviconForPage(pageURI, favIconURI, - true, PlacesUtils.favicons.FAVICON_LOAD_NON_PRIVATE, { - onComplete() { - resolve(); - }, - }, - tabInfo.browser.contentPrincipal); - }); - - yield BrowserTestUtils.removeTab(tabInfo.tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_forgetAPI_EME_forgetThisSite.js b/browser/components/contextualidentity/test/browser/browser_forgetAPI_EME_forgetThisSite.js deleted file mode 100644 index 1a97448c0..000000000 --- a/browser/components/contextualidentity/test/browser/browser_forgetAPI_EME_forgetThisSite.js +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Bug 1278037 - A Test case for checking whether forgetting APIs are working for the media key. - */ - -const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components; - -const TEST_HOST = "example.com"; -const TEST_URL = "http://" + TEST_HOST + "/browser/browser/components/contextualidentity/test/browser/"; - -const USER_CONTEXTS = [ - "default", - "personal", -]; - -const TEST_EME_KEY = { - initDataType: 'keyids', - initData: '{"kids":["LwVHf8JLtPrv2GUXFW2v_A"], "type":"persistent-license"}', - kid: "LwVHf8JLtPrv2GUXFW2v_A", - key: "97b9ddc459c8d5ff23c1f2754c95abe8", - sessionType: 'persistent-license', -}; - -// -// Support functions. -// - -function* openTabInUserContext(uri, userContextId) { - // Open the tab in the correct userContextId. - let tab = gBrowser.addTab(uri, {userContextId}); - - // Select tab and make sure its browser is focused. - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -function HexToBase64(hex) { - var bin = ""; - for (var i = 0; i < hex.length; i += 2) { - bin += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); - } - return window.btoa(bin).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_"); -} - -function Base64ToHex(str) { - var bin = window.atob(str.replace(/-/g, "+").replace(/_/g, "/")); - var res = ""; - for (var i = 0; i < bin.length; i++) { - res += ("0" + bin.charCodeAt(i).toString(16)).substr(-2); - } - return res; -} - -function ByteArrayToHex(array) { - let bin = String.fromCharCode.apply(null, new Uint8Array(array)); - let res = ""; - - for (let i = 0; i < bin.length; i++) { - res += ("0" + bin.charCodeAt(i).toString(16)).substr(-2); - } - - return res; -} - -function generateKeyObject(aKid, aKey) { - let keyObj = { - kty: 'oct', - kid: aKid, - k: HexToBase64(aKey), - }; - - return new TextEncoder().encode(JSON.stringify({ - keys: [keyObj] - })); -} - -function generateKeyInfo(aData) { - let keyInfo = { - initDataType: aData.initDataType, - initData: new TextEncoder().encode(aData.initData), - sessionType: aData.sessionType, - keyObj: generateKeyObject(aData.kid, aData.key), - }; - - return keyInfo; -} - -// Setup a EME key for the given browser, and return the sessionId. -function* setupEMEKey(browser) { - // Generate the key info. - let keyInfo = generateKeyInfo(TEST_EME_KEY); - - // Setup the EME key. - let result = yield ContentTask.spawn(browser, keyInfo, function* (aKeyInfo) { - let access = yield content.navigator.requestMediaKeySystemAccess('org.w3.clearkey', - [{ - initDataTypes: [aKeyInfo.initDataType], - videoCapabilities: [{contentType: 'video/webm'}], - sessionTypes: ['persistent-license'], - persistentState: 'required', - }]); - let mediaKeys = yield access.createMediaKeys(); - let session = mediaKeys.createSession(aKeyInfo.sessionType); - let res = {}; - - // Insert the EME key. - yield new Promise(resolve => { - session.addEventListener("message", function(event) { - session.update(aKeyInfo.keyObj).then( - () => { resolve(); } - ).catch( - () => { - ok(false, "Update the EME key fail."); - resolve(); - } - ); - }); - - session.generateRequest(aKeyInfo.initDataType, aKeyInfo.initData); - }); - - let map = session.keyStatuses; - - is(map.size, 1, "One EME key has been added."); - - if (map.size === 1) { - res.keyId = map.keys().next().value; - res.sessionId = session.sessionId; - } - - // Close the session. - session.close(); - yield session.closed; - - return res; - }); - - // Check the EME key ID. - is(ByteArrayToHex(result.keyId), Base64ToHex(TEST_EME_KEY.kid), "The key Id is correct."); - return result.sessionId; -} - -// Check whether the EME key has been cleared. -function* checkEMEKey(browser, emeSessionId) { - // Generate the key info. - let keyInfo = generateKeyInfo(TEST_EME_KEY); - keyInfo.sessionId = emeSessionId; - - yield ContentTask.spawn(browser, keyInfo, function* (aKeyInfo) { - let access = yield content.navigator.requestMediaKeySystemAccess('org.w3.clearkey', - [{ - initDataTypes: [aKeyInfo.initDataType], - videoCapabilities: [{contentType: 'video/webm'}], - sessionTypes: ['persistent-license'], - persistentState: 'required', - }]); - let mediaKeys = yield access.createMediaKeys(); - let session = mediaKeys.createSession(aKeyInfo.sessionType); - - // First, load the session with the sessionId. - yield session.load(aKeyInfo.sessionId); - - let map = session.keyStatuses; - - // Check that there is no media key here. - is(map.size, 0, "No media key should be here after forgetThisSite() was called."); - }); -} - -// -// Test functions. -// - -add_task(function* setup() { - // Make sure userContext is enabled. - yield SpecialPowers.pushPrefEnv({"set": [ - [ "privacy.userContext.enabled", true ], - [ "media.mediasource.enabled", true ], - [ "media.eme.apiVisible", true ], - [ "media.mediasource.webm.enabled", true ], - [ "media.clearkey.persistent-license.enabled", true ], - ]}); -}); - -add_task(function* test_EME_forgetThisSite() { - let tabs = []; - let emeSessionIds = []; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "empty_file.html", userContextId); - - // Setup EME Key. - emeSessionIds[userContextId] = yield setupEMEKey(tabs[userContextId].browser); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - - // Clear all EME data for a given domain with originAttributes pattern. - let mps = Cc["@mozilla.org/gecko-media-plugin-service;1"]. - getService(Ci.mozIGeckoMediaPluginChromeService); - mps.forgetThisSite(TEST_HOST, JSON.stringify({})); - - // Open tabs again to check EME keys have been cleared. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "empty_file.html", userContextId); - - // Check whether EME Key has been cleared. - yield checkEMEKey(tabs[userContextId].browser, emeSessionIds[userContextId]); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js b/browser/components/contextualidentity/test/browser/browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js deleted file mode 100644 index 1d9024d25..000000000 --- a/browser/components/contextualidentity/test/browser/browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Bug 1278037 - A Test case for checking whether forgetting APIs are working for cookies. - */ - -const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components; - -const TEST_HOST = "example.com"; -const TEST_URL = "http://" + TEST_HOST + "/browser/browser/components/contextualidentity/test/browser/"; - -const USER_CONTEXTS = [ - "default", - "personal", -]; - -// -// Support functions. -// - -function* openTabInUserContext(uri, userContextId) { - // Open the tab in the correct userContextId. - let tab = gBrowser.addTab(uri, {userContextId}); - - // Select tab and make sure its browser is focused. - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -function getCookiesForOA(host, userContextId) { - return Services.cookies.getCookiesFromHost(host, {userContextId}); -} - -// -// Test functions. -// - -add_task(function* setup() { - // Make sure userContext is enabled. - yield SpecialPowers.pushPrefEnv({"set": [ - [ "privacy.userContext.enabled", true ], - ]}); -}); - -add_task(function* test_cookie_getCookiesWithOriginAttributes() { - let tabs = []; - let cookieName = "userContextId"; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Load the page in 2 different contexts and set a cookie - // which should only be visible in that context. - let value = USER_CONTEXTS[userContextId]; - - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "file_reflect_cookie_into_title.html?" + value, userContextId); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - - // Check that cookies have been set properly. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let enumerator = getCookiesForOA(TEST_HOST, userContextId); - ok(enumerator.hasMoreElements(), "Cookies available"); - - let foundCookie = enumerator.getNext().QueryInterface(Ci.nsICookie2); - is(foundCookie["name"], cookieName, "Check cookie name"); - is(foundCookie["value"], USER_CONTEXTS[userContextId], "Check cookie value"); - } - - // Using getCookiesWithOriginAttributes() to get all cookies for a certain - // domain by using the originAttributes pattern, and clear all these cookies. - let enumerator = Services.cookies.getCookiesWithOriginAttributes(JSON.stringify({}), TEST_HOST); - while (enumerator.hasMoreElements()) { - let cookie = enumerator.getNext().QueryInterface(Ci.nsICookie); - Services.cookies.remove(cookie.host, cookie.name, cookie.path, false, cookie.originAttributes); - } - - // Check that whether cookies has been cleared. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let enumerator = getCookiesForOA(TEST_HOST, userContextId); - ok(!enumerator.hasMoreElements(), "No Cookie should be here"); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_forgetAPI_quota_clearStoragesForPrincipal.js b/browser/components/contextualidentity/test/browser/browser_forgetAPI_quota_clearStoragesForPrincipal.js deleted file mode 100644 index 6a4b37c55..000000000 --- a/browser/components/contextualidentity/test/browser/browser_forgetAPI_quota_clearStoragesForPrincipal.js +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Bug 1278037 - A Test case for checking whether forgetting APIs are working for the quota manager. - */ - -const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components; - -const TEST_HOST = "example.com"; -const TEST_URL = "http://" + TEST_HOST + "/browser/browser/components/contextualidentity/test/browser/"; - -const USER_CONTEXTS = [ - "default", - "personal", -]; - -// -// Support functions. -// - -function* openTabInUserContext(uri, userContextId) { - // Open the tab in the correct userContextId. - let tab = gBrowser.addTab(uri, {userContextId}); - - // Select tab and make sure its browser is focused. - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -// Setup an entry for the indexedDB. -function* setupIndexedDB(browser) { - yield ContentTask.spawn(browser, { input: "TestForgetAPIs" }, function* (arg) { - let request = content.indexedDB.open("idb", 1); - - request.onerror = function() { - throw new Error("error opening db connection"); - }; - - request.onupgradeneeded = event => { - let db = event.target.result; - let store = db.createObjectStore("obj", { keyPath: "id" }); - store.createIndex("userContext", "userContext", { unique: false }); - }; - - let db = yield new Promise(resolve => { - request.onsuccess = event => { - resolve(event.target.result); - }; - }); - - // Add an entry into the indexedDB. - let transaction = db.transaction(["obj"], "readwrite"); - let store = transaction.objectStore("obj"); - store.add({id: 1, userContext: arg.input}); - - yield new Promise(resolve => { - transaction.oncomplete = () => { - resolve(); - }; - }); - - // Check the indexedDB has been set properly. - transaction = db.transaction(["obj"], "readonly"); - store = transaction.objectStore("obj"); - let getRequest = store.get(1); - yield new Promise(resolve => { - getRequest.onsuccess = () => { - let res = getRequest.result; - is(res.userContext, arg.input, "Check the indexedDB value"); - resolve(); - }; - }); - }); -} - -// Check whether the indexedDB has been cleared. -function* checkIndexedDB(browser) { - yield ContentTask.spawn(browser, null, function* () { - let request = content.indexedDB.open("idb", 1); - - let db = yield new Promise(done => { - request.onsuccess = event => { - done(event.target.result); - }; - }); - - try { - db.transaction(["obj"], "readonly"); - ok(false, "The indexedDB should not exist"); - } catch (e) { - is(e.name, "NotFoundError", "The indexedDB does not exist as expected"); - } - }); -} - -// -// Test functions. -// - -add_task(function* setup() { - // Make sure userContext is enabled. - yield SpecialPowers.pushPrefEnv({"set": [ - [ "privacy.userContext.enabled", true ], - ]}); -}); - -add_task(function* test_quota_clearStoragesForPrincipal() { - let tabs = []; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "empty_file.html", userContextId); - - // Setup an entry for the indexedDB. - yield setupIndexedDB(tabs[userContextId].browser); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - - // Using quota manager to clear all indexed DB for a given domain. - let qms = Cc["@mozilla.org/dom/quota-manager-service;1"]. - getService(Ci.nsIQuotaManagerService); - - let caUtils = {}; - let scriptLoader = Cc["@mozilla.org/moz/jssubscript-loader;1"]. - getService(Ci.mozIJSSubScriptLoader); - scriptLoader.loadSubScript("chrome://global/content/contentAreaUtils.js", - caUtils); - let httpURI = caUtils.makeURI("http://" + TEST_HOST); - let httpPrincipal = Services.scriptSecurityManager - .createCodebasePrincipal(httpURI, {}); - qms.clearStoragesForPrincipal(httpPrincipal, null, true); - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "empty_file.html", userContextId); - - // Check whether indexed DB has been cleared. - yield checkIndexedDB(tabs[userContextId].browser); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_forgetaboutsite.js b/browser/components/contextualidentity/test/browser/browser_forgetaboutsite.js deleted file mode 100644 index 9efc86e0c..000000000 --- a/browser/components/contextualidentity/test/browser/browser_forgetaboutsite.js +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Bug 1238183 - Test cases for forgetAboutSite with userContextId. - */ - -const { classes: Cc, Constructor: CC, interfaces: Ci, utils: Cu } = Components; - -Cu.import("resource://gre/modules/ForgetAboutSite.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -let {HttpServer} = Cu.import("resource://testing-common/httpd.js", {}); -let LoadContextInfo = Cc["@mozilla.org/load-context-info-factory;1"] - .getService(Ci.nsILoadContextInfoFactory); -let css = Cc["@mozilla.org/netwerk/cache-storage-service;1"] - .getService(Ci.nsICacheStorageService); - -const USER_CONTEXTS = [ - "default", - "personal", -]; -const TEST_HOST = "example.com"; -const TEST_URL = "http://" + TEST_HOST + "/browser/browser/components/contextualidentity/test/browser/"; -const COOKIE_NAME = "userContextId"; - -// Counter for image load hits. -let gHits = 0; - -let gHttpServer = null; - -function imageHandler(metadata, response) { - // A 1x1 PNG image. - // Source: https://commons.wikimedia.org/wiki/File:1x1.png (Public Domain) - const IMAGE = atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAA" + - "ACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII="); - gHits++; - response.setHeader("Cache-Control", "max-age=10000", false); - response.setStatusLine(metadata.httpVersion, 200, "OK"); - response.setHeader("Content-Type", "image/png", false); - response.write(IMAGE); -} - -function loadImagePageHandler(metadata, response) { - response.setHeader("Cache-Control", "max-age=10000", false); - response.setStatusLine(metadata.httpVersion, 200, "Ok"); - response.setHeader("Content-Type", "text/html", false); - let body = "\ - \ - \ - \ - Load Image\ - \ - \ - \ - \ - "; - response.bodyOutputStream.write(body, body.length); -} - -function* openTabInUserContext(uri, userContextId) { - // Open the tab in the correct userContextId. - let tab = gBrowser.addTab(uri, {userContextId}); - - // Select tab and make sure its browser is focused. - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return {tab, browser}; -} - -function getCookiesForOA(host, userContextId) { - return Services.cookies.getCookiesFromHost(host, {userContextId}); -} - -function createURI(uri) -{ - let ioServ = Cc["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); - return ioServ.newURI(uri, null, null); -} - -function getCacheStorage(where, lci, appcache) -{ - if (!lci) lci = LoadContextInfo.default; - switch (where) { - case "disk": return css.diskCacheStorage(lci, false); - case "memory": return css.memoryCacheStorage(lci); - case "appcache": return css.appCacheStorage(lci, appcache); - case "pin": return css.pinningCacheStorage(lci); - } - return null; -} - -function OpenCacheEntry(key, where, flags, lci) -{ - return new Promise(resolve => { - key = createURI(key); - function CacheListener() { } - CacheListener.prototype = { - _appCache: null, - - QueryInterface: function (iid) { - if (iid.equals(Components.interfaces.nsICacheEntryOpenCallback) || - iid.equals(Components.interfaces.nsISupports)) - return this; - throw Components.results.NS_ERROR_NO_INTERFACE; - }, - - onCacheEntryCheck: function(entry, appCache) { - return Ci.nsICacheEntryOpenCallback.ENTRY_WANTED; - }, - - onCacheEntryAvailable: function (entry, isnew, appCache, status) { - resolve(); - }, - - run: function () { - let storage = getCacheStorage(where, lci, this._appCache); - storage.asyncOpenURI(key, "", flags, this); - } - }; - - (new CacheListener()).run(); - }); -} - -// -// Test functions. -// - -// Cookies -function* test_cookie_cleared() { - let tabs = []; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Load the page in 2 different contexts and set a cookie - // which should only be visible in that context. - let value = USER_CONTEXTS[userContextId]; - - // Open our tab in the given user context. - tabs[userContextId] = yield* openTabInUserContext(TEST_URL+ "file_reflect_cookie_into_title.html?" + value, userContextId); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - // Check that cookies have been set properly. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let enumerator = getCookiesForOA(TEST_HOST, userContextId); - ok(enumerator.hasMoreElements(), "Cookies available"); - - let foundCookie = enumerator.getNext().QueryInterface(Ci.nsICookie2); - Assert.equal(foundCookie["name"], COOKIE_NAME, "Check cookie name"); - Assert.equal(foundCookie["value"], USER_CONTEXTS[userContextId], "Check cookie value"); - } - - // Forget the site. - ForgetAboutSite.removeDataFromDomain(TEST_HOST); - - // Check that whether cookies has been cleared or not. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let enumerator = getCookiesForOA(TEST_HOST, userContextId); - ok(!enumerator.hasMoreElements(), "No Cookie should be here"); - } -} - -// Cache -function* test_cache_cleared() { - // First, add some caches. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - yield OpenCacheEntry("http://" + TEST_HOST + "/", - "disk", - Ci.nsICacheStorage.OPEN_NORMALLY, - LoadContextInfo.custom(false, {userContextId})); - - yield OpenCacheEntry("http://" + TEST_HOST + "/", - "memory", - Ci.nsICacheStorage.OPEN_NORMALLY, - LoadContextInfo.custom(false, {userContextId})); - } - - - // Check that caches have been set correctly. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let mem = getCacheStorage("memory", LoadContextInfo.custom(false, {userContextId})); - let disk = getCacheStorage("disk", LoadContextInfo.custom(false, {userContextId})); - - Assert.ok(mem.exists(createURI("http://" + TEST_HOST + "/"), ""), "The memory cache has been set correctly"); - Assert.ok(disk.exists(createURI("http://" + TEST_HOST + "/"), ""), "The disk cache has been set correctly"); - } - - // Forget the site. - ForgetAboutSite.removeDataFromDomain(TEST_HOST); - - // Check that do caches be removed or not? - for (let userContextId of Object.keys(USER_CONTEXTS)) { - let mem = getCacheStorage("memory", LoadContextInfo.custom(false, {userContextId})); - let disk = getCacheStorage("disk", LoadContextInfo.custom(false, {userContextId})); - - Assert.ok(!mem.exists(createURI("http://" + TEST_HOST + "/"), ""), "The memory cache is cleared"); - Assert.ok(!disk.exists(createURI("http://" + TEST_HOST + "/"), ""), "The disk cache is cleared"); - } -} - -// Image Cache -function* test_image_cache_cleared() { - let tabs = []; - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context to cache image. - tabs[userContextId] = yield* openTabInUserContext('http://localhost:' + gHttpServer.identity.primaryPort + '/loadImage.html', - userContextId); - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - - let expectedHits = USER_CONTEXTS.length; - - // Check that image cache works with the userContextId. - is(gHits, expectedHits, "The image should be loaded" + expectedHits + "times."); - - // Reset the cache count. - gHits = 0; - - // Forget the site. - ForgetAboutSite.removeDataFromDomain("localhost:" + gHttpServer.identity.primaryPort + "/"); - - // Load again. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context to cache image. - tabs[userContextId] = yield* openTabInUserContext('http://localhost:' + gHttpServer.identity.primaryPort + '/loadImage.html', - userContextId); - yield BrowserTestUtils.removeTab(tabs[userContextId].tab); - } - - // Check that image cache was cleared and the server gets another two hits. - is(gHits, expectedHits, "The image should be loaded" + expectedHits + "times."); -} - -// Offline Storage -function* test_storage_cleared() { - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Load the page in 2 different contexts and set the local storage - // which should only be visible in that context. - let value = USER_CONTEXTS[userContextId]; - - // Open our tab in the given user context. - let tabInfo = yield* openTabInUserContext(TEST_URL+ "file_set_storages.html?" + value, userContextId); - - // Check that the storages has been set correctly. - yield ContentTask.spawn(tabInfo.browser, { userContext: USER_CONTEXTS[userContextId] }, function* (arg) { - // Check that the local storage has been set correctly. - Assert.equal(content.localStorage.getItem("userContext"), arg.userContext, "Check the local storage value"); - - // Check that the session storage has been set correctly. - Assert.equal(content.sessionStorage.getItem("userContext"), arg.userContext, "Check the session storage value"); - - // Check that the indexedDB has been set correctly. - let request = content.indexedDB.open("idb", 1); - - let db = yield new Promise(done => { - request.onsuccess = event => { - done(event.target.result); - }; - }); - - let transaction = db.transaction(["obj"], "readonly"); - let store = transaction.objectStore("obj"); - let storeRequest = store.get(1); - - yield new Promise(done => { - storeRequest.onsuccess = event => { - let res = storeRequest.result; - Assert.equal(res.userContext, arg.userContext, "Check the indexedDB value"); - done(); - }; - }); - }); - - // Close this tab. - yield BrowserTestUtils.removeTab(tabInfo.tab); - } - - // Forget the site. - ForgetAboutSite.removeDataFromDomain(TEST_HOST); - - // Open the tab again without setting the localStorage and check that the - // local storage has been cleared or not. - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Open our tab in the given user context without setting local storage. - let tabInfo = yield* openTabInUserContext(TEST_URL+ "file_set_storages.html", userContextId); - - // Check that do storages be cleared or not. - yield ContentTask.spawn(tabInfo.browser, null, function* () { - // Check that does the local storage be cleared or not. - Assert.ok(!content.localStorage.getItem("userContext"), "The local storage has been cleared"); - - // Check that does the session storage be cleared or not. - Assert.ok(!content.sessionStorage.getItem("userContext"), "The session storage has been cleared"); - - // Check that does the indexedDB be cleared or not. - let request = content.indexedDB.open("idb", 1); - - let db = yield new Promise(done => { - request.onsuccess = event => { - done(event.target.result); - }; - }); - try { - db.transaction(["obj"], "readonly"); - Assert.ok(false, "The indexedDB should not exist"); - } catch (e) { - Assert.equal(e.name, "NotFoundError", "The indexedDB does not exist as expected"); - } - }); - - // Close the tab. - yield BrowserTestUtils.removeTab(tabInfo.tab); - } -} - -add_task(function* setup() { - // Make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}, resolve); - }); - - // Create a http server for the image cache test. - if (!gHttpServer) { - gHttpServer = new HttpServer(); - gHttpServer.registerPathHandler('/image.png', imageHandler); - gHttpServer.registerPathHandler('/loadImage.html', loadImagePageHandler); - gHttpServer.start(-1); - } -}); - -let tests = [ - test_cookie_cleared, - test_cache_cleared, - test_image_cache_cleared, - test_storage_cleared, -]; - -add_task(function* test() { - for (let i = 0; i < tests.length; i++) - add_task(tests[i]); -}); - -registerCleanupFunction(() => { - gHttpServer.stop(() => { - gHttpServer = null; - }); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_imageCache.js b/browser/components/contextualidentity/test/browser/browser_imageCache.js deleted file mode 100644 index df36d44c1..000000000 --- a/browser/components/contextualidentity/test/browser/browser_imageCache.js +++ /dev/null @@ -1,59 +0,0 @@ -let Cu = Components.utils; -let {HttpServer} = Cu.import("resource://testing-common/httpd.js", {}); - -const NUM_USER_CONTEXTS = 3; - -let gHits = 0; - -let server = new HttpServer(); -server.registerPathHandler('/image.png', imageHandler); -server.registerPathHandler('/file.html', fileHandler); -server.start(-1); - -let BASE_URI = 'http://localhost:' + server.identity.primaryPort; -let IMAGE_URI = BASE_URI + '/image.png'; -let FILE_URI = BASE_URI + '/file.html'; - -function imageHandler(metadata, response) { - gHits++; - response.setHeader("Cache-Control", "max-age=10000", false); - response.setStatusLine(metadata.httpVersion, 200, "OK"); - response.setHeader("Content-Type", "image/png", false); - var body = "iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAIAAADZSiLoAAAAEUlEQVQImWP4z8AAQTAamQkAhpcI+DeMzFcAAAAASUVORK5CYII="; - response.bodyOutputStream.write(body, body.length); -} - -function fileHandler(metadata, response) { - response.setStatusLine(metadata.httpVersion, 200, "OK"); - response.setHeader("Content-Type", "text/html", false); - let body = ``; - response.bodyOutputStream.write(body, body.length); -} - -add_task(function* setup() { - // make sure userContext is enabled. - yield SpecialPowers.pushPrefEnv({"set": [["privacy.userContext.enabled", true]]}); -}); - -// opens `uri' in a new tab with the provided userContextId and focuses it. -// returns the newly opened tab -function* openTabInUserContext(uri, userContextId) { - // open the tab in the correct userContextId - let tab = gBrowser.addTab(uri, {userContextId}); - - // select tab and make sure its browser is focused - gBrowser.selectedTab = tab; - tab.ownerDocument.defaultView.focus(); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - return tab; -} - -add_task(function* test() { - for (let userContextId = 0; userContextId < NUM_USER_CONTEXTS; userContextId++) { - let tab = yield* openTabInUserContext(FILE_URI, userContextId); - gBrowser.removeTab(tab); - } - is(gHits, NUM_USER_CONTEXTS, "should get an image request for each user contexts"); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_middleClick.js b/browser/components/contextualidentity/test/browser/browser_middleClick.js deleted file mode 100644 index f3bed2b53..000000000 --- a/browser/components/contextualidentity/test/browser/browser_middleClick.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -const BASE_ORIGIN = "http://example.com"; -const URI = BASE_ORIGIN + - "/browser/browser/components/contextualidentity/test/browser/empty_file.html"; - -add_task(function* () { - info("Opening a new container tab..."); - - let tab = gBrowser.addTab(URI, { userContextId: 1 }); - gBrowser.selectedTab = tab; - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - - info("Create a HTMLAnchorElement..."); - yield ContentTask.spawn(browser, URI, - function(URI) { - let anchor = content.document.createElement("a"); - anchor.setAttribute('id', 'clickMe'); - anchor.setAttribute("href", URI); - anchor.appendChild(content.document.createTextNode("click me!")); - content.document.body.appendChild(anchor); - } - ); - - info("Synthesize a mouse click and wait for a new tab..."); - let newTab = yield new Promise((resolve, reject) => { - gBrowser.tabContainer.addEventListener("TabOpen", function onTabOpen(openEvent) { - gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen); - resolve(openEvent.target); - }) - - BrowserTestUtils.synthesizeMouseAtCenter("#clickMe", { button: 1 }, browser); - }); - - is(newTab.getAttribute("usercontextid"), 1, "Correct UserContextId?"); - - yield BrowserTestUtils.removeTab(tab); - yield BrowserTestUtils.removeTab(newTab); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_newtabButton.js b/browser/components/contextualidentity/test/browser/browser_newtabButton.js deleted file mode 100644 index 228e6f971..000000000 --- a/browser/components/contextualidentity/test/browser/browser_newtabButton.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -// Testing that when the user opens the add tab menu and clicks menu items -// the correct context id is opened - -add_task(function* test() { - yield SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true] - ]}); - - let newTab = document.getElementById('tabbrowser-tabs'); - let newTabButton = document.getAnonymousElementByAttribute(newTab, "anonid", "tabs-newtab-button"); - ok(newTabButton, "New tab button exists"); - ok(!newTabButton.hidden, "New tab button is visible"); - yield BrowserTestUtils.waitForCondition(() => !!document.getAnonymousElementByAttribute(newTab, "anonid", "newtab-popup"), "Wait for popup to exist"); - let popup = document.getAnonymousElementByAttribute(newTab, "anonid", "newtab-popup"); - - for (let i = 1; i <= 4; i++) { - let popupShownPromise = BrowserTestUtils.waitForEvent(popup, "popupshown"); - EventUtils.synthesizeMouseAtCenter(newTabButton, {type: "mousedown"}); - - yield popupShownPromise; - let contextIdItem = popup.querySelector(`menuitem[data-usercontextid="${i}"]`); - - ok(contextIdItem, `User context id ${i} exists`); - - let waitForTabPromise = BrowserTestUtils.waitForNewTab(gBrowser); - EventUtils.synthesizeMouseAtCenter(contextIdItem, {}); - - let tab = yield waitForTabPromise; - - is(tab.getAttribute('usercontextid'), i, `New tab has UCI equal ${i}`); - yield BrowserTestUtils.removeTab(tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_serviceworkers.js b/browser/components/contextualidentity/test/browser/browser_serviceworkers.js deleted file mode 100644 index b074b91ac..000000000 --- a/browser/components/contextualidentity/test/browser/browser_serviceworkers.js +++ /dev/null @@ -1,108 +0,0 @@ -let { classes: Cc, interfaces: Ci } = Components; - -let swm = Cc["@mozilla.org/serviceworkers/manager;1"]. - getService(Ci.nsIServiceWorkerManager); - -const BASE_ORIGIN = "https://example.com"; -const URI = BASE_ORIGIN + - "/browser/browser/components/contextualidentity/test/browser/serviceworker.html"; -const NUM_USER_CONTEXTS = 3; - -// opens `uri' in a new tab with the provided userContextId and focuses it. -// returns the newly opened tab -function openTabInUserContext(uri, userContextId) { - // open the tab in the correct userContextId - let tab = gBrowser.addTab(uri, {userContextId}); - - // select tab and make sure its browser is focused - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - return tab; -} - -add_task(function* setup() { - // make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true], - ["dom.serviceWorkers.enabled", true], - ["dom.serviceWorkers.openWindow.enabled", true], - ["dom.ipc.processCount", 1] - ]}, resolve); - }); -}); - -let infos = []; - -add_task(function* test() { - // Open the same URI in multiple user contexts, and make sure we have a - // separate service worker in each of the contexts - for (let userContextId = 0; userContextId < NUM_USER_CONTEXTS; userContextId++) { - // Open a tab in given user contexts - let tab = openTabInUserContext(URI, userContextId); - - // wait for tab load - yield BrowserTestUtils.browserLoaded(gBrowser.getBrowserForTab(tab)); - - // remove the tab - gBrowser.removeTab(tab); - } - - if (!allRegistered()) { - yield promiseAllRegistered(); - } - ok(true, "all service workers are registered"); - - // Unregistered all service workers added in this test - for (let info of infos) { - yield promiseUnregister(info); - } -}); - -function allRegistered() { - let results = []; - let registrations = swm.getAllRegistrations(); - for (let i = 0; i < registrations.length; i++) { - let info = registrations.queryElementAt(i, Ci.nsIServiceWorkerRegistrationInfo); - let principal = info.principal; - if (principal.originNoSuffix === BASE_ORIGIN) { - results[principal.userContextId] = true; - infos[principal.userContextId] = info; - } - } - for (let userContextId = 0; userContextId < NUM_USER_CONTEXTS; userContextId++) { - if (!results[userContextId]) { - return false; - } - } - return true; -} - -function promiseAllRegistered() { - return new Promise(function(resolve) { - let listener = { - onRegister: function() { - if (allRegistered()) { - swm.removeListener(listener); - resolve(); - } - } - } - swm.addListener(listener); - }); -} - -function promiseUnregister(info) { - return new Promise(function(resolve) { - swm.unregister(info.principal, { - unregisterSucceeded: function(aState) { - ok(aState, "ServiceWorkerRegistration exists"); - resolve(); - }, - unregisterFailed: function(aState) { - ok(false, "unregister should succeed"); - } - }, info.scope); - }); -} diff --git a/browser/components/contextualidentity/test/browser/browser_usercontext.js b/browser/components/contextualidentity/test/browser/browser_usercontext.js deleted file mode 100644 index e0e785d3f..000000000 --- a/browser/components/contextualidentity/test/browser/browser_usercontext.js +++ /dev/null @@ -1,86 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - - -const USER_CONTEXTS = [ - "default", - "personal", - "work", -]; - -const BASE_URI = "http://mochi.test:8888/browser/browser/components/" - + "contextualidentity/test/browser/file_reflect_cookie_into_title.html"; - - -// opens `uri' in a new tab with the provided userContextId and focuses it. -// returns the newly opened tab -function openTabInUserContext(uri, userContextId) { - // open the tab in the correct userContextId - let tab = gBrowser.addTab(uri, {userContextId}); - - // select tab and make sure its browser is focused - gBrowser.selectedTab = tab; - tab.ownerGlobal.focus(); - - return tab; -} - -add_task(function* setup() { - // make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true], - ["dom.ipc.processCount", 1] - ]}, resolve); - }); -}); - -add_task(function* test() { - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // load the page in 3 different contexts and set a cookie - // which should only be visible in that context - let cookie = USER_CONTEXTS[userContextId]; - - // open our tab in the given user context - let tab = openTabInUserContext(BASE_URI+"?"+cookie, userContextId); - - // wait for tab load - yield BrowserTestUtils.browserLoaded(gBrowser.getBrowserForTab(tab)); - - // remove the tab - gBrowser.removeTab(tab); - } - - { - // Set a cookie in a different context so we can detect if that affects - // cross-context properly. If we don't do that, we get an UNEXPECTED-PASS - // for the localStorage case for the last tab we set. - let tab = openTabInUserContext(BASE_URI+"?foo", 9999); - yield BrowserTestUtils.browserLoaded(gBrowser.getBrowserForTab(tab)); - gBrowser.removeTab(tab); - } - - for (let userContextId of Object.keys(USER_CONTEXTS)) { - // Load the page without setting the cookie this time - let expectedContext = USER_CONTEXTS[userContextId]; - - let tab = openTabInUserContext(BASE_URI, userContextId); - - // wait for load - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - - // get the title - let title = browser.contentDocument.title.trim().split("|"); - - // check each item in the title and validate it meets expectatations - for (let part of title) { - let [storageMethodName, value] = part.split("="); - is(value, expectedContext, - "the title reflects the expected contextual identity of " + - expectedContext + " for method " + storageMethodName + ": " + value); - } - - gBrowser.removeTab(tab); - } -}); diff --git a/browser/components/contextualidentity/test/browser/browser_usercontextid_tabdrop.js b/browser/components/contextualidentity/test/browser/browser_usercontextid_tabdrop.js deleted file mode 100644 index 6a8fbc591..000000000 --- a/browser/components/contextualidentity/test/browser/browser_usercontextid_tabdrop.js +++ /dev/null @@ -1,134 +0,0 @@ -"use strict"; - -let EventUtils = {}; -Services.scriptloader.loadSubScript("chrome://mochikit/content/tests/SimpleTest/EventUtils.js", EventUtils); - -/** - * Dragging an URL to a tab without userContextId set. - */ -add_task(function* () { - let tab = gBrowser.addTab("http://example.com/"); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - let awaitDrop = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "drop"); - let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, "http://test1.example.com/"); - - // A drop type of "link" onto an existing tab would normally trigger a - // load in that same tab, but tabbrowser code in _getDragTargetTab treats - // drops on the outer edges of a tab differently (loading a new tab - // instead). Make events created by synthesizeDrop have all of their - // coordinates set to 0 (screenX/screenY), so they're treated as drops - // on the outer edge of the tab, thus they open new tabs. - let event = { - clientX: 0, - clientY: 0, - screenX: 0, - screenY: 0, - }; - EventUtils.synthesizeDrop(tab, tab, [[{type: "text/plain", data: "http://test1.example.com/"}]], "link", window, undefined, event); - - yield awaitDrop; - - let tab2 = yield newTabPromise; - Assert.ok(!tab2.hasAttribute("usercontextid"), "Tab shouldn't have usercontextid attribute"); - - yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - - yield ContentTask.spawn(tab2.linkedBrowser, {}, function* () { - Assert.equal(content.document.documentURI, "http://test1.example.com/"); - Assert.equal(content.document.nodePrincipal.originAttributes.userContextId, 0); - - // referrer is empty when urls are dragged to new or existing tabs. - // If this changes in the future, it would be okay to send the referrer - // in this case because we are creating a new tab with the default - // usercontextid as the original tab. - Assert.equal(content.document.referrer, "", "referrer should be empty"); - }); - - yield BrowserTestUtils.removeTab(tab); - yield BrowserTestUtils.removeTab(tab2); -}); - -/** - * When dragging an URL to a new tab, the new tab should have the same - * userContextId as the original tab. - */ -add_task(function* () { - let tab = gBrowser.addTab("http://example.com/", {userContextId: 1}); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - let awaitDrop = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "drop"); - let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, "http://test1.example.com/"); - - // A drop type of "link" onto an existing tab would normally trigger a - // load in that same tab, but tabbrowser code in _getDragTargetTab treats - // drops on the outer edges of a tab differently (loading a new tab - // instead). Make events created by synthesizeDrop have all of their - // coordinates set to 0 (screenX/screenY), so they're treated as drops - // on the outer edge of the tab, thus they open new tabs. - let event = { - clientX: 0, - clientY: 0, - screenX: 0, - screenY: 0, - }; - EventUtils.synthesizeDrop(tab, tab, [[{type: "text/plain", data: "http://test1.example.com/"}]], "link", window, undefined, event); - - yield awaitDrop; - - let tab2 = yield newTabPromise; - Assert.equal(tab2.getAttribute("usercontextid"), 1); - - yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - - yield ContentTask.spawn(tab2.linkedBrowser, {}, function* () { - Assert.equal(content.document.documentURI, "http://test1.example.com/"); - Assert.equal(content.document.nodePrincipal.originAttributes.userContextId, 1); - - // referrer is empty when urls are dragged to new or existing tabs. - // If this changes in the future, it would be okay to send the referrer - // in this case because we are creating a new tab with the same - // usercontextid as the original tab. - Assert.equal(content.document.referrer, "", "referrer should be empty"); - }); - - yield BrowserTestUtils.removeTab(tab); - yield BrowserTestUtils.removeTab(tab2); -}); - -/** - * When dragging a URL from one tab or link on a tab to an existing tab, the - * existing tab should not change its userContextId. - * Ex: if you drag a link from tab 1 with userContext 1 to tab 2 with - * userContext 2, the link will open in tab 2 with userContext 2. - */ -add_task(function* () { - let tab = gBrowser.addTab("http://example.com/", {userContextId: 1}); - yield BrowserTestUtils.browserLoaded(tab.linkedBrowser); - - let tab2 = gBrowser.addTab("http://example.org/", {userContextId: 2}); - yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - - let awaitDrop = BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "drop"); - - EventUtils.synthesizeDrop(tab, tab2, [[{type: "text/plain", data: "http://test1.example.com/"}]], "link", window); - - yield awaitDrop; - Assert.equal(tab2.getAttribute("usercontextid"), 2); - - yield BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - - yield ContentTask.spawn(tab2.linkedBrowser, {}, function* () { - Assert.equal(content.document.documentURI, "http://test1.example.com/"); - Assert.equal(content.document.nodePrincipal.originAttributes.userContextId, 2); - - // referrer is empty when urls are dragged to new or existing tabs. - // If this changes in the future, we should ensure that we are not sending - // a referrer for this case! When opening links across user contexts, we - // don't want the referrer to follow the user from one context to another. - Assert.equal(content.document.referrer, "", "referrer should be empty"); - }); - - yield BrowserTestUtils.removeTab(tab); - yield BrowserTestUtils.removeTab(tab2); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_windowName.js b/browser/components/contextualidentity/test/browser/browser_windowName.js deleted file mode 100644 index 555c421ce..000000000 --- a/browser/components/contextualidentity/test/browser/browser_windowName.js +++ /dev/null @@ -1,74 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - - -const USER_CONTEXTS = [ - "default", - "personal", - "work", -]; - -const BASE_URI = "http://mochi.test:8888/browser/browser/components/" - + "contextualidentity/test/browser/empty_file.html"; - -add_task(function* setup() { - // make sure userContext is enabled. - yield new Promise(resolve => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true], - ["browser.link.open_newwindow", 3], - ]}, resolve); - }); -}); - -add_task(function* test() { - info("Creating first tab..."); - let tab1 = gBrowser.addTab(BASE_URI + '?old', {userContextId: 1}); - let browser1 = gBrowser.getBrowserForTab(tab1); - yield BrowserTestUtils.browserLoaded(browser1); - yield ContentTask.spawn(browser1, null, function(opts) { - content.window.name = 'tab-1'; - }); - - info("Creating second tab..."); - let tab2 = gBrowser.addTab(BASE_URI + '?old', {userContextId: 2}); - let browser2 = gBrowser.getBrowserForTab(tab2); - yield BrowserTestUtils.browserLoaded(browser2); - yield ContentTask.spawn(browser2, null, function(opts) { - content.window.name = 'tab-2'; - }); - - // Let's try to open a window from tab1 with a name 'tab-2'. - info("Opening a window from the first tab..."); - yield ContentTask.spawn(browser1, { url: BASE_URI + '?new' }, function* (opts) { - yield (new content.window.wrappedJSObject.Promise(resolve => { - let w = content.window.wrappedJSObject.open(opts.url, 'tab-2'); - w.onload = function() { resolve(); } - })); - }); - - is(browser1.contentTitle, '?old', "Tab1 title must be 'old'"); - is(browser1.contentPrincipal.userContextId, 1, "Tab1 UCI must be 1"); - - is(browser2.contentTitle, '?old', "Tab2 title must be 'old'"); - is(browser2.contentPrincipal.userContextId, 2, "Tab2 UCI must be 2"); - - let found = false; - for (let i = 0; i < gBrowser.tabContainer.childNodes.length; ++i) { - let tab = gBrowser.tabContainer.childNodes[i]; - let browser = gBrowser.getBrowserForTab(tab); - if (browser.contentTitle == '?new') { - is(browser.contentPrincipal.userContextId, 1, "Tab3 UCI must be 1"); - isnot(browser, browser1, "Tab3 is not browser 1"); - isnot(browser, browser2, "Tab3 is not browser 2"); - gBrowser.removeTab(tab); - found = true; - break; - } - } - - ok(found, "We have tab3"); - - gBrowser.removeTab(tab1); - gBrowser.removeTab(tab2); -}); diff --git a/browser/components/contextualidentity/test/browser/browser_windowOpen.js b/browser/components/contextualidentity/test/browser/browser_windowOpen.js deleted file mode 100644 index 00c6e0aa0..000000000 --- a/browser/components/contextualidentity/test/browser/browser_windowOpen.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -// Here we want to test that a new opened window shows the same UI of the -// parent one if this has been loaded from a particular container. - -const BASE_URI = "http://mochi.test:8888/browser/browser/components/" - + "contextualidentity/test/browser/empty_file.html"; - -add_task(function* setup() { - yield new Promise((resolve) => { - SpecialPowers.pushPrefEnv({"set": [ - ["privacy.userContext.enabled", true], - ["browser.link.open_newwindow", 2], - ]}, resolve); - }); -}); - - -add_task(function* test() { - info("Creating a tab with UCI = 1..."); - let tab = gBrowser.addTab(BASE_URI, {userContextId: 1}); - is(tab.getAttribute('usercontextid'), 1, "New tab has UCI equal 1"); - - let browser = gBrowser.getBrowserForTab(tab); - yield BrowserTestUtils.browserLoaded(browser); - - info("Opening a new window from this tab..."); - ContentTask.spawn(browser, BASE_URI, function(url) { - content.window.newWindow = content.window.open(url, "_blank"); - }); - - let newWin = yield BrowserTestUtils.waitForNewWindow(); - let newTab = newWin.gBrowser.selectedTab; - - yield BrowserTestUtils.browserLoaded(newTab.linkedBrowser); - is(newTab.getAttribute('usercontextid'), 1, "New tab has UCI equal 1"); - - info("Closing the new window and tab..."); - yield BrowserTestUtils.closeWindow(newWin); - yield BrowserTestUtils.removeTab(tab); -}); diff --git a/browser/components/contextualidentity/test/browser/empty_file.html b/browser/components/contextualidentity/test/browser/empty_file.html deleted file mode 100644 index c6d11dcd5..000000000 --- a/browser/components/contextualidentity/test/browser/empty_file.html +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/browser/components/contextualidentity/test/browser/favicon-normal32.png b/browser/components/contextualidentity/test/browser/favicon-normal32.png deleted file mode 100644 index 5535363c9..000000000 Binary files a/browser/components/contextualidentity/test/browser/favicon-normal32.png and /dev/null differ diff --git a/browser/components/contextualidentity/test/browser/file_reflect_cookie_into_title.html b/browser/components/contextualidentity/test/browser/file_reflect_cookie_into_title.html deleted file mode 100644 index b04f3fd5c..000000000 --- a/browser/components/contextualidentity/test/browser/file_reflect_cookie_into_title.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - title not set - - - - - diff --git a/browser/components/contextualidentity/test/browser/file_set_storages.html b/browser/components/contextualidentity/test/browser/file_set_storages.html deleted file mode 100644 index c6adcbdde..000000000 --- a/browser/components/contextualidentity/test/browser/file_set_storages.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - Bug 1238183 - - - - - diff --git a/browser/components/contextualidentity/test/browser/serviceworker.html b/browser/components/contextualidentity/test/browser/serviceworker.html deleted file mode 100644 index 11edd001a..000000000 --- a/browser/components/contextualidentity/test/browser/serviceworker.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - This is a test page. - - diff --git a/browser/components/contextualidentity/test/browser/worker.js b/browser/components/contextualidentity/test/browser/worker.js deleted file mode 100644 index 2aba167d1..000000000 --- a/browser/components/contextualidentity/test/browser/worker.js +++ /dev/null @@ -1 +0,0 @@ -// empty worker, always succeed! -- cgit v1.2.3