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_contextMenus_srcUrl_redirect.js | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 browser/components/extensions/test/browser/browser_ext_contextMenus_srcUrl_redirect.js (limited to 'browser/components/extensions/test/browser/browser_ext_contextMenus_srcUrl_redirect.js') diff --git a/browser/components/extensions/test/browser/browser_ext_contextMenus_srcUrl_redirect.js b/browser/components/extensions/test/browser/browser_ext_contextMenus_srcUrl_redirect.js new file mode 100644 index 0000000000..2d00ca356a --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_contextMenus_srcUrl_redirect.js @@ -0,0 +1,69 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +add_task(async function test_srcUrl_of_redirected_image() { + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + permissions: ["contextMenus"], + }, + background() { + browser.contextMenus.onClicked.addListener(info => { + browser.test.assertEq( + "before_redir", + info.menuItemId, + "Expected menu item matched for pre-redirect URL" + ); + browser.test.assertEq("image", info.mediaType, "Expected mediaType"); + browser.test.assertEq( + "http://mochi.test:8888/browser/browser/components/extensions/test/browser/redirect_to.sjs?ctxmenu-image.png", + info.srcUrl, + "Expected srcUrl" + ); + browser.test.sendMessage("contextMenus_onClicked"); + }); + browser.contextMenus.create({ + id: "before_redir", + title: "MyMenu", + targetUrlPatterns: ["*://*/*redirect_to.sjs*"], + }); + browser.contextMenus.create( + { + id: "after_redir", + title: "MyMenu", + targetUrlPatterns: ["*://*/*/ctxmenu-image.png*"], + }, + () => { + browser.test.sendMessage("menus_setup"); + } + ); + }, + }); + await extension.startup(); + await extension.awaitMessage("menus_setup"); + + await BrowserTestUtils.withNewTab( + { + gBrowser, + url: "http://mochi.test:8888/browser/browser/components/extensions/test/browser/context_with_redirect.html", + }, + async browser => { + // Verify that the image has been loaded, which implies that the redirect has + // been followed. + let imgWidth = await SpecialPowers.spawn(browser, [], () => { + let img = content.document.getElementById("img_that_redirects"); + return img.naturalWidth; + }); + is(imgWidth, 100, "Image has been loaded"); + + let menu = await openContextMenu("#img_that_redirects"); + let items = menu.getElementsByAttribute("label", "MyMenu"); + is(items.length, 1, "Only one menu item should have been matched"); + + await closeExtensionContextMenu(items[0]); + await extension.awaitMessage("contextMenus_onClicked"); + } + ); + + await extension.unload(); +}); -- cgit v1.2.3