#!/bin/bash
set -euo pipefail

# Wonder Ink as an application, not a tab.
#
# Two things make it one. It runs in Chrome's app mode, so the window has
# no tab strip and no address bar and reads as a program. And it runs in
# its own Chrome profile, so the teacher signed into Wonder Ink and the
# room's shared YouTube account are separate sessions that cannot reach
# each other:
#
#   * closing this window ends the Wonder Ink session, because the
#     wonderink.org cookies are session-only by policy and this profile's
#     browser process exits with the window;
#   * a Google sign-in performed here cannot be used to re-enter the
#     previous teacher's Wonder Ink account from the ordinary browser,
#     because the ordinary browser's Google session is in a different
#     profile;
#   * and the church YouTube login in the ordinary browser survives all of
#     it, because nothing here touches that profile.
#
# The machine-wide policy in /etc/opt/chrome/policies applies to every
# profile, so this window is governed by exactly the same rules as the
# browser.

HOME_PAGE='https://app.wonderink.org/'

# One number for the whole room. Chrome on Wayland was measured not to
# follow the compositor's output scale on its own, so the 4K television
# got a browser at half the size of everything around it. Forcing the
# same number the display is scaled by is a statement of the same fact,
# not a second scaling: Chrome replaces its detected scale with this
# rather than multiplying by it.
SCALE="$(/usr/local/bin/classroom-ui-scale 2>/dev/null || echo 1)"
PROFILE="${XDG_DATA_HOME:-$HOME/.local/share}/ekklesia-classroom/wonderink"

mkdir -p "$PROFILE"

exec google-chrome \
    --user-data-dir="$PROFILE" \
    --app="$HOME_PAGE" \
    --ozone-platform=wayland \
    --force-device-scale-factor="$SCALE" \
    --start-maximized \
    --no-first-run \
    --no-default-browser-check \
    --password-store=basic \
    --hide-crash-restore-bubble \
    "$@"
