zebra-report/web
Russell Ballestrini 2892a8f6ef
zebra-spaces: camera permission probe telemetry (firefox NotAllowedError diagnosis)
Ticket 0002 fox 2026-06-08: even with the saved permission removed
AND a bare {video:true} retry, Firefox-on-Fedora returns
NotAllowedError instantly with no prompt. Webcamtests.com works on
the same Firefox session — so the defect is specific to our origin's
runtime state, not the browser or hardware.

Need to distinguish (a) Permissions API state=denied vs prompt vs
granted (b) hidden document vs active (c) user activation
inactive vs active. Each picks a different fix branch — (a) saved
block or about:config pref, (b) bfcache / non-active document,
(c) gesture propagation lost between click and getUserMedia.

Add a permission probe in the catch (runs AFTER getUserMedia
returned so it doesn't burn transient activation needed for a
retry). Logs:

  camera permission probe: state=<perm> vis=<vis> activation=<act>

state = navigator.permissions.query({name:'camera'}).state
vis   = document.visibilityState
act   = navigator.userActivation isActive + hasBeenActive

Next click on blanka's firefox surfaces all three at once.
2026-06-08 08:02:49 -04:00
..
blog phase 1: unfirehose reconstruction from session JSONL ingest 2026-05-27 13:51:14 -04:00
fonts phase 2: gap analysis — cat>> append + binary asset recovery 2026-05-27 13:54:19 -04:00
chat.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
host-your-own.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
how-it-works.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
index.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
kernel.html web: bump mobile body padding from 1rem to 1.25rem so the right edge has visible breathing room 2026-05-31 14:13:25 -04:00
stamp.js web: stamp each zebra-report page with build date + md5/sha256 2026-05-28 17:50:12 -04:00
zebra-audio.html zebra-spaces: fresh-stream wrap on mic ontrack + mute-gate mesh swap (kill fedora-chrome silence) 2026-06-07 11:33:57 -04:00
zebra-spaces.html zebra-spaces: camera permission probe telemetry (firefox NotAllowedError diagnosis) 2026-06-08 08:02:49 -04:00