Skip to content

Commit 1c9aed5

Browse files
committed
Bug 1753004, r=mhowell
Depends on D138320 Differential Revision: https://phabricator.services.mozilla.com/D138321
1 parent 247b19e commit 1c9aed5

7 files changed

+58
-20
lines changed

uriloader/exthandler/tests/mochitest/browser.ini

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,16 @@ support-files =
3434
file_txt_attachment_test.txt^headers^
3535
file_xml_attachment_binary_octet_stream.xml
3636
file_xml_attachment_binary_octet_stream.xml^headers^
37-
file_xml_attachment_test.xml
38-
file_xml_attachment_test.xml^headers^
37+
file_green.webp
38+
file_green.webp^headers^
3939
[browser_download_preferred_action.js]
4040
support-files =
4141
mime_type_download.sjs
4242
[browser_download_privatebrowsing.js]
4343
[browser_download_skips_dialog.js]
44+
support-files =
45+
file_green.webp
46+
file_green.webp^headers^
4447
[browser_download_spam_permissions.js]
4548
support-files =
4649
test_spammy_page.html
@@ -56,18 +59,25 @@ support-files =
5659
file_as.exe^headers^
5760
[browser_filehandling_loop.js]
5861
[browser_launched_app_save_directory.js]
59-
# This test checks the save destination of the
60-
# open with app download on Windows, Linux and OS X.
61-
skip-if = (os == 'android')
6262
support-files =
6363
file_pdf_application_pdf.pdf
64+
file_pdf_application_pdf.pdf^headers^
65+
file_green.webp
66+
file_green.webp^headers^
6467
[browser_local_files_no_save_without_asking.js]
6568
support-files =
6669
file_pdf_binary_octet_stream.pdf
6770
[browser_local_files_open_doesnt_duplicate.js]
6871
support-files =
6972
file_pdf_binary_octet_stream.pdf
7073
[browser_shows_where_to_save_dialog.js]
74+
support-files =
75+
file_green.webp
76+
file_green.webp^headers^
77+
file_pdf_application_pdf
78+
file_pdf_application_pdf^headers^
79+
file_txt_attachment_test.txt
80+
file_txt_attachment_test.txt^headers^
7181
[browser_open_internal_choice_persistence.js]
7282
skip-if =
7383
apple_silicon # bug 1752482

uriloader/exthandler/tests/mochitest/browser_download_open_with_internal_handler.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ add_task(async function setup() {
121121
registerRestoreHandler("application/pdf", "pdf");
122122
registerRestoreHandler("binary/octet-stream", "pdf");
123123
registerRestoreHandler("application/unknown", "pdf");
124+
registerRestoreHandler("image/webp", "webp");
124125
});
125126

126127
/**
@@ -572,18 +573,21 @@ add_task(async function test_check_open_with_external_then_internal() {
572573
*/
573574
add_task(
574575
async function test_internal_handler_hidden_with_viewable_internally_type() {
576+
await SpecialPowers.pushPrefEnv({
577+
set: [["image.webp.enabled", true]],
578+
});
575579
Services.telemetry.clearEvents();
576580

577581
const mimeInfosToRestore = alwaysAskForHandlingTypes({
578-
"text/xml": "xml",
579582
"binary/octet-stream": "xml",
583+
"image/webp": "webp",
580584
});
581585

582586
for (let [file, checkDefault] of [
583587
// The default for binary/octet-stream is changed by the PDF tests above,
584588
// this may change given bug 1659008, so I'm just ignoring the default for now.
585589
["file_xml_attachment_binary_octet_stream.xml", false],
586-
["file_xml_attachment_test.xml", true],
590+
["file_green.webp", true],
587591
]) {
588592
let dialogWindowPromise = BrowserTestUtils.domWindowOpenedAndLoaded();
589593
let loadingTab = await BrowserTestUtils.openNewForegroundTab({
@@ -608,13 +612,21 @@ add_task(
608612
checkTelemetry(
609613
"open " + file + " for viewable internal type",
610614
"ask",
611-
file == "file_xml_attachment_test.xml" ? "other" : "octetstream",
615+
file.endsWith(".webp") ? "other" : "octetstream",
612616
"attachment"
613617
);
614618

615-
ok(!internalHandlerRadio.hidden, "The option should be visible for XML");
619+
let fileDesc = file.substring(file.lastIndexOf(".") + 1);
620+
621+
ok(
622+
!internalHandlerRadio.hidden,
623+
`The option should be visible for ${fileDesc}`
624+
);
616625
if (checkDefault) {
617-
ok(internalHandlerRadio.selected, "The option should be selected");
626+
ok(
627+
internalHandlerRadio.selected,
628+
`The option should be selected for ${fileDesc}`
629+
);
618630
}
619631

620632
let dialog = doc.querySelector("#unknownContentType");

uriloader/exthandler/tests/mochitest/browser_download_skips_dialog.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ add_task(async function skipDialogAndDownloadFile() {
1313
set: [
1414
["browser.download.improvements_to_download_panel", true],
1515
["browser.download.useDownloadDir", true],
16+
["image.webp.enabled", true],
1617
],
1718
});
1819

@@ -26,7 +27,7 @@ add_task(async function skipDialogAndDownloadFile() {
2627

2728
let loadingTab = await BrowserTestUtils.openNewForegroundTab({
2829
gBrowser,
29-
opening: TEST_PATH + "file_image_svgxml.svg",
30+
opening: TEST_PATH + "file_green.webp",
3031
waitForLoad: false,
3132
waitForStateStop: true,
3233
});

uriloader/exthandler/tests/mochitest/browser_launched_app_save_directory.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ const TEST_PATH = getRootDirectory(gTestPath).replace(
1313

1414
add_task(async function setup() {
1515
await SpecialPowers.pushPrefEnv({
16-
set: [["browser.download.improvements_to_download_panel", true]],
16+
set: [
17+
["browser.download.improvements_to_download_panel", true],
18+
["image.webp.enabled", true],
19+
],
1720
});
1821
const allowDirectoriesVal = DownloadIntegration.allowDirectories;
1922
DownloadIntegration.allowDirectories = true;
@@ -35,7 +38,7 @@ async function aDownloadLaunchedWithAppIsSavedInFolder(downloadDir) {
3538

3639
let loadingTab = await BrowserTestUtils.openNewForegroundTab({
3740
gBrowser,
38-
opening: TEST_PATH + "file_image_svgxml.svg",
41+
opening: TEST_PATH + "file_green.webp",
3942
waitForLoad: false,
4043
waitForStateStop: true,
4144
});

uriloader/exthandler/tests/mochitest/browser_shows_where_to_save_dialog.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ add_task(async function setup() {
4646
// the filetype is set to save to disk.
4747
add_task(async function aDownloadSavedToDiskPromptsForFolder() {
4848
let publicList = await Downloads.getList(Downloads.PUBLIC);
49-
ensureMIMEState({ preferredAction: saveToDisk });
49+
ensureMIMEState(
50+
{ preferredAction: saveToDisk },
51+
{ type: "text/plain", ext: "txt" }
52+
);
5053
registerCleanupFunction(async () => {
5154
await publicList.removeFinished();
5255
});
@@ -76,7 +79,10 @@ add_task(async function aDownloadSavedToDiskPromptsForFolder() {
7679
add_task(async function testFilesHandledInternally() {
7780
let dir = await setupFilePickerDirectory();
7881

79-
ensureMIMEState({ preferredAction: handleInternally });
82+
ensureMIMEState(
83+
{ preferredAction: handleInternally },
84+
{ type: "image/webp", ext: "webp" }
85+
);
8086

8187
let filePickerShown = false;
8288
MockFilePicker.showCallback = function(fp) {
@@ -88,22 +94,22 @@ add_task(async function testFilesHandledInternally() {
8894
gBrowser,
8995
url => {
9096
info("Got load for " + url);
91-
return url.endsWith("file_image_svgxml.svg") && url.startsWith("file:");
97+
return url.endsWith("file_green.webp") && url.startsWith("file:");
9298
},
9399
true,
94100
true
95101
);
96102
let loadingTab = await BrowserTestUtils.openNewForegroundTab({
97103
gBrowser,
98-
opening: TEST_PATH + "file_image_svgxml.svg",
104+
opening: TEST_PATH + "file_green.webp",
99105
waitForLoad: false,
100106
waitForStateStop: true,
101107
});
102108

103109
let openedTab = await thirdTabPromise;
104110
ok(!filePickerShown, "file picker should not have shown up.");
105111

106-
assertCorrectFile(dir, "file_image_svgxml.svg");
112+
assertCorrectFile(dir, "file_green.webp");
107113

108114
// Cleanup
109115
BrowserTestUtils.removeTab(loadingTab);
@@ -289,8 +295,11 @@ function createSaveDir() {
289295
return saveDir;
290296
}
291297

292-
function ensureMIMEState({ preferredAction, preferredHandlerApp = null }) {
293-
const mimeInfo = gMimeSvc.getFromTypeAndExtension("application/pdf", "pdf");
298+
function ensureMIMEState(
299+
{ preferredAction, preferredHandlerApp = null },
300+
{ type = "application/pdf", ext = "pdf" } = {}
301+
) {
302+
const mimeInfo = gMimeSvc.getFromTypeAndExtension(type, ext);
294303
mimeInfo.preferredAction = preferredAction;
295304
mimeInfo.preferredApplicationHandler = preferredHandlerApp;
296305
mimeInfo.alwaysAskBeforeHandling = false;
Binary file not shown.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Content-Disposition: attachment; filename=file_green.webp
2+
Content-Type: image/webp
3+

0 commit comments

Comments
 (0)