From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test/xpcshell/test_ext_csp_upgrade_requests.js | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js (limited to 'toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js') diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js b/toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js new file mode 100644 index 0000000000..6780293f04 --- /dev/null +++ b/toolkit/components/extensions/test/xpcshell/test_ext_csp_upgrade_requests.js @@ -0,0 +1,74 @@ +"use strict"; + +const server = createHttpServer({ hosts: ["example.com"] }); +server.registerPathHandler("/", (req, res) => { + res.write("ok"); +}); + +add_setup(async () => { + Services.prefs.setBoolPref("extensions.manifestV3.enabled", true); +}); + +add_task(async function test_csp_upgrade() { + async function background() { + browser.webRequest.onBeforeRequest.addListener( + details => { + browser.test.assertEq( + details.url, + "https://example.com/", + "request upgraded and sent" + ); + browser.test.notifyPass(); + return { cancel: true }; + }, + { + urls: ["https://example.com/*"], + }, + ["blocking"] + ); + + await browser.test.assertRejects( + fetch("http://example.com/"), + "NetworkError when attempting to fetch resource.", + "request was upgraded" + ); + } + let extension = ExtensionTestUtils.loadExtension({ + background, + temporarilyInstalled: true, + manifest: { + manifest_version: 3, + granted_host_permissions: true, + host_permissions: ["*://example.com/*"], + permissions: ["webRequest", "webRequestBlocking"], + }, + }); + await extension.startup(); + await extension.awaitFinish(); + await extension.unload(); +}); + +add_task(async function test_csp_noupgrade() { + async function background() { + let req = await fetch("http://example.com/"); + browser.test.assertEq( + req.url, + "http://example.com/", + "request not upgraded" + ); + browser.test.notifyPass(); + } + let extension = ExtensionTestUtils.loadExtension({ + background, + temporarilyInstalled: true, + allowInsecureRequests: true, + manifest: { + manifest_version: 3, + granted_host_permissions: true, + host_permissions: ["*://example.com/*"], + }, + }); + await extension.startup(); + await extension.awaitFinish(); + await extension.unload(); +}); -- cgit v1.2.3