Developer Tools
In-app test utilities. Serve this file via adb reverse tcp:8080 tcp:8080 and load http://localhost:8080/tools.html inside Shellify.
Chrome Tools
Calls ShellifyBridge.onNotification() directly via the Chromium Java bridge. Works in System WebView — no permission prompt needed.
Web Notification API
Uses window.Notification via Shellify's JS bridge. Works in both GeckoView and System WebView. Calling requestPermission() shows Shellify's native permission dialog when state is NOT_ASKED; once GRANTED, new Notification() is forwarded to Android.
Background Test
Starts a 10-second countdown. Press Home immediately — the notification fires at the right time even when backgrounded (wall-clock deadline, visibilitychange fallback).
window.open()
Opens a popup window — the same mechanism "Sign in with Google" uses. Shellify must surface it as an overlay (System WebView onCreateWindow / GeckoView onNewSession). Note: GeckoView blocks popups not triggered by a tap, so click the button rather than expecting auto-open.
target="_blank" link
OAuth round-trip
Full "Sign in with Google" simulation, offline: opens a popup that messages its window.opener via postMessage and then calls window.close(). Verifies the opener relationship survives and the popup auto-dismisses — the exact flow that was broken.