From 477dad03a3d836403870598729467f711c4df679 Mon Sep 17 00:00:00 2001 From: KoalaDev <6156589+Shik3i@users.noreply.github.com> Date: Fri, 14 Aug 2026 06:45:33 +0200 Subject: [PATCH] fix: harden frame observation and unblock supported Drive tabs Audit follow-ups on the same-origin frame walk: - prune detached frames from the load-hook set so ad/SPA frame churn no longer grows it for the page's lifetime - hook load on nested frames, not just top-level ones - re-observe from scratch after a frame reload instead of leaving the replaced document's tree registered - reset the frame registry when the heartbeat error path disconnects Also: a broad parent domain in the blacklist no longer hides a host with its own supported player path (drive.google.com behind google.com), while an exact user entry for that host still filters it. Co-Authored-By: Claude Opus 5 --- docs/CHANGELOG.md | 5 +++++ docs/ROADMAP.md | 8 ++++---- extension/content.js | 27 +++++++++++++++++++++------ scripts/test-blacklist-settings.mjs | 7 +++++++ shared/blacklist.js | 15 ++++++++++++++- 5 files changed, 51 insertions(+), 11 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 8edf86f..107bd28 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -7,9 +7,14 @@ All notable changes to the KoalaSync browser extension and relay server. ## Unreleased ### Added +- **Extension: Same-origin frame video detection** — Finds and controls players that live inside a first-party iframe instead of the top document, so sites that wrap their player in their own frame sync without site-specific workarounds. Frame documents are watched for late-loading players and re-scanned after a frame reload; cross-origin frames stay out of reach by design. - **Extension: Editable Hide-Clutter list** — Adds a validated, deduplicated domain editor in Settings, prefilled with the shipped blacklist, with a defaults reset and per-device persistence in `chrome.storage.local`. - **Extension: Independent default audio boost** — Adds a configurable `0–20 dB` output gain in half-decibel steps. The boost works with or without the compressor and applies live to the selected video tab. +### Fixed +- **Extension: Google Drive tab selection** — A broad parent domain in the Hide-Clutter list no longer hides a host that has its own supported player path, so Drive videos stay selectable while the filter is on. An exact entry for the host itself still filters it. +- **Extension: Debug report frame visibility** — Video counts now include players inside same-origin frames and the report states whether the selected video sits in a frame. + ## [v3.0.2] — 2026-07-31 This release adds three focused chat improvements: encrypted quick-reaction emojis, diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 5cd8aba..a16f712 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -49,13 +49,13 @@ *Ideas and feature requests under evaluation.* -### Cross-frame video detection and control +### Cross-origin frame video detection and control - **Priority:** P3 - **Category:** Compatibility / Embedded Players -- **Background:** KoalaSync currently injects on demand into the selected tab's top frame. This works for normal top-frame players, including current Emby/Jellyfin usage, but does not cover cases where the real `