v3/examples/webview-api-check/README.md
This example application tests and reports which Web APIs are available in the current WebView engine.
Different platforms use different WebView engines:
Each engine supports different Web APIs. This tool helps you understand what APIs are available for your Wails application on each platform.
# Linux GTK4 (default)
go build -o webview-api-check .
# Linux GTK3 (legacy, opt-in)
go build -tags gtk3 -o webview-api-check .
# Windows/macOS
go build -o webview-api-check .
| Category | APIs Tested |
|---|---|
| Storage | localStorage, IndexedDB, Cache API, File System Access |
| Network | Fetch, WebSocket, EventSource, WebTransport |
| Media | Web Audio, MediaRecorder, MediaDevices, Speech |
| Graphics | Canvas, WebGL, WebGL2, WebGPU |
| Device | Geolocation, Sensors, Battery, Bluetooth, USB |
| Workers | Web Workers, Service Workers, Shared Workers |
| Performance | Observers, Timing APIs |
| Security | Web Crypto, Credentials, WebAuthn |
| UI & DOM | Custom Elements, Shadow DOM, Pointer Events |
| CSS | CSSOM, Container Queries, Modern Selectors |
| JavaScript | ES Modules, BigInt, Private Fields, etc. |
Some APIs are marked with notes:
Run the app on different platforms and export JSON reports. Compare them to understand API availability differences:
# On Linux GTK4
./webview-api-check
# Export: webview-api-report-linux-20240115-143052.json
# On Windows
./webview-api-check.exe
# Export: webview-api-report-windows-20240115-143052.json
WebView2 (Windows) typically supports more APIs because Chromium is updated more frequently:
WebKitGTK may have better support for:
GTK4 uses WebKitGTK 6.0, GTK3 uses WebKit2GTK 4.1. The WebKit version determines API support, not GTK version.