Updates to Click Interaction Events Histogram
* add one more enum value to identify case where neither PointerId nor
LastPointerId exist in map
* move last_pointer_id update earlier to fix for the issue when orphan
pointerup handling feature is turned on, the last_pointer_id wasn't
updated correctly.
NO_IFTTT=We believe IFTTT is reporting false negative.
Bug: 40891709
Change-Id: I7f5d52b53cd89c8f545128580cb90a8e44756ae9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5653780
Commit-Queue: Aoyuan Zuo <zuoaoyuan@chromium.org>
Reviewed-by: Michal Mocny <mmocny@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1319439}
diff --git a/third_party/blink/renderer/core/timing/responsiveness_metrics.cc b/third_party/blink/renderer/core/timing/responsiveness_metrics.cc
index 7d4490a..851896a 100644
--- a/third_party/blink/renderer/core/timing/responsiveness_metrics.cc
+++ b/third_party/blink/renderer/core/timing/responsiveness_metrics.cc
@@ -77,9 +77,10 @@
kPointerClickWithMissingPointerdownOnly = 2,
kPointerClickWithMissingPointerupOnly = 3,
kPointerClickWithMissingPointerdownAndPointerup = 4,
- kPointerClickPointerIdDifferFromLastPointerIdButExistInMap = 5,
- kPointerClickPointerIdDifferFromLastPointerIdAndNotInMap = 6,
- kKeyboardClick = 7,
+ kPointerClickPointerIdDifferFromLastPointerIdAndPointerIdExistInMap = 5,
+ kPointerClickPointerIdDifferFromLastPointerIdAndOnlyLastPointerIdInMap = 6,
+ kPointerClickPointerIdDifferFromLastPointerIdAndNeitherInMap = 7,
+ kKeyboardClick = 8,
kMaxValue = kKeyboardClick,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:EventTimingClickInteractionEvents)
@@ -338,6 +339,7 @@
FlushPointerup();
is_last_pointerup_orphan_ = false;
+ last_pointer_id_ = pointer_id;
// Platforms like Android would create ever-increasing pointer_id for
// interactions, whereas platforms like linux could reuse the same id for
@@ -380,7 +382,6 @@
}
// Start the timer to flush the entry just created later, if needed.
pointer_flush_timer_.StartOneShot(kFlushTimerLength, FROM_HERE);
- last_pointer_id_ = pointer_id;
} else if (event_type == event_type_names::kClick) {
base::UmaHistogramEnumeration(
kPageLoadInternalEventTimingClickInteractionEvents,
@@ -405,12 +406,19 @@
base::UmaHistogramEnumeration(
kPageLoadInternalEventTimingClickInteractionEvents,
ClickInteractionEvents::
- kPointerClickPointerIdDifferFromLastPointerIdButExistInMap);
+ kPointerClickPointerIdDifferFromLastPointerIdAndPointerIdExistInMap);
} else {
- base::UmaHistogramEnumeration(
- kPageLoadInternalEventTimingClickInteractionEvents,
- ClickInteractionEvents::
- kPointerClickPointerIdDifferFromLastPointerIdAndNotInMap);
+ if (pointer_id_entry_map_.Contains(*last_pointer_id_)) {
+ base::UmaHistogramEnumeration(
+ kPageLoadInternalEventTimingClickInteractionEvents,
+ ClickInteractionEvents::
+ kPointerClickPointerIdDifferFromLastPointerIdAndOnlyLastPointerIdInMap);
+ } else {
+ base::UmaHistogramEnumeration(
+ kPageLoadInternalEventTimingClickInteractionEvents,
+ ClickInteractionEvents::
+ kPointerClickPointerIdDifferFromLastPointerIdAndNeitherInMap);
+ }
}
}
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 06d4582b..8f30fc4 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -5642,12 +5642,15 @@
<int value="3" label="Pointer click with missing pointerup only"/>
<int value="4" label="Pointer click with missing pointerdown and pointerup"/>
<int value="5"
- label="Pointer click PointerId differ from LastPointerId but exist in
- the map"/>
+ label="Pointer click PointerId differ from LastPointerId and PointerId
+ exist in the map"/>
<int value="6"
- label="Pointer click PointerId differ from LastPointerId and not in the
- map"/>
- <int value="7" label="Keyboard click"/>
+ label="Pointer click PointerId differ from LastPointerId and only
+ LastPointerId in the map"/>
+ <int value="7"
+ label="Pointer click PointerId differ from LastPointerId and neither in
+ the map"/>
+ <int value="8" label="Keyboard click"/>
</enum>
<enum name="Experiment3pcBlockStatus">