Files
Classroom_Desktop/docs/wonder-ink.md
T
ekklesiaandClaude Opus 5 8ba04801a7 docs: record the Wonder Ink Present view observation
Vimeo plays in the normal lesson view and stops immediately in Present
view, which rules the machine out: same video, same host, same codecs, a
click earlier. No packages were installed and nothing was changed.

Written as a decision procedure rather than a shrug. The first step is a
stock Chrome with no classroom policy and a clean profile, which settles
in one run whether this is Wonder Ink or something at our end. Two
candidates follow if it turns out to be ours, each with the diagnostic
that would confirm it, and the note that AutoplayAllowlist is recognised
by Chrome 152 but has deliberately not been applied — allowing autoplay
on a classroom machine should follow evidence rather than a guess.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-05 00:21:18 -05:00

3.3 KiB

Wonder Ink: Present view video

The observation

On the classroom endpoint:

  • Vimeo videos embedded in Wonder Ink play correctly in the normal lesson view.
  • The same videos in Wonder Ink's Present view stop immediately when Play is pressed.

What this rules out

The system's video capability is fine. The same video, the same host, the same browser and the same codecs work a click earlier in the same session. Nothing is missing from the machine.

No codecs or media packages were installed for this, and none should be. Installing packages to fix a problem that is not a missing package would leave the classroom carrying software it does not need, and would not fix Present view.

Nothing in the system was changed for this.

The decisive test

Run it once at the endpoint. This separates "Wonder Ink" from "the classroom's Chrome configuration" in one step:

sudo mv /etc/opt/chrome/policies /etc/opt/chrome/policies.off
google-chrome --user-data-dir=/tmp/plain-chrome

That is a stock Chrome with a clean profile and no classroom policy at all. Sign in, open the lesson, press Present, press Play.

  • Still fails — it is Wonder Ink, and nothing here can fix it. Report it to them with the console output below.
  • Works — something in the classroom configuration is responsible, and the next section is where to look.

Afterwards:

sudo mv /etc/opt/chrome/policies.off /etc/opt/chrome/policies
rm -rf /tmp/plain-chrome

If it turns out to be this end

Two candidates, in order of likelihood. Neither has been applied.

1. The autoplay gesture chain

Chrome refuses to start audible playback without a user gesture. If Present view starts the player programmatically after its own view transition, the gesture from the Present click may not carry, and Chrome rejects the play. That would look exactly like this: fine when you click the player directly, dead when the view starts it for you.

This is stock Chrome behaviour, not a classroom setting — a plain Chrome on any machine would do the same, which is what the decisive test above checks.

Diagnostic: open DevTools (F12) in Present view and press Play. A rejected autoplay logs:

NotAllowedError: play() failed because the user didn't interact
with the document first.

If that appears, the fix is a scoped policy, not a global one:

"AutoplayAllowlist": ["https://app.wonderink.org"]

AutoplayAllowlist is recognised by Chrome 152 — verified against the installed binary. It has deliberately not been added, because allowing autoplay everywhere on a classroom machine is a real change and should follow evidence, not a guess.

2. A popup window that sway tiles

sway tiles new windows rather than floating them. If Present view opens a second browser window, it gets a tiled geometry the site did not expect, and a player that is resized or re-parented mid-start can stop.

Diagnostic, while Present view is open:

swaymsg -t get_tree | grep -c google-chrome

More than one Chrome window means this is worth pursuing.

3. Not the classroom policies

For completeness, so nobody re-audits them: the managed policy in /etc/opt/chrome/policies/managed/ sets first-run, sign-in, password and homepage behaviour only. None of it touches media, autoplay, iframes, fullscreen or site permissions.