blob: 08c07757671c49212259cdedb3aadd61da1e0c44 [file] [log] [blame]
[email protected]fa4f91682012-02-21 19:53:261// Copyright (c) 2012 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#include "content/browser/accessibility/browser_accessibility_state_impl.h"
6
7#include "base/memory/singleton.h"
8#include "base/metrics/histogram.h"
9#include "base/timer.h"
10
11// Update the accessibility histogram 45 seconds after initialization.
12static const int kAccessibilityHistogramDelaySecs = 45;
13
14// static
15BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() {
16 return BrowserAccessibilityStateImpl::GetInstance();
17}
18
19// static
20BrowserAccessibilityStateImpl* BrowserAccessibilityStateImpl::GetInstance() {
21 return Singleton<BrowserAccessibilityStateImpl>::get();
22}
23
24BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
25 : BrowserAccessibilityState(),
26 accessibility_enabled_(false) {
27 update_histogram_timer_.Start(
28 FROM_HERE,
29 base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs),
30 this,
31 &BrowserAccessibilityStateImpl::UpdateHistogram);
32}
33
34BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() {
35}
36
37void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
38 accessibility_enabled_ = true;
39}
40
41void BrowserAccessibilityStateImpl::OnAccessibilityEnabledManually() {
42 // We may want to do something different with this later.
43 accessibility_enabled_ = true;
44}
45
46bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() {
47 return accessibility_enabled_;
48}
49
50void BrowserAccessibilityStateImpl::UpdateHistogram() {
51 UMA_HISTOGRAM_ENUMERATION("Accessibility.State",
52 accessibility_enabled_ ? 1 : 0,
53 2);
54}