[TabGroupCollapse] Emit metric on manual collapse/expand
Emit metric on manual collapse/expand.
-Recorded as Android.TabStrip.TabGroupCollapsed.
-True if collapsing and false if expanding.
-Does not record when the collapse state is automatically updated. For
example, we don't record when synced groups are automatically collapsed
or when a tab selections automatically expands a group.
Bug: 346344439
Change-Id: I969b1fe52046cbfebc4a9021a9be5479b254aecf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5631000
Reviewed-by: Sirisha Kavuluru <skavuluru@google.com>
Reviewed-by: Zhe Li <zheliooo@google.com>
Commit-Queue: Neil Coronado <nemco@google.com>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Sinan Sahin <sinansahin@google.com>
Cr-Commit-Position: refs/heads/main@{#1314963}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
index b9f8abb..04ce2a10 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
@@ -2606,6 +2606,7 @@
assert isCollapsed == groupTitle.isCollapsed();
mTabGroupModelFilter.setTabGroupCollapsed(rootId, !isCollapsed);
+ RecordHistogram.recordBooleanHistogram("Android.TabStrip.TabGroupCollapsed", !isCollapsed);
}
private Animator updateTabCollapsed(StripLayoutTab tab, boolean isCollapsed, boolean animate) {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
index b2fc8418..aaba96e3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java
@@ -60,6 +60,7 @@
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Features.DisableFeatures;
import org.chromium.base.test.util.Features.EnableFeatures;
+import org.chromium.base.test.util.HistogramWatcher;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.LayerTitleCache;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerHost;
@@ -4117,6 +4118,8 @@
})
public void testHandleGroupTitleClick_Collapse() {
// Initialize with 4 tabs. Group first three tabs.
+ HistogramWatcher histogramWatcher =
+ HistogramWatcher.newSingleRecordWatcher("Android.TabStrip.TabGroupCollapsed", true);
initializeTest(false, false, true, 3, 4);
mStripLayoutHelper.onSizeChanged(
SCREEN_WIDTH, SCREEN_HEIGHT, false, TIMESTAMP, PADDING_LEFT, PADDING_RIGHT);
@@ -4128,6 +4131,8 @@
// Verify the proper event was sent to the TabGroupModelFilter.
verify(mTabGroupModelFilter).setTabGroupCollapsed(0, true);
+ // Verify we record the correct metric.
+ histogramWatcher.assertExpected("Should record true, since we're collapsing.");
}
@Test
@@ -4137,6 +4142,9 @@
})
public void testHandleGroupTitleClick_Expand() {
// Initialize with 4 tabs. Group first three tabs.
+ HistogramWatcher histogramWatcher =
+ HistogramWatcher.newSingleRecordWatcher(
+ "Android.TabStrip.TabGroupCollapsed", false);
initializeTest(false, false, true, 3, 4);
mStripLayoutHelper.onSizeChanged(
SCREEN_WIDTH, SCREEN_HEIGHT, false, TIMESTAMP, PADDING_LEFT, PADDING_RIGHT);
@@ -4150,6 +4158,8 @@
// Verify the proper event was sent to the TabGroupModelFilter.
verify(mTabGroupModelFilter).setTabGroupCollapsed(0, false);
+ // Verify we record the correct metric.
+ histogramWatcher.assertExpected("Should record false, since we're expanding.");
}
@Test
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index b91d739..82df7f7b40 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -4661,6 +4661,20 @@
</summary>
</histogram>
+<histogram name="Android.TabStrip.TabGroupCollapsed" enum="Boolean"
+ expires_after="2024-09-13">
+ <owner>nemco@google.com</owner>
+ <owner>skavuluru@google.com</owner>
+ <owner>zheliooo@google.com</owner>
+ <summary>
+ Recorded when the user clicks on the tab group title indicator to collapse
+ or expand it. True if the user is collapsing a group and false if a user is
+ expanding it. We don't record when the collapsed state changes
+ automatically. e.g. Selecting a tab automatically expands its group and
+ groups created through sync are automatically collapsed.
+ </summary>
+</histogram>
+
<histogram name="Android.TabStrip.TimeToBufferSwapAfterInitializeTabState"
units="ms" expires_after="2024-11-17">
<owner>nemco@google.com</owner>