mirror of
https://github.com/shaka-project/shaka-player.git
synced 2026-06-14 15:56:38 +03:00
14821c30fb
### Description Fixes #9945 The `getExtension` function (rewritten for performance in #9816) scans the URI right-to-left, encountering dots in query parameter values (e.g. hostnames like `app.example.com`, filenames like `en.vtt`) before finding the `?` delimiter. This causes incorrect extension detection, breaking MIME type resolution for URLs with signed parameters or other query strings containing dots. **Fix:** Split the single right-to-left scan into two passes: 1. **Left-to-right:** find the first `?` or `#` to establish the path boundary 2. **Right-to-left:** scan backward within the path portion only, looking for `.` or `/` This preserves the lightweight character-scanning approach from #9816 without reintroducing the `goog.Uri` dependency. **New test cases added:** - Dots in query parameter values (`?host=app.example.com&signature=abc.def`) - Signed URLs with encoded paths and filenames in query strings - Hostname-like values in query parameters (`?origin=cdn.example.co.uk`) - No path extension with dotted query values (`/stream?file=video.mp4` → `""`) - Dots in fragment identifiers (`#t=1.5`) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>