fix(extension): harden player discovery for Crunchyroll

This commit is contained in:
KoalaDev
2026-08-21 12:15:44 +02:00
parent 1e41d98c2f
commit 258f66f240
8 changed files with 127 additions and 2 deletions
+22
View File
@@ -5,6 +5,28 @@ All notable changes to the KoalaSync browser extension and relay server.
---
## [v3.1.4] — 2026-08-21
This patch restores player detection on pages that use boxless CSS wrappers,
including Crunchyroll, without adding site-specific matching.
### Fixed
- **Extension: Crunchyroll playback synchronization** — Detects and controls
Crunchyroll's visible Bitmovin HTML5 player even though the page wraps it in
a boxless `display: contents` ancestor. The general fix keeps equivalent
players selectable on other sites while continuing to reject hidden players,
preloads, ads and background videos.
- **Extension: Player discovery during iframe churn** — Keeps stable nested
player frames discoverable when rapidly replaced ad frames make Chromium
reject an aggregate frame sweep, without restoring the `webNavigation`
permission or injecting globally into unselected tabs.
### Testing
- **Regression coverage** — Adds unit and browser E2E coverage for visible
players inside `display: contents` wrappers.
---
## [v3.1.3] — 2026-08-18
This release adds generic control for HTML5 players inside nested and cross-origin
+6 -1
View File
@@ -20,7 +20,7 @@ This document tracks which streaming platforms and media servers are supported b
| **Disney+** | ✅ Full | ⚠️ Partial | ❌ | — | — | — | Series title only (e.g. "The Simpsons"), no episode info. |
| **Prime Video** | ✅ Full | ✅ Full | ❌ | — | — | — | — |
| **HBO Max / Max** | Not tested | Not tested | Not tested | — | — | — | — |
| **Crunchyroll** | Not tested | Not tested | Not tested | — | — | — | — |
| **Crunchyroll** (`crunchyroll.com`) | ✅ Full | ⚠️ Partial | ❌ | 2026-08-21 | Shik3i | v3.1.4 | Manual testing on the live service confirmed playback synchronization with its top-level Bitmovin HTML5 player. The Media Session exposes the episode as `E1 - Prologue` and the series as artist metadata, but the current episode parser does not recognize the abbreviated `E1` form for episode auto-sync. |
| **Vimeo** | Not tested | Not tested | Not tested | — | — | — | — |
| **Dailymotion** | Not tested | Not tested | Not tested | — | — | — | — |
| **ARD / ZDF Mediathek** | Not tested | Not tested | Not tested | — | — | — | — |
@@ -81,3 +81,8 @@ The currently verified cross-origin service topologies are:
- **YummyAnime:** `yummyanime.tv` top page → same-origin wrapper → `thealloha.club` player.
These embedded origins are implementation details of the services and may change independently. If the browser withholds access to a newly used player origin, KoalaSync asks for that origin through its normal site-access flow.
Crunchyroll currently exposes its Bitmovin `<video>` directly in the top-level
document. Its application layout uses a `display: contents` wrapper, which has
no box of its own even while the descendant player is visible; v3.1.4 handles
that standards-compliant layout without a Crunchyroll-specific host rule.