Loading browser/components/downloads/test/unit/test_DownloadsViewableInternally.js +56 −33 Original line number Diff line number Diff line Loading @@ -3,10 +3,12 @@ const PREF_SVG_DISABLED = "svg.disabled"; const PREF_WEBP_ENABLED = "image.webp.enabled"; const PREF_AVIF_ENABLED = "image.avif.enabled"; const PDF_MIME = "application/pdf"; const OCTET_MIME = "application/octet-stream"; const XML_MIME = "text/xml"; const SVG_MIME = "image/svg+xml"; const AVIF_MIME = "image/avif"; const WEBP_MIME = "image/webp"; const { Integration } = ChromeUtils.import( Loading Loading @@ -70,37 +72,46 @@ function checkWasRegistered(ext, expectedWasRegistered) { } function checkAll(mime, ext, expected) { checkPreferInternal(mime, ext, expected); checkPreferInternal(mime, ext, expected && ext != "xml" && ext != "svg"); checkShouldView(mime, ext, expected); if (ext != "xml" && ext != "svg") { checkWasRegistered(ext, expected); } } add_task(async function test_viewable_internally() { Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml , svg,webp"); Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml , svg,avif,webp"); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); Services.prefs.setBoolPref(PREF_WEBP_ENABLED, true); Services.prefs.setBoolPref(PREF_AVIF_ENABLED, true); checkAll(XML_MIME, "xml", false); checkAll(SVG_MIME, "svg", false); checkAll(WEBP_MIME, "webp", false); checkAll(AVIF_MIME, "avif", false); DownloadsViewableInternally.register(); checkAll(XML_MIME, "xml", true); checkAll(SVG_MIME, "svg", true); checkAll(WEBP_MIME, "webp", true); checkAll(AVIF_MIME, "avif", true); // Remove SVG so it won't be cleared Services.prefs.clearUserPref(PREF_BRANCH_WAS_REGISTERED + "svg"); // Remove webp so it won't be cleared Services.prefs.clearUserPref(PREF_BRANCH_WAS_REGISTERED + "webp"); // Disable xml and svg, check that xml becomes disabled Services.prefs.setCharPref(PREF_ENABLED_TYPES, "webp"); // Disable xml, avif and webp, check that avif becomes disabled Services.prefs.setCharPref(PREF_ENABLED_TYPES, "svg"); checkAll(XML_MIME, "xml", false); checkAll(WEBP_MIME, "webp", true); // (XML is externally managed, and we just cleared the webp pref) checkAll(XML_MIME, "xml", true); checkPreferInternal(WEBP_MIME, "webp", true); // SVG shouldn't be cleared checkPreferInternal(SVG_MIME, "svg", true); // Avif should be disabled checkAll(AVIF_MIME, "avif", false); // SVG shouldn't be cleared as it's still enabled checkAll(SVG_MIME, "svg", true); Assert.ok( shouldView(PDF_MIME), Loading @@ -116,14 +127,16 @@ add_task(async function test_viewable_internally() { ); Assert.ok(!shouldView(OCTET_MIME, "exe"), ".exe shouldn't be accepted"); Assert.ok(!shouldView(XML_MIME), "text/xml should be disabled by pref"); Assert.ok(!shouldView(SVG_MIME), "image/xml+svg should be disabled by pref"); Assert.ok(!shouldView(WEBP_MIME), "imave/webp should be disabled by pref"); Assert.ok(!shouldView(AVIF_MIME), "image/avif should be disabled by pref"); // Enable, check that everything is enabled again Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml,svg,webp"); Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml,svg,webp,avif"); checkPreferInternal(XML_MIME, "xml", true); checkPreferInternal(SVG_MIME, "svg", true); checkAll(XML_MIME, "xml", true); checkAll(SVG_MIME, "svg", true); checkPreferInternal(WEBP_MIME, "webp", true); checkPreferInternal(AVIF_MIME, "avif", true); Assert.ok( shouldView(PDF_MIME), Loading Loading @@ -160,18 +173,18 @@ add_task(async function test_viewable_internally() { Assert.equal(handler.alwaysAskBeforeHandling, ask); } // Enable viewable internally, XML should not be replaced, SVG and WebP should be saved. // Enable viewable internally, SVG and XML should not be replaced, WebP should be saved. Services.prefs.setCharPref(PREF_ENABLED_TYPES, "svg,webp,xml"); Assert.equal( Services.prefs.getIntPref(PREF_BRANCH_PREVIOUS_ACTION + "svg"), Ci.nsIHandlerInfo.saveToDisk, "svg action should be saved" Services.prefs.prefHasUserValue(PREF_BRANCH_PREVIOUS_ACTION + "svg"), false, "svg action should not be stored" ); Assert.equal( Services.prefs.getBoolPref(PREF_BRANCH_PREVIOUS_ASK + "svg"), true, "svg ask should be saved" Services.prefs.prefHasUserValue(PREF_BRANCH_PREVIOUS_ASK + "svg"), false, "svg ask should not be stored" ); Assert.equal( Services.prefs.getIntPref(PREF_BRANCH_PREVIOUS_ACTION + "webp"), Loading @@ -185,10 +198,10 @@ add_task(async function test_viewable_internally() { ); { let handler = MIMEService.getFromTypeAndExtension(XML_MIME, "xml"); let handler = MIMEService.getFromTypeAndExtension(SVG_MIME, "svg"); Assert.equal( handler.preferredAction, Ci.nsIHandlerInfo.useSystemDefault, Ci.nsIHandlerInfo.saveToDisk, "svg action should be preserved" ); Assert.equal( Loading @@ -198,27 +211,37 @@ add_task(async function test_viewable_internally() { ); // Clean up HandlerService.remove(handler); handler = MIMEService.getFromTypeAndExtension(XML_MIME, "xml"); Assert.equal( handler.preferredAction, Ci.nsIHandlerInfo.useSystemDefault, "xml action should be preserved" ); Assert.equal( !!handler.alwaysAskBeforeHandling, true, "xml ask should be preserved" ); // Clean up HandlerService.remove(handler); } // It should still be possible to view XML internally checkShouldView(XML_MIME, "xml", true); checkWasRegistered("xml", true); checkAll(SVG_MIME, "svg", true); checkAll(WEBP_MIME, "webp", true); // Disable SVG to test SVG enabled check (depends on the pref) Services.prefs.setBoolPref(PREF_SVG_DISABLED, true); // Should have restored the settings from above checkAll(SVG_MIME, "svg", false); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); { let handler = MIMEService.getFromTypeAndExtension(SVG_MIME, "svg"); Assert.equal(handler.preferredAction, Ci.nsIHandlerInfo.saveToDisk); Assert.equal(!!handler.alwaysAskBeforeHandling, true); // Clean up HandlerService.remove(handler); handler.preferredAction = Ci.nsIHandlerInfo.saveToDisk; handler.alwaysAskBeforeHandling = false; HandlerService.store(handler); } checkAll(SVG_MIME, "svg", false); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); checkAll(SVG_MIME, "svg", true); // Test WebP enabled check (depends on the pref) Loading dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js +6 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,11 @@ add_task(async function test_unblock_download_visible() { // Test Download an insecure svg and choose "Open with Firefox" add_task(async function download_open_insecure_SVG() { const mimeInfo = MIMEService.getFromTypeAndExtension("image/svg+xml", "svg"); mimeInfo.alwaysAskBeforeHandling = false; mimeInfo.preferredAction = mimeInfo.handleInternally; HandlerService.store(mimeInfo); for (let prefVal of [true, false]) { await SpecialPowers.pushPrefEnv({ set: [["browser.download.improvements_to_download_panel", prefVal]], Loading Loading @@ -331,4 +336,5 @@ add_task(async function download_open_insecure_SVG() { "A Blocked SVG can be opened internally" ); } HandlerService.remove(mimeInfo); }); uriloader/exthandler/tests/mochitest/browser.ini +15 −3 Original line number Diff line number Diff line Loading @@ -36,11 +36,16 @@ support-files = file_xml_attachment_binary_octet_stream.xml^headers^ file_xml_attachment_test.xml file_xml_attachment_test.xml^headers^ file_green.webp file_green.webp^headers^ [browser_download_preferred_action.js] support-files = mime_type_download.sjs [browser_download_privatebrowsing.js] [browser_download_skips_dialog.js] support-files = file_green.webp file_green.webp^headers^ [browser_download_spam_permissions.js] support-files = test_spammy_page.html Loading @@ -56,11 +61,11 @@ support-files = file_as.exe^headers^ [browser_filehandling_loop.js] [browser_launched_app_save_directory.js] # This test checks the save destination of the # open with app download on Windows, Linux and OS X. skip-if = (os == 'android') support-files = file_pdf_application_pdf.pdf file_pdf_application_pdf.pdf^headers^ file_green.webp file_green.webp^headers^ [browser_local_files_no_save_without_asking.js] support-files = file_pdf_binary_octet_stream.pdf Loading @@ -68,6 +73,13 @@ support-files = support-files = file_pdf_binary_octet_stream.pdf [browser_shows_where_to_save_dialog.js] support-files = file_green.webp file_green.webp^headers^ file_pdf_application_pdf.pdf file_pdf_application_pdf.pdf^headers^ file_txt_attachment_test.txt file_txt_attachment_test.txt^headers^ [browser_open_internal_choice_persistence.js] skip-if = apple_silicon # bug 1752482 Loading uriloader/exthandler/tests/mochitest/browser_download_open_with_internal_handler.js +17 −5 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ add_task(async function setup() { registerRestoreHandler("application/pdf", "pdf"); registerRestoreHandler("binary/octet-stream", "pdf"); registerRestoreHandler("application/unknown", "pdf"); registerRestoreHandler("image/webp", "webp"); }); /** Loading Loading @@ -572,18 +573,21 @@ add_task(async function test_check_open_with_external_then_internal() { */ add_task( async function test_internal_handler_hidden_with_viewable_internally_type() { await SpecialPowers.pushPrefEnv({ set: [["image.webp.enabled", true]], }); Services.telemetry.clearEvents(); const mimeInfosToRestore = alwaysAskForHandlingTypes({ "text/xml": "xml", "binary/octet-stream": "xml", "image/webp": "webp", }); for (let [file, checkDefault] of [ // The default for binary/octet-stream is changed by the PDF tests above, // this may change given bug 1659008, so I'm just ignoring the default for now. ["file_xml_attachment_binary_octet_stream.xml", false], ["file_xml_attachment_test.xml", true], ["file_green.webp", true], ]) { let dialogWindowPromise = BrowserTestUtils.domWindowOpenedAndLoaded(); let loadingTab = await BrowserTestUtils.openNewForegroundTab({ Loading @@ -608,13 +612,21 @@ add_task( checkTelemetry( "open " + file + " for viewable internal type", "ask", file == "file_xml_attachment_test.xml" ? "other" : "octetstream", file.endsWith(".webp") ? "other" : "octetstream", "attachment" ); ok(!internalHandlerRadio.hidden, "The option should be visible for XML"); let fileDesc = file.substring(file.lastIndexOf(".") + 1); ok( !internalHandlerRadio.hidden, `The option should be visible for ${fileDesc}` ); if (checkDefault) { ok(internalHandlerRadio.selected, "The option should be selected"); ok( internalHandlerRadio.selected, `The option should be selected for ${fileDesc}` ); } let dialog = doc.querySelector("#unknownContentType"); Loading uriloader/exthandler/tests/mochitest/browser_download_skips_dialog.js +2 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ add_task(async function skipDialogAndDownloadFile() { set: [ ["browser.download.improvements_to_download_panel", true], ["browser.download.useDownloadDir", true], ["image.webp.enabled", true], ], }); Loading @@ -26,7 +27,7 @@ add_task(async function skipDialogAndDownloadFile() { let loadingTab = await BrowserTestUtils.openNewForegroundTab({ gBrowser, opening: TEST_PATH + "file_image_svgxml.svg", opening: TEST_PATH + "file_green.webp", waitForLoad: false, waitForStateStop: true, }); Loading Loading
browser/components/downloads/test/unit/test_DownloadsViewableInternally.js +56 −33 Original line number Diff line number Diff line Loading @@ -3,10 +3,12 @@ const PREF_SVG_DISABLED = "svg.disabled"; const PREF_WEBP_ENABLED = "image.webp.enabled"; const PREF_AVIF_ENABLED = "image.avif.enabled"; const PDF_MIME = "application/pdf"; const OCTET_MIME = "application/octet-stream"; const XML_MIME = "text/xml"; const SVG_MIME = "image/svg+xml"; const AVIF_MIME = "image/avif"; const WEBP_MIME = "image/webp"; const { Integration } = ChromeUtils.import( Loading Loading @@ -70,37 +72,46 @@ function checkWasRegistered(ext, expectedWasRegistered) { } function checkAll(mime, ext, expected) { checkPreferInternal(mime, ext, expected); checkPreferInternal(mime, ext, expected && ext != "xml" && ext != "svg"); checkShouldView(mime, ext, expected); if (ext != "xml" && ext != "svg") { checkWasRegistered(ext, expected); } } add_task(async function test_viewable_internally() { Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml , svg,webp"); Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml , svg,avif,webp"); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); Services.prefs.setBoolPref(PREF_WEBP_ENABLED, true); Services.prefs.setBoolPref(PREF_AVIF_ENABLED, true); checkAll(XML_MIME, "xml", false); checkAll(SVG_MIME, "svg", false); checkAll(WEBP_MIME, "webp", false); checkAll(AVIF_MIME, "avif", false); DownloadsViewableInternally.register(); checkAll(XML_MIME, "xml", true); checkAll(SVG_MIME, "svg", true); checkAll(WEBP_MIME, "webp", true); checkAll(AVIF_MIME, "avif", true); // Remove SVG so it won't be cleared Services.prefs.clearUserPref(PREF_BRANCH_WAS_REGISTERED + "svg"); // Remove webp so it won't be cleared Services.prefs.clearUserPref(PREF_BRANCH_WAS_REGISTERED + "webp"); // Disable xml and svg, check that xml becomes disabled Services.prefs.setCharPref(PREF_ENABLED_TYPES, "webp"); // Disable xml, avif and webp, check that avif becomes disabled Services.prefs.setCharPref(PREF_ENABLED_TYPES, "svg"); checkAll(XML_MIME, "xml", false); checkAll(WEBP_MIME, "webp", true); // (XML is externally managed, and we just cleared the webp pref) checkAll(XML_MIME, "xml", true); checkPreferInternal(WEBP_MIME, "webp", true); // SVG shouldn't be cleared checkPreferInternal(SVG_MIME, "svg", true); // Avif should be disabled checkAll(AVIF_MIME, "avif", false); // SVG shouldn't be cleared as it's still enabled checkAll(SVG_MIME, "svg", true); Assert.ok( shouldView(PDF_MIME), Loading @@ -116,14 +127,16 @@ add_task(async function test_viewable_internally() { ); Assert.ok(!shouldView(OCTET_MIME, "exe"), ".exe shouldn't be accepted"); Assert.ok(!shouldView(XML_MIME), "text/xml should be disabled by pref"); Assert.ok(!shouldView(SVG_MIME), "image/xml+svg should be disabled by pref"); Assert.ok(!shouldView(WEBP_MIME), "imave/webp should be disabled by pref"); Assert.ok(!shouldView(AVIF_MIME), "image/avif should be disabled by pref"); // Enable, check that everything is enabled again Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml,svg,webp"); Services.prefs.setCharPref(PREF_ENABLED_TYPES, "xml,svg,webp,avif"); checkPreferInternal(XML_MIME, "xml", true); checkPreferInternal(SVG_MIME, "svg", true); checkAll(XML_MIME, "xml", true); checkAll(SVG_MIME, "svg", true); checkPreferInternal(WEBP_MIME, "webp", true); checkPreferInternal(AVIF_MIME, "avif", true); Assert.ok( shouldView(PDF_MIME), Loading Loading @@ -160,18 +173,18 @@ add_task(async function test_viewable_internally() { Assert.equal(handler.alwaysAskBeforeHandling, ask); } // Enable viewable internally, XML should not be replaced, SVG and WebP should be saved. // Enable viewable internally, SVG and XML should not be replaced, WebP should be saved. Services.prefs.setCharPref(PREF_ENABLED_TYPES, "svg,webp,xml"); Assert.equal( Services.prefs.getIntPref(PREF_BRANCH_PREVIOUS_ACTION + "svg"), Ci.nsIHandlerInfo.saveToDisk, "svg action should be saved" Services.prefs.prefHasUserValue(PREF_BRANCH_PREVIOUS_ACTION + "svg"), false, "svg action should not be stored" ); Assert.equal( Services.prefs.getBoolPref(PREF_BRANCH_PREVIOUS_ASK + "svg"), true, "svg ask should be saved" Services.prefs.prefHasUserValue(PREF_BRANCH_PREVIOUS_ASK + "svg"), false, "svg ask should not be stored" ); Assert.equal( Services.prefs.getIntPref(PREF_BRANCH_PREVIOUS_ACTION + "webp"), Loading @@ -185,10 +198,10 @@ add_task(async function test_viewable_internally() { ); { let handler = MIMEService.getFromTypeAndExtension(XML_MIME, "xml"); let handler = MIMEService.getFromTypeAndExtension(SVG_MIME, "svg"); Assert.equal( handler.preferredAction, Ci.nsIHandlerInfo.useSystemDefault, Ci.nsIHandlerInfo.saveToDisk, "svg action should be preserved" ); Assert.equal( Loading @@ -198,27 +211,37 @@ add_task(async function test_viewable_internally() { ); // Clean up HandlerService.remove(handler); handler = MIMEService.getFromTypeAndExtension(XML_MIME, "xml"); Assert.equal( handler.preferredAction, Ci.nsIHandlerInfo.useSystemDefault, "xml action should be preserved" ); Assert.equal( !!handler.alwaysAskBeforeHandling, true, "xml ask should be preserved" ); // Clean up HandlerService.remove(handler); } // It should still be possible to view XML internally checkShouldView(XML_MIME, "xml", true); checkWasRegistered("xml", true); checkAll(SVG_MIME, "svg", true); checkAll(WEBP_MIME, "webp", true); // Disable SVG to test SVG enabled check (depends on the pref) Services.prefs.setBoolPref(PREF_SVG_DISABLED, true); // Should have restored the settings from above checkAll(SVG_MIME, "svg", false); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); { let handler = MIMEService.getFromTypeAndExtension(SVG_MIME, "svg"); Assert.equal(handler.preferredAction, Ci.nsIHandlerInfo.saveToDisk); Assert.equal(!!handler.alwaysAskBeforeHandling, true); // Clean up HandlerService.remove(handler); handler.preferredAction = Ci.nsIHandlerInfo.saveToDisk; handler.alwaysAskBeforeHandling = false; HandlerService.store(handler); } checkAll(SVG_MIME, "svg", false); Services.prefs.setBoolPref(PREF_SVG_DISABLED, false); checkAll(SVG_MIME, "svg", true); // Test WebP enabled check (depends on the pref) Loading
dom/security/test/mixedcontentblocker/browser_test_mixed_content_download.js +6 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,11 @@ add_task(async function test_unblock_download_visible() { // Test Download an insecure svg and choose "Open with Firefox" add_task(async function download_open_insecure_SVG() { const mimeInfo = MIMEService.getFromTypeAndExtension("image/svg+xml", "svg"); mimeInfo.alwaysAskBeforeHandling = false; mimeInfo.preferredAction = mimeInfo.handleInternally; HandlerService.store(mimeInfo); for (let prefVal of [true, false]) { await SpecialPowers.pushPrefEnv({ set: [["browser.download.improvements_to_download_panel", prefVal]], Loading Loading @@ -331,4 +336,5 @@ add_task(async function download_open_insecure_SVG() { "A Blocked SVG can be opened internally" ); } HandlerService.remove(mimeInfo); });
uriloader/exthandler/tests/mochitest/browser.ini +15 −3 Original line number Diff line number Diff line Loading @@ -36,11 +36,16 @@ support-files = file_xml_attachment_binary_octet_stream.xml^headers^ file_xml_attachment_test.xml file_xml_attachment_test.xml^headers^ file_green.webp file_green.webp^headers^ [browser_download_preferred_action.js] support-files = mime_type_download.sjs [browser_download_privatebrowsing.js] [browser_download_skips_dialog.js] support-files = file_green.webp file_green.webp^headers^ [browser_download_spam_permissions.js] support-files = test_spammy_page.html Loading @@ -56,11 +61,11 @@ support-files = file_as.exe^headers^ [browser_filehandling_loop.js] [browser_launched_app_save_directory.js] # This test checks the save destination of the # open with app download on Windows, Linux and OS X. skip-if = (os == 'android') support-files = file_pdf_application_pdf.pdf file_pdf_application_pdf.pdf^headers^ file_green.webp file_green.webp^headers^ [browser_local_files_no_save_without_asking.js] support-files = file_pdf_binary_octet_stream.pdf Loading @@ -68,6 +73,13 @@ support-files = support-files = file_pdf_binary_octet_stream.pdf [browser_shows_where_to_save_dialog.js] support-files = file_green.webp file_green.webp^headers^ file_pdf_application_pdf.pdf file_pdf_application_pdf.pdf^headers^ file_txt_attachment_test.txt file_txt_attachment_test.txt^headers^ [browser_open_internal_choice_persistence.js] skip-if = apple_silicon # bug 1752482 Loading
uriloader/exthandler/tests/mochitest/browser_download_open_with_internal_handler.js +17 −5 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ add_task(async function setup() { registerRestoreHandler("application/pdf", "pdf"); registerRestoreHandler("binary/octet-stream", "pdf"); registerRestoreHandler("application/unknown", "pdf"); registerRestoreHandler("image/webp", "webp"); }); /** Loading Loading @@ -572,18 +573,21 @@ add_task(async function test_check_open_with_external_then_internal() { */ add_task( async function test_internal_handler_hidden_with_viewable_internally_type() { await SpecialPowers.pushPrefEnv({ set: [["image.webp.enabled", true]], }); Services.telemetry.clearEvents(); const mimeInfosToRestore = alwaysAskForHandlingTypes({ "text/xml": "xml", "binary/octet-stream": "xml", "image/webp": "webp", }); for (let [file, checkDefault] of [ // The default for binary/octet-stream is changed by the PDF tests above, // this may change given bug 1659008, so I'm just ignoring the default for now. ["file_xml_attachment_binary_octet_stream.xml", false], ["file_xml_attachment_test.xml", true], ["file_green.webp", true], ]) { let dialogWindowPromise = BrowserTestUtils.domWindowOpenedAndLoaded(); let loadingTab = await BrowserTestUtils.openNewForegroundTab({ Loading @@ -608,13 +612,21 @@ add_task( checkTelemetry( "open " + file + " for viewable internal type", "ask", file == "file_xml_attachment_test.xml" ? "other" : "octetstream", file.endsWith(".webp") ? "other" : "octetstream", "attachment" ); ok(!internalHandlerRadio.hidden, "The option should be visible for XML"); let fileDesc = file.substring(file.lastIndexOf(".") + 1); ok( !internalHandlerRadio.hidden, `The option should be visible for ${fileDesc}` ); if (checkDefault) { ok(internalHandlerRadio.selected, "The option should be selected"); ok( internalHandlerRadio.selected, `The option should be selected for ${fileDesc}` ); } let dialog = doc.querySelector("#unknownContentType"); Loading
uriloader/exthandler/tests/mochitest/browser_download_skips_dialog.js +2 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ add_task(async function skipDialogAndDownloadFile() { set: [ ["browser.download.improvements_to_download_panel", true], ["browser.download.useDownloadDir", true], ["image.webp.enabled", true], ], }); Loading @@ -26,7 +27,7 @@ add_task(async function skipDialogAndDownloadFile() { let loadingTab = await BrowserTestUtils.openNewForegroundTab({ gBrowser, opening: TEST_PATH + "file_image_svgxml.svg", opening: TEST_PATH + "file_green.webp", waitForLoad: false, waitForStateStop: true, }); Loading