diff options
| author | Jakub Czyż <me@jakubc.pl> | 2026-02-19 23:41:07 +0100 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2026-02-20 12:37:10 -0800 |
| commit | 0bf3f64c6b91df0b7665ecf0875757985b5b2bee (patch) | |
| tree | 490cd52ba93d01e9a91e51ff670b6d72fa10fa4e | |
| parent | f3755d9eba1147eb2cc3257689764f0cd8aac77b (diff) | |
| download | go-0bf3f64c6b91df0b7665ecf0875757985b5b2bee.tar.xz | |
mime: make TypeByExtension follow Chrome+Firefox's precedence for webm->video and weba->audio
This CL updates TypeByExtension to correctly follow the precedence rules
that Chrome and Firefox use, whereby "webm" maps to "video/webm" and
"weba" maps to "audio/webm" per:
https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/net/base/mime_util.cc#169
https://github.com/mozilla-firefox/firefox/blob/main/uriloader/exthandler/nsExternalHelperAppService.cpp#L485
Thanks to Sean Liao for the above references.
Fixes #77701
Change-Id: I0e706c398aafc314034d7e1eccba9b37b8da00b2
Reviewed-on: https://go-review.googlesource.com/c/go/+/747340
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
| -rw-r--r-- | src/mime/type.go | 3 | ||||
| -rw-r--r-- | src/mime/type_test.go | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mime/type.go b/src/mime/type.go index 58cc22fdb0..6115a9b87c 100644 --- a/src/mime/type.go +++ b/src/mime/type.go @@ -115,7 +115,8 @@ var builtinTypesLower = map[string]string{ ".vtt": "text/vtt; charset=utf-8", ".wasm": "application/wasm", ".wav": "audio/wav", - ".webm": "audio/webm", + ".weba": "audio/webm", + ".webm": "video/webm", ".webp": "image/webp", ".xbl": "text/xml; charset=utf-8", ".xbm": "image/x-xbitmap", diff --git a/src/mime/type_test.go b/src/mime/type_test.go index f4ec8c8754..0c334356bb 100644 --- a/src/mime/type_test.go +++ b/src/mime/type_test.go @@ -245,7 +245,8 @@ func TestExtensionsByType2(t *testing.T) { {typ: "text/vtt; charset=utf-8", want: []string{".vtt"}}, {typ: "application/wasm", want: []string{".wasm"}}, {typ: "audio/wav", want: []string{".wav"}}, - {typ: "audio/webm", want: []string{".webm"}}, + {typ: "audio/webm", want: []string{".weba"}}, + {typ: "video/webm", want: []string{".webm"}}, {typ: "image/webp", want: []string{".webp"}}, {typ: "text/xml; charset=utf-8", want: []string{".xbl", ".xml", ".xsl"}}, {typ: "image/x-xbitmap", want: []string{".xbm"}}, |
