From 36a3ce65126bf8669d0aa5480e2e6c217a136ad2 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek <32792205+Razz21@users.noreply.github.com> Date: Thu, 20 Aug 2026 19:18:58 +0200 Subject: [PATCH 1/3] chore: automate release workflow --- .github/workflows/changesets.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/changesets.yml b/.github/workflows/changesets.yml index 4d493ee..88eb82d 100644 --- a/.github/workflows/changesets.yml +++ b/.github/workflows/changesets.yml @@ -76,6 +76,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v7 + with: + token: ${{ secrets.RELEASE_TOKEN }} - name: Setup Node.js uses: actions/setup-node@v7 @@ -88,3 +90,5 @@ jobs: - name: Publish packages uses: changesets/action/publish@v2 + with: + github-token: ${{ secrets.RELEASE_TOKEN }} From fdf11d9f1e685b1a9efa91bb5e97e25212ee4e37 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek <32792205+Razz21@users.noreply.github.com> Date: Thu, 20 Aug 2026 19:34:59 +0200 Subject: [PATCH 2/3] fix: mediacontroller pause with reason --- src/media/actions.ts | 2 +- types/gecko-media.d.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/media/actions.ts b/src/media/actions.ts index 769faa1..7337d7d 100644 --- a/src/media/actions.ts +++ b/src/media/actions.ts @@ -10,7 +10,7 @@ export function toggleMediaController(tab: BrowserTab): void { const controller = getActiveController(tab); if (!controller) return; if (controller.isPlaying) { - controller.pause(); + controller.pause('user'); } else { controller.play(); } diff --git a/types/gecko-media.d.ts b/types/gecko-media.d.ts index 52c7a28..2cb99cb 100644 --- a/types/gecko-media.d.ts +++ b/types/gecko-media.d.ts @@ -30,6 +30,14 @@ interface PositionStateEvent extends Event { interface AudioSessionType {} +/** + * The reason a chrome caller is pausing the controller. "user" preserves the + * existing user-initiated pause; the "system-*" values represent an + * audio-focus loss, with "system-transient" being resumable and + * "system-permanent" not. + */ +type AudioFocusLossReason = 'user' | 'system-transient' | 'system-permanent'; + interface MediaController extends EventTarget { readonly id: number; readonly isActive: boolean; @@ -54,7 +62,7 @@ interface MediaController extends EventTarget { focus(): void; play(): void; - pause(): void; + pause(reason: AudioFocusLossReason): void; resume(): void; stop(): void; mute(): void; From 9d29e2b69fd61d73d4e46252a14ed5082be4deb2 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek <32792205+Razz21@users.noreply.github.com> Date: Thu, 20 Aug 2026 19:40:07 +0200 Subject: [PATCH 3/3] chore: changeset --- .changeset/real-dragons-start.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/real-dragons-start.md diff --git a/.changeset/real-dragons-start.md b/.changeset/real-dragons-start.md new file mode 100644 index 0000000..0e5627c --- /dev/null +++ b/.changeset/real-dragons-start.md @@ -0,0 +1,5 @@ +--- +'fx-media-controller': patch +--- + +Fixed MediaController.pause() require an argument for FF v154.0