Skip to content

Offer Firefox permission recovery for USB screen sharing - #486

Closed
iibaranov-IG wants to merge 1 commit into
ddvk:masterfrom
iibaranov-IG:bcl/rmfakecloud-485-387cfdc2db29d9aa
Closed

iibaranov-IG wants to merge 1 commit into
ddvk:masterfrom
iibaranov-IG:bcl/rmfakecloud-485-387cfdc2db29d9aa

Conversation

@iibaranov-IG

@iibaranov-IG iibaranov-IG commented Sep 14, 2026

Copy link
Copy Markdown

Firefox can omit the reMarkable USB interface from WebRTC ICE candidates until the rmfakecloud origin has media permission, leaving screen sharing on Wi-Fi with no explanation or recovery control.

Change

Add a Firefox-only USB recovery control that requests media permission, immediately releases every track, resets peer state for discovery retry, reports denial, and document why the permission is needed.

Fixes #485

Reproduction and acceptance

Open rmfakecloud over Wi-Fi in Firefox with a reMarkable connected over USB and no site media permission; the browser exposes its Wi-Fi candidate but omits local 10.11.99.5 while the tablet advertises 10.11.99.1.

The unchanged source-contract regression fails on the baseline and passes on the candidate; Firefox alone shows an explicit USB action, the action requests audio permission and stops all acquired tracks, denial is explained, documentation records the browser behavior, focused tests pass, and the complete UI production build succeeds.

BCL evidence

Run: https://github.com/iibaranov-IG/broadcast-control-lab/actions/runs/34874268293

Artifact: rmfakecloud-485-evidence
BCL revision: 4b8a140a4b17f942e607bfc30b7944368728f899
Tested baseline: ddvk/rmfakecloud@1958bff18a530038d3916cba0168ad99a24220b4
Candidate SHA-256: 387cfdc2db29d9aaf83ffc637906f873cd46fb05c5b22704b8c0aa2fd69fc113

  • baseline-red: PASS; command: node --test ui/tests/firefox-usb-regression.test.mjs; exit: 1; log: upstream-2-baseline-red.log
  • candidate-green: PASS; command: node --test ui/tests/firefox-usb-regression.test.mjs; exit: 0; log: upstream-3-candidate-green.log
  • candidate-suite: PASS; command: node ../../cases/rmfakecloud-485/upstream.mjs; exit: 0; log: upstream-4-candidate-suite.log

Owner check

In Firefox, load rmfakecloud over Wi-Fi with the reMarkable connected over USB. Confirm 10.11.99.5 is absent before permission, click Enable Firefox USB access, grant microphone permission, confirm the capture indicator stops immediately, then verify about:webrtc selects 10.11.99.5 <-> 10.11.99.1 and screen sharing works.

BCL verifies browser detection, permission cleanup, the rendered source contract and the complete production UI build on Linux/Node 22. It cannot prove Firefox exposes 10.11.99.5 without a physical reMarkable USB connection and browser permission store.

Hardware verified: false. Full application verified: false.

The evidence artifact contains HARDWARE-CHECK.md and owner-result.json. Automated checks do not certify hardware.

@iibaranov-IG
iibaranov-IG marked this pull request as ready for review September 14, 2026 17:27
@rmitchellscott

Copy link
Copy Markdown
Collaborator

No thanks slop bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Firefox: USB screensharing requires camera/microphone permission

2 participants