This is an automated email from the git hooks/post-receive script.
richard pushed a commit to branch geckoview-102.3.0esr-12.0-1 in repository tor-browser.
commit 2ed4cb1654bd6379d294b3dd5c11b8a901b53383 Author: Neil Deakin neil@mozilla.com AuthorDate: Fri Sep 2 15:33:35 2022 +0000
Bug 1772988, add some additional extensions for some media types as Windows doesn't provide some of them, causing valid extensions to be replaced when saving files, r=mhowell, a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D155972 --- .../exthandler/nsExternalHelperAppService.cpp | 7 ++- .../tests/unit/test_filename_sanitize.js | 62 ++++++++++++++++++++++ 2 files changed, 65 insertions(+), 4 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp index f5b0e2e5bc95c..0ec02e346617b 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -540,16 +540,15 @@ static const nsExtraMimeTypeEntry extraMimeEntries[] = { {TEXT_CSS, "css", "Style Sheet"}, {TEXT_VCARD, "vcf,vcard", "Contact Information"}, {TEXT_CALENDAR, "ics,ical,ifb,icalendar", "iCalendar"}, - {VIDEO_OGG, "ogv", "Ogg Video"}, - {VIDEO_OGG, "ogg", "Ogg Video"}, + {VIDEO_OGG, "ogv,ogg", "Ogg Video"}, {APPLICATION_OGG, "ogg", "Ogg Video"}, {AUDIO_OGG, "oga", "Ogg Audio"}, {AUDIO_OGG, "opus", "Opus Audio"}, {VIDEO_WEBM, "webm", "Web Media Video"}, {AUDIO_WEBM, "webm", "Web Media Audio"}, - {AUDIO_MP3, "mp3", "MPEG Audio"}, + {AUDIO_MP3, "mp3,mpega,mp2", "MPEG Audio"}, {VIDEO_MP4, "mp4", "MPEG-4 Video"}, - {AUDIO_MP4, "m4a", "MPEG-4 Audio"}, + {AUDIO_MP4, "m4a,m4b", "MPEG-4 Audio"}, {VIDEO_RAW, "yuv", "Raw YUV Video"}, {AUDIO_WAV, "wav", "Waveform Audio"}, {VIDEO_3GPP, "3gpp,3gp", "3GPP Video"}, diff --git a/uriloader/exthandler/tests/unit/test_filename_sanitize.js b/uriloader/exthandler/tests/unit/test_filename_sanitize.js index 1ad902b0bebd2..11c18f2e13616 100644 --- a/uriloader/exthandler/tests/unit/test_filename_sanitize.js +++ b/uriloader/exthandler/tests/unit/test_filename_sanitize.js @@ -159,4 +159,66 @@ add_task(async function validate_filename_method() { checkFilename("test_テスト_T\x83E\S\x83T.pテ\x83ng", 0), "test_テスト_T E_S T.png" ); + + // Now check some media types + Assert.equal( + mimeService.validateFileNameForSaving("video.ogg", "video/ogg", 0), + "video.ogg", + "video.ogg" + ); + Assert.equal( + mimeService.validateFileNameForSaving("video.ogv", "video/ogg", 0), + "video.ogv", + "video.ogv" + ); + Assert.equal( + mimeService.validateFileNameForSaving("video.ogt", "video/ogg", 0), + "video.ogv", + "video.ogt" + ); + + Assert.equal( + mimeService.validateFileNameForSaving("audio.mp3", "audio/mpeg", 0), + "audio.mp3", + "audio.mp3" + ); + Assert.equal( + mimeService.validateFileNameForSaving("audio.mpega", "audio/mpeg", 0), + "audio.mpega", + "audio.mpega" + ); + Assert.equal( + mimeService.validateFileNameForSaving("audio.mp2", "audio/mpeg", 0), + "audio.mp2", + "audio.mp2" + ); + + let expected = "audio.mp3"; + if (AppConstants.platform == "linux") { + expected = "audio.mpga"; + } else if (AppConstants.platform == "android") { + expected = "audio.mp4"; + } + + Assert.equal( + mimeService.validateFileNameForSaving("audio.mp4", "audio/mpeg", 0), + expected, + "audio.mp4" + ); + + Assert.equal( + mimeService.validateFileNameForSaving("sound.m4a", "audio/mp4", 0), + "sound.m4a", + "sound.m4a" + ); + Assert.equal( + mimeService.validateFileNameForSaving("sound.m4b", "audio/mp4", 0), + AppConstants.platform == "android" ? "sound.m4a" : "sound.m4b", + "sound.m4b" + ); + Assert.equal( + mimeService.validateFileNameForSaving("sound.m4c", "audio/mp4", 0), + AppConstants.platform == "macosx" ? "sound.mp4" : "sound.m4a", + "sound.mpc" + ); });