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.
4
5#ifndef ASH_KEYBOARD_UMA_EVENT_FILTER_H_
6#define ASH_KEYBOARD_UMA_EVENT_FILTER_H_
7
8#include "base/compiler_specific.h"
9#include "base/time/time.h"
10#include "ui/events/event_handler.h"
11
12namespace ash {
13
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.
17class KeyboardUMAEventFilter : public ui::EventHandler {
18 public:
19  KeyboardUMAEventFilter();
20  virtual ~KeyboardUMAEventFilter();
21
22  // ui::EventHandler overrides:
23  virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE;
24
25 private:
26  // The timestamp of the last character keystroke.
27  base::TimeDelta last_keystroke_time_;
28
29  DISALLOW_COPY_AND_ASSIGN(KeyboardUMAEventFilter);
30};
31
32}  // namespace ash
33
34#endif  // ASH_KEYBOARD_UMA_EVENT_FILTER_H_
35