Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Unified Diff: ui/events/event_utils.cc

Issue 2007083002: Validate that ui::Event::time_stamp comes from the same clock as TimeTicks::Now (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@453559-use-timeticks-ui-event
Patch Set: Address feedback Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/event_utils.h ('k') | ui/events/test/event_generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/event_utils.cc
diff --git a/ui/events/event_utils.cc b/ui/events/event_utils.cc
index a079ff22b620093e8673b61d7945ead6a257393b..2e34a82477e0ed6a591b0e325c4a7d1dd34a4a71 100644
--- a/ui/events/event_utils.cc
+++ b/ui/events/event_utils.cc
@@ -61,8 +61,27 @@ int RegisterCustomEventType() {
return ++g_custom_event_types;
}
-base::TimeTicks EventTimeForNow() {
- return base::TimeTicks::Now();
+void ValidateEventTimeClock(base::TimeTicks* timestamp) {
+// Restrict this validation to DCHECK builds except when using X11 which is
+// known to provide bogus timestamps that require correction (crbug.com/611950).
+#if defined(USE_X11) || DCHECK_IS_ON()
+ if (base::debug::BeingDebugged())
+ return;
+
+ base::TimeTicks now = EventTimeForNow();
+ int64_t delta = (now - *timestamp).InMilliseconds();
+ if (delta < 0 || delta > 60 * 1000) {
+ UMA_HISTOGRAM_BOOLEAN("Event.TimestampHasValidTimebase", false);
+#if defined(USE_X11)
+ *timestamp = now;
+#else
+ NOTREACHED() << "Unexpected event timestamp, now:" << now
+ << " event timestamp:" << *timestamp;
+#endif
+ }
+
+ UMA_HISTOGRAM_BOOLEAN("Event.TimestampHasValidTimebase", true);
+#endif
}
bool ShouldDefaultToNaturalScroll() {
« no previous file with comments | « ui/events/event_utils.h ('k') | ui/events/test/event_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698