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 --- ...owser_identityPopup_clearSiteData_extensions.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 browser/base/content/test/siteIdentity/browser_identityPopup_clearSiteData_extensions.js (limited to 'browser/base/content/test/siteIdentity/browser_identityPopup_clearSiteData_extensions.js') diff --git a/browser/base/content/test/siteIdentity/browser_identityPopup_clearSiteData_extensions.js b/browser/base/content/test/siteIdentity/browser_identityPopup_clearSiteData_extensions.js new file mode 100644 index 0000000000..2d0d9f7068 --- /dev/null +++ b/browser/base/content/test/siteIdentity/browser_identityPopup_clearSiteData_extensions.js @@ -0,0 +1,80 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +/* + * Test for Bug 1661534 - Extension page: "Clear Cookies and Site Data" + * does nothing. + * + * Expected behavior: when viewing a page controlled by a WebExtension, + * the "Clear Cookies and Site Data..." button should not be visible. + */ + +add_task(async function testClearSiteDataFooterHiddenForExtensions() { + // Create an extension that opens an options page + let extension = ExtensionTestUtils.loadExtension({ + useAddonManager: "temporary", + + manifest: { + permissions: ["tabs"], + options_ui: { + page: "options.html", + open_in_tab: true, + }, + }, + files: { + "options.html": ` + + + + + +

This is a test options page for a WebExtension

+ + `, + }, + async background() { + await browser.runtime.openOptionsPage(); + browser.test.sendMessage("optionsopened"); + }, + }); + + // Run the extension and wait until its options page has finished loading + let browser = gBrowser.selectedBrowser; + let browserLoadedPromise = BrowserTestUtils.browserLoaded(browser); + await extension.startup(); + await extension.awaitMessage("optionsopened"); + await browserLoadedPromise; + + await SpecialPowers.spawn(browser, [], () => { + ok( + content.document.documentURI.startsWith("moz-extension://"), + "Extension page has now finished loading in the browser window" + ); + }); + + // Open the site identity popup + let { gIdentityHandler } = gBrowser.ownerGlobal; + let promisePanelOpen = BrowserTestUtils.waitForEvent( + gBrowser.ownerGlobal, + "popupshown", + true, + event => event.target == gIdentityHandler._identityPopup + ); + gIdentityHandler._identityIconBox.click(); + await promisePanelOpen; + + let clearSiteDataFooter = document.getElementById( + "identity-popup-clear-sitedata-footer" + ); + + ok( + clearSiteDataFooter.hidden, + "The clear site data footer is hidden on a WebExtension page." + ); + + // Unload the extension + await extension.unload(); +}); -- cgit v1.2.3