WebView Permission Flow Test

Self-contained QA harness for the WebView + Location + Notification permission coordinator. No external resources.

Expected Behavior

Live Queue / Concurrency Stats

0
TOTAL
0
PENDING
0
COMPLETED
0
SUCCESS
0
FAILED
0
MAX CONCURRENT
ACTIVE TEST
Idle

1–4. Single Permission Tests

Idle
getUserMedia({video:true}) — tracks are stopped immediately after success.
Idle
getUserMedia({audio:true}) — tracks are stopped immediately after success.
Idle
Single getUserMedia({video:true, audio:true}) call — Android should receive CAMERA + RECORD_AUDIO as one combined request.
Idle
navigator.geolocation.getCurrentPosition — shows lat/lon on success, exact error code/message on failure.
Idle
Notification.requestPermission() — must not overlap with an active WebView/location permission request on the Android side.

5–6. Combined / Coordinator Tests

Idle
Fires camera and geolocation requests back-to-back with no artificial delay, to verify the Android coordinator serializes them instead of overlapping dialogs.
Idle
Primary FIFO stress test — fires a combined camera+mic request and a location request nearly simultaneously.

7–8. Rapid / Stress Tests

Idle
Fires 5 separate getUserMedia({video:true}) calls in a tight loop, each tracked with its own request ID, to verify WebView PermissionRequest objects are queued correctly.
Idle
Fires camera, microphone, camera+microphone, and location almost simultaneously. Watch the log for strict one-at-a-time resolution.

9. Cancel / Reload Test

Tap Start Camera Request, then immediately tap Reload Page Now before answering the Android dialog (or before it appears). This exercises onPermissionRequestCanceled() / cancelWebPermissionRequest(). The log below persists across reload (session-scoped) so you can confirm continuity — after reload, run Request Camera again from section 1 and verify it still succeeds/fails normally instead of hanging, which would indicate a permanently stuck queue.

10. Repeated Permission Test

Runs the camera request sequentially N times (awaiting each before starting the next) to check for consistent granted/denied behavior across repeats.

Execution Log

Test Scenario Checklist

Test Report

Full execution log, newest at bottom. Copy this and share with developers when reporting an issue.