blob: 7edc3e0cc8d3912dc2bac15d65e3f00bf1898ff7 [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"
[email protected]123f0d042012-03-17 04:52:1110#include "ui/gfx/sys_color_change_listener.h"
[email protected]fa4f91682012-02-21 19:53:2611
12// Update the accessibility histogram 45 seconds after initialization.
13static const int kAccessibilityHistogramDelaySecs = 45;
14
15// static
16BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() {
17 return BrowserAccessibilityStateImpl::GetInstance();
18}
19
20// static
21BrowserAccessibilityStateImpl* BrowserAccessibilityStateImpl::GetInstance() {
22 return Singleton<BrowserAccessibilityStateImpl>::get();
23}
24
25BrowserAccessibilityStateImpl::BrowserAccessibilityStateImpl()
26 : BrowserAccessibilityState(),
27 accessibility_enabled_(false) {
28 update_histogram_timer_.Start(
29 FROM_HERE,
30 base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs),
31 this,
32 &BrowserAccessibilityStateImpl::UpdateHistogram);
33}
34
35BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() {
36}
37
38void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
39 accessibility_enabled_ = true;
40}
41
42void BrowserAccessibilityStateImpl::OnAccessibilityEnabledManually() {
43 // We may want to do something different with this later.
44 accessibility_enabled_ = true;
45}
46
47bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() {
48 return accessibility_enabled_;
49}
50
51void BrowserAccessibilityStateImpl::UpdateHistogram() {
52 UMA_HISTOGRAM_ENUMERATION("Accessibility.State",
53 accessibility_enabled_ ? 1 : 0,
54 2);
[email protected]123f0d042012-03-17 04:52:1155 UMA_HISTOGRAM_ENUMERATION("Accessibility.InvertedColors",
56 gfx::IsInvertedColorScheme() ? 1 : 0,
57 2);
[email protected]fa4f91682012-02-21 19:53:2658}