- Confirm dialog: предзагрузка WebContentsView при старте приложения.
Раньше каждое нажатие "Закрыть" создавало новый view с холодной
загрузкой HTML+React → ~2с лаг и дубликаты от повторных кликов.
Теперь view кэшируется, текст обновляется через IPC, повторные
клики игнорируются пока диалог открыт.
- Темы: 14 → 71 (Война, Холодная война, Вьетнам, Призраки, Драконы,
Шахматы, Самолёты, Поезда, Сёрфинг, Япония, ...). Все ID
провалидированы probe-скриптом (≥50 фильмов на тематику).
- Chip-row заменён на SearchableSelect с поиском по подстроке —
длинный список не помещается в чипы, а dropdown с фильтром
гораздо удобнее. Заодно ушёл фиолетовый цвет чипа, плохо
сочетавшийся с темой сайта.
Electron-based kiosk desktop app: large-tile launcher for YouTube, RuTube,
movie sites and Google services, designed for low-tech grandparent use.
Features:
- WebContentsView-per-app tabbed browsing with session persistence
- per-app proxy routing (Clash/V2Ray friendly, useProxy flag)
- cliqz-electron adblocker with whitelist for OAuth/integrity domains
- TMDB-backed movie search across kinogo / hdrezka / filmix
- bookmark posters auto-fetched from og:image / JSON-LD
- electron-updater wired to Gitea releases API (latest.yml + .blockmap)
- cross-domain navigation confirms via custom WebContentsView dialogs
- kiosk window with hidden menu, Ctrl+Shift+I devtools shortcut
- Trusted Types disabled engine-wide so adblocker scriptlets work on YouTube
Google OAuth handling (the hard-won part):
Google's anti-abuse JS rejects WebContentsView + custom session settings
as "embedded browser". So accounts.google.com opens in a top-level
BrowserWindow popup in a dedicated persist:google-login partition that
we never call setProxy/setUserAgent on — it inherits Windows system
proxy and the default Electron-tagged UA, both of which Google accepts.
After login, .google.com/.youtube.com cookies migrate into the parent
view's session and the view reloads to pick up the logged-in state.
Session restore: only the last-active tab attaches to the window; other
tabs load silently in the background and become instantly visible when
the user clicks them in the sidebar.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>