Capacitor 243,123 ships no browser engine. BridgeActivity inflates a CapacitorWebView, a thin subclass of Android's android.webkit.WebView, and on iOS CAPBridgeViewController creates a WKWebView. Your code runs in whatever engine the phone already has:
| Android | iOS | |
|---|---|---|
| Engine | Android System WebView (Chromium 4,389 ) | WKWebView (WebKit 15,343 ) |
| JS to native | addWebMessageListener | WKScriptMessageHandler |
| Native to JS | JavaScriptReplyProxy | evaluateJavaScript |
| Remote debugging | Chrome DevTools 3,948 | Safari Web Inspector 10 |
The Android engine updates through Google Play 1 , apart from the OS. Capacitor checks for a minimum, android.minWebViewVersion (default 60), and below it loads your errorPath page. To see a device's engine:
adb -s emulator-5558 shell dumpsys package com.google.android.webview | grep -m1 versionNameversionName=133.0.6943.137
That is Chromium 133, on a Google APIs emulator image that has no Play Store to update it. Phones in the field vary the same way, so test on the engines your users have: WebView speed, not Capacitor, sets your rendering performance. A WebView is also not Chrome 1 : there is no address bar, and window.open or file downloads behave differently, which is why the Browser plugin (Browser) exists. In debug builds Bridge.java turns on WebView.setWebContentsDebuggingEnabled(), so chrome://inspect can attach (Remote Debugging Android).