Avoid using ToInternalValue in computing timings, so that the timings are consistent...
[chromium-blink-merge.git] / ash / keyboard_uma_event_filter.h
blob85ea4c6be0037f077ca6ed8e537d36511d9606b6
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ASH_KEYBOARD_UMA_EVENT_FILTER_H_
6 #define ASH_KEYBOARD_UMA_EVENT_FILTER_H_
8 #include "base/compiler_specific.h"
9 #include "base/time/time.h"
10 #include "ui/events/event_handler.h"
12 namespace ash {
14 // EventFilter for tracking keyboard-related metrics, which intercepts events
15 // before they are processed by the usual path and logs metrics about the
16 // events.
17 class KeyboardUMAEventFilter : public ui::EventHandler {
18 public:
19 KeyboardUMAEventFilter();
20 virtual ~KeyboardUMAEventFilter();
22 // ui::EventHandler overrides:
23 virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE;
25 private:
26 // The timestamp of the last character keystroke.
27 base::TimeDelta last_keystroke_time_;
29 DISALLOW_COPY_AND_ASSIGN(KeyboardUMAEventFilter);
32 } // namespace ash
34 #endif // ASH_KEYBOARD_UMA_EVENT_FILTER_H_