WebView team maintains a “shell”--a thin interface over the WebView APIs--to exercise WebView functionality. The System WebView Shell (AKA “shell browser,” “WebView shell”) is a standalone app implemented in chromium. While often used for manual testing, we also use the shell for automated tests (see our layout and page cycler tests).
$ autoninja -C out/Default system_webview_shell_apk
# Build and install $ out/Default/bin/system_webview_shell_apk install
The WebView shell may be preinstalled on a device or emulator. If the signature of the locally built shell does not match the preinstalled shell then the install will fail – usually with this error:
... path/to/SystemWebViewShell.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package org.chromium.webview_shell signatures do not match previously installed version; ignoring!]
If this occurs then delete the preinstalled WebView shell as so:
-writable-system
option as per the Writable system partition instructions.# Remount the /system partition read-write $ adb root $ adb remount # Get the APK path to the WebView shell $ adb shell pm path org.chromium.webview_shell package:/system/app/Browser2/Browser2.apk # Use the APK path above to delete the APK $ adb shell rm /system/app/Browser2/Browser2.apk # Restart the Android shell to "forget" about the WebView shell $ adb shell stop $ adb shell start
# Launch a URL from the commandline, or open the app from the app launcher $ out/Default/bin/system_webview_shell_apk launch "https://www.google.com/" # For more commands: $ out/Default/bin/system_webview_shell_apk --help
system_webview_shell_apk
does not support modifying CLI flags. See https://crbug.com/959425. Instead, you should modify WebView's flags by following commandline-flags.md.