From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser_ext_tabs_incognito_not_allowed.js | 155 +++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_tabs_incognito_not_allowed.js (limited to 'browser/components/extensions/test/browser/browser_ext_tabs_incognito_not_allowed.js') diff --git a/browser/components/extensions/test/browser/browser_ext_tabs_incognito_not_allowed.js b/browser/components/extensions/test/browser/browser_ext_tabs_incognito_not_allowed.js new file mode 100644 index 0000000000..e998f64afc --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_tabs_incognito_not_allowed.js @@ -0,0 +1,155 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +add_task(async function testExecuteScriptIncognitoNotAllowed() { + const url = + "http://mochi.test:8888/browser/browser/components/extensions/test/browser/file_iframe_document.html"; + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + // captureTab requires all_urls permission + permissions: ["", "tabs", "tabHide"], + }, + background() { + browser.test.onMessage.addListener(async pbw => { + // expect one tab from the non-pb window + let tabs = await browser.tabs.query({ windowId: pbw.windowId }); + browser.test.assertEq( + 0, + tabs.length, + "unable to query tabs in private window" + ); + tabs = await browser.tabs.query({ active: true }); + browser.test.assertEq( + 1, + tabs.length, + "unable to query active tab in private window" + ); + browser.test.assertTrue( + tabs[0].windowId != pbw.windowId, + "unable to query active tab in private window" + ); + + // apis that take a tabId + let tabIdAPIs = [ + "captureTab", + "detectLanguage", + "duplicate", + "get", + "hide", + "reload", + "getZoomSettings", + "getZoom", + "toggleReaderMode", + ]; + for (let name of tabIdAPIs) { + await browser.test.assertRejects( + browser.tabs[name](pbw.tabId), + /Invalid tab ID/, + `should not be able to ${name}` + ); + } + await browser.test.assertRejects( + browser.tabs.captureVisibleTab(pbw.windowId), + /Invalid window ID/, + "should not be able to duplicate" + ); + await browser.test.assertRejects( + browser.tabs.create({ + windowId: pbw.windowId, + url: "http://mochi.test/", + }), + /Invalid window ID/, + "unable to create tab in private window" + ); + await browser.test.assertRejects( + browser.tabs.executeScript(pbw.tabId, { code: "document.URL" }), + /Invalid tab ID/, + "should not be able to executeScript" + ); + let currentTab = await browser.tabs.getCurrent(); + browser.test.assertTrue( + !currentTab, + "unable to get current tab in private window" + ); + await browser.test.assertRejects( + browser.tabs.highlight({ windowId: pbw.windowId, tabs: [pbw.tabId] }), + /Invalid window ID/, + "should not be able to highlight" + ); + await browser.test.assertRejects( + browser.tabs.insertCSS(pbw.tabId, { + code: "* { background: rgb(42, 42, 42) }", + }), + /Invalid tab ID/, + "should not be able to insertCSS" + ); + await browser.test.assertRejects( + browser.tabs.move(pbw.tabId, { + index: 0, + windowId: tabs[0].windowId, + }), + /Invalid tab ID/, + "unable to move tab to private window" + ); + await browser.test.assertRejects( + browser.tabs.move(tabs[0].id, { index: 0, windowId: pbw.windowId }), + /Invalid window ID/, + "unable to move tab to private window" + ); + await browser.test.assertRejects( + browser.tabs.printPreview(), + /Cannot access activeTab/, + "unable to printpreview tab" + ); + await browser.test.assertRejects( + browser.tabs.removeCSS(pbw.tabId, {}), + /Invalid tab ID/, + "unable to remove tab css" + ); + await browser.test.assertRejects( + browser.tabs.sendMessage(pbw.tabId, "test"), + /Could not establish connection/, + "unable to sendmessage" + ); + await browser.test.assertRejects( + browser.tabs.setZoomSettings(pbw.tabId, {}), + /Invalid tab ID/, + "should not be able to set zoom settings" + ); + await browser.test.assertRejects( + browser.tabs.setZoom(pbw.tabId, 3), + /Invalid tab ID/, + "should not be able to set zoom" + ); + await browser.test.assertRejects( + browser.tabs.update(pbw.tabId, {}), + /Invalid tab ID/, + "should not be able to update tab" + ); + await browser.test.assertRejects( + browser.tabs.moveInSuccession([pbw.tabId], tabs[0].id), + /Invalid tab ID/, + "should not be able to moveInSuccession" + ); + await browser.test.assertRejects( + browser.tabs.moveInSuccession([tabs[0].id], pbw.tabId), + /Invalid tab ID/, + "should not be able to moveInSuccession" + ); + + browser.test.notifyPass("pass"); + }); + }, + }); + + let winData = await getIncognitoWindow(url); + await extension.startup(); + + extension.sendMessage(winData.details); + + await extension.awaitFinish("pass"); + await BrowserTestUtils.closeWindow(winData.win); + await extension.unload(); +}); -- cgit v1.2.3