Internal

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.

Checking bridge…

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).

Console
Initialising…

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.

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.

Console