Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Side by Side Diff: content/browser/accessibility/browser_accessibility_state_impl.cc

Issue 11778045: Add test for accessibility histograms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed extraneous comments Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/accessibility/browser_accessibility_state_impl.h" 5 #include "content/browser/accessibility/browser_accessibility_state_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/timer.h" 9 #include "base/timer.h"
10 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 accessibility_mode_ = AccessibilityModeEditableTextOnly; 43 accessibility_mode_ = AccessibilityModeEditableTextOnly;
44 } 44 }
45 #endif // defined(OS_WIN) 45 #endif // defined(OS_WIN)
46 46
47 if (CommandLine::ForCurrentProcess()->HasSwitch( 47 if (CommandLine::ForCurrentProcess()->HasSwitch(
48 switches::kForceRendererAccessibility)) { 48 switches::kForceRendererAccessibility)) {
49 accessibility_mode_ = AccessibilityModeComplete; 49 accessibility_mode_ = AccessibilityModeComplete;
50 } 50 }
51 51
52 #if defined(OS_WIN) 52 #if defined(OS_WIN)
53 // On Windows, UpdateHistogram calls some system functions with unknown 53 // On Windows, UpdateHistograms calls some system functions with unknown
54 // runtime, so call it on the file thread to ensure there's no jank. 54 // runtime, so call it on the file thread to ensure there's no jank.
55 // Everything in that method must be safe to call on another thread. 55 // Everything in that method must be safe to call on another thread.
56 BrowserThread::ID update_histogram_thread = BrowserThread::FILE; 56 BrowserThread::ID update_histogram_thread = BrowserThread::FILE;
57 #else 57 #else
58 // On all other platforms, UpdateHistogram should be called on the main 58 // On all other platforms, UpdateHistograms should be called on the main
59 // thread. 59 // thread.
60 BrowserThread::ID update_histogram_thread = BrowserThread::UI; 60 BrowserThread::ID update_histogram_thread = BrowserThread::UI;
61 #endif 61 #endif
62 62
63 // We need to AddRef() the leaky singleton so that Bind doesn't 63 // We need to AddRef() the leaky singleton so that Bind doesn't
64 // delete it prematurely. 64 // delete it prematurely.
65 AddRef(); 65 AddRef();
66 BrowserThread::PostDelayedTask( 66 BrowserThread::PostDelayedTask(
67 update_histogram_thread, FROM_HERE, 67 update_histogram_thread, FROM_HERE,
68 base::Bind(&BrowserAccessibilityStateImpl::UpdateHistogram, this), 68 base::Bind(&BrowserAccessibilityStateImpl::UpdateHistograms, this),
69 base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs)); 69 base::TimeDelta::FromSeconds(kAccessibilityHistogramDelaySecs));
70 } 70 }
71 71
72 BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() { 72 BrowserAccessibilityStateImpl::~BrowserAccessibilityStateImpl() {
73 } 73 }
74 74
75 void BrowserAccessibilityStateImpl::OnScreenReaderDetected() { 75 void BrowserAccessibilityStateImpl::OnScreenReaderDetected() {
76 if (CommandLine::ForCurrentProcess()->HasSwitch( 76 if (CommandLine::ForCurrentProcess()->HasSwitch(
77 switches::kDisableRendererAccessibility)) { 77 switches::kDisableRendererAccessibility)) {
78 return; 78 return;
79 } 79 }
80 SetAccessibilityMode(AccessibilityModeComplete); 80 SetAccessibilityMode(AccessibilityModeComplete);
81 } 81 }
82 82
83 void BrowserAccessibilityStateImpl::OnAccessibilityEnabledManually() { 83 void BrowserAccessibilityStateImpl::OnAccessibilityEnabledManually() {
84 // We may want to do something different with this later. 84 // We may want to do something different with this later.
85 SetAccessibilityMode(AccessibilityModeComplete); 85 SetAccessibilityMode(AccessibilityModeComplete);
86 } 86 }
87 87
88 bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() { 88 bool BrowserAccessibilityStateImpl::IsAccessibleBrowser() {
89 return (accessibility_mode_ == AccessibilityModeComplete); 89 return (accessibility_mode_ == AccessibilityModeComplete);
90 } 90 }
91 91
92 void BrowserAccessibilityStateImpl::AddHistogramCallback( 92 void BrowserAccessibilityStateImpl::AddHistogramCallback(
93 base::Closure callback) { 93 base::Closure callback) {
94 histogram_callbacks_.push_back(callback); 94 histogram_callbacks_.push_back(callback);
95 } 95 }
96 96
97 void BrowserAccessibilityStateImpl::UpdateHistogram() { 97 void BrowserAccessibilityStateImpl::UpdateHistogramsForTesting() {
98 UpdateHistograms();
99 }
100
101 void BrowserAccessibilityStateImpl::UpdateHistograms() {
98 UpdatePlatformSpecificHistograms(); 102 UpdatePlatformSpecificHistograms();
99 103
100 for (size_t i = 0; i < histogram_callbacks_.size(); ++i) 104 for (size_t i = 0; i < histogram_callbacks_.size(); ++i)
101 histogram_callbacks_[i].Run(); 105 histogram_callbacks_[i].Run();
102 106
103 UMA_HISTOGRAM_BOOLEAN("Accessibility.State", IsAccessibleBrowser()); 107 UMA_HISTOGRAM_BOOLEAN("Accessibility.State", IsAccessibleBrowser());
104 UMA_HISTOGRAM_BOOLEAN("Accessibility.InvertedColors", 108 UMA_HISTOGRAM_BOOLEAN("Accessibility.InvertedColors",
105 gfx::IsInvertedColorScheme()); 109 gfx::IsInvertedColorScheme());
106 UMA_HISTOGRAM_BOOLEAN("Accessibility.ManuallyEnabled", 110 UMA_HISTOGRAM_BOOLEAN("Accessibility.ManuallyEnabled",
107 CommandLine::ForCurrentProcess()->HasSwitch( 111 CommandLine::ForCurrentProcess()->HasSwitch(
108 switches::kForceRendererAccessibility)); 112 switches::kForceRendererAccessibility));
109 } 113 }
110 114
111 #if !defined(OS_WIN) 115 #if !defined(OS_WIN)
112 void BrowserAccessibilityStateImpl::UpdatePlatformSpecificHistograms() { 116 void BrowserAccessibilityStateImpl::UpdatePlatformSpecificHistograms() {
113 } 117 }
114 #endif 118 #endif
115 119
116 AccessibilityMode BrowserAccessibilityStateImpl::GetAccessibilityMode() { 120 AccessibilityMode BrowserAccessibilityStateImpl::GetAccessibilityMode() {
117 return accessibility_mode_; 121 return accessibility_mode_;
118 } 122 }
119 123
120 void BrowserAccessibilityStateImpl::SetAccessibilityMode( 124 void BrowserAccessibilityStateImpl::SetAccessibilityMode(
121 AccessibilityMode mode) { 125 AccessibilityMode mode) {
122 accessibility_mode_ = mode; 126 accessibility_mode_ = mode;
123 } 127 }
124 128
125 } // namespace content 129 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/accessibility/browser_accessibility_state_impl.h ('k') | content/public/browser/browser_accessibility_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698