webview: UMA for WebSettings.setLayoutAlgorithm. Add a UMA histogram to record the layout algorithm being requested by apps which call WebSettings.setLayoutHistogram, in preparation for potentially deprecating/removing text autosizing. Bug: 391990606 Change-Id: I32bd665541bd0909cfa8a5add5ac4b38e5ab4a04 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6642582 Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Peter Beverloo <peter@chromium.org> Commit-Queue: Peter Beverloo <peter@chromium.org> Auto-Submit: Richard (Torne) Coles <torne@chromium.org> Cr-Commit-Position: refs/heads/main@{#1474827}
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java index 37eadbea..bb9506a4 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
@@ -85,6 +85,7 @@ /* See {@link android.webkit.WebSettings}. */ public static final int LAYOUT_ALGORITHM_NARROW_COLUMNS = 2; public static final int LAYOUT_ALGORITHM_TEXT_AUTOSIZING = 3; + private static final int LAYOUT_ALGORITHM_COUNT = 4; public static final int FORCE_DARK_OFF = ForceDarkMode.FORCE_DARK_OFF; public static final int FORCE_DARK_AUTO = ForceDarkMode.FORCE_DARK_AUTO; @@ -1304,6 +1305,8 @@ /** See {@link android.webkit.WebSettings#setLayoutAlgorithm}. */ public void setLayoutAlgorithm(@LayoutAlgorithm int l) { if (TRACE) Log.i(TAG, "setLayoutAlgorithm=" + l); + RecordHistogram.recordEnumeratedHistogram( + "Android.WebView.SetLayoutAlgorithm", l, LAYOUT_ALGORITHM_COUNT); synchronized (mAwSettingsLock) { if (mLayoutAlgorithm != l) { mLayoutAlgorithm = l;
diff --git a/tools/metrics/histograms/metadata/android/enums.xml b/tools/metrics/histograms/metadata/android/enums.xml index 4e5685a..5ef0a6e 100644 --- a/tools/metrics/histograms/metadata/android/enums.xml +++ b/tools/metrics/histograms/metadata/android/enums.xml
@@ -2431,6 +2431,13 @@ <int value="5" label="WebView light, night mode off"/> </enum> +<enum name="WebViewLayoutAlgorithm"> + <int value="0" label="NORMAL"/> + <int value="1" label="SINGLE_COLUMN"/> + <int value="2" label="NARROW_COLUMNS"/> + <int value="3" label="TEXT_AUTOSIZING"/> +</enum> + <enum name="WebViewMixedContentMode"> <int value="0" label="Always allow"/> <int value="1" label="Never allow"/>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index 74949571..138fd10 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -8121,6 +8121,16 @@ </summary> </histogram> +<histogram name="Android.WebView.SetLayoutAlgorithm" + enum="WebViewLayoutAlgorithm" expires_after="2027-12-01"> + <owner>torne@chromium.org</owner> + <owner>src/android_webview/OWNERS</owner> + <summary> + Records the layout algorithm requested in each call to + WebSettings.setLayoutAlgorithm(). + </summary> +</histogram> + <histogram name="Android.WebView.ShouldInterceptRequest.Async.CallbackLeakedWithoutResponse" enum="Boolean" expires_after="2026-03-10">