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