WebView supports the kLogNetLog
flag to log debugging network info to a JSON file on disk.
userdebug
or eng
Android build (you can check with adb shell getprop ro.build.type
). Flags cannot be enabled on production builds of Android.# Optional: set any flags of your choosing before running the script $ build/android/adb_system_webview_command_line --enable-features=NetworkService,NetworkServiceInProcess Wrote command line file. Current flags (in webview-command-line): 005d1ac915b0c7d6 (bullhead-userdebug 6.0 MDB08M 2353240 dev-keys): --enable-features=NetworkService,NetworkServiceInProcess # Replace "<app package name>" with your app's package name (ex. the # WebView Shell is "org.chromium.webview_shell") $ android_webview/tools/record_netlog.py --package="<app package name>" Running with flags ['--enable-features=NetworkService,NetworkServiceInProcess', '--log-net-log=netlog.json'] Netlog will start recording as soon as app starts up. Press ctrl-C to stop recording. ^C Pulling netlog to "netlog.json"
Then import the JSON file into the NetLog viewer.
For more details, see the implementation in AwUrlRequestContextGetter. For support in the network service code path, see http://crbug.com/902039.
# appPackageName is the package name of whatever app you're interested (ex. # WebView shell is "org.chromium.webview_shell"). appDataDir="$(adb shell dumpsys package ${appPackageName} | grep 'dataDir=' | sed 's/^ *dataDir=//')" && \
jsonFile="${appDataDir}/app_webview/foo.json"
). Note: it’s important this is inside the data directory, otherwise multiple WebView apps might try (and succeed) to write to the file simultaneously.build/android/adb_system_webview_command_line --log-net-log=${jsonFile}
adb pull "${appDataDir}/app_webview/${jsonFile}"