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

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

Issue 600263002: Get Win32K lockdown for renderers working again on Windows 8+. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix linux build failures Created 6 years, 2 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
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/timer.h" 9 #include "base/timer/timer.h"
10 #include "content/browser/accessibility/accessibility_mode_helper.h" 10 #include "content/browser/accessibility/accessibility_mode_helper.h"
11 #include "content/browser/renderer_host/render_widget_host_impl.h" 11 #include "content/browser/renderer_host/render_widget_host_impl.h"
12 #include "content/browser/web_contents/web_contents_impl.h" 12 #include "content/browser/web_contents/web_contents_impl.h"
13 #include "content/public/browser/browser_thread.h" 13 #include "content/public/browser/browser_thread.h"
14 #include "content/public/common/content_switches.h" 14 #include "content/public/common/content_switches.h"
15 #include "ui/gfx/sys_color_change_listener.h" 15 #include "ui/gfx/sys_color_change_listener.h"
16 16
17 #if defined(OS_WIN)
18 #include "base/win/windows_version.h"
19 #endif
20
21 namespace content { 17 namespace content {
22 18
23 // Update the accessibility histogram 45 seconds after initialization. 19 // Update the accessibility histogram 45 seconds after initialization.
24 static const int kAccessibilityHistogramDelaySecs = 45; 20 static const int kAccessibilityHistogramDelaySecs = 45;
25 21
26 // static 22 // static
27 BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() { 23 BrowserAccessibilityState* BrowserAccessibilityState::GetInstance() {
28 return BrowserAccessibilityStateImpl::GetInstance(); 24 return BrowserAccessibilityStateImpl::GetInstance();
29 } 25 }
30 26
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 void BrowserAccessibilityStateImpl::EnableAccessibility() { 68 void BrowserAccessibilityStateImpl::EnableAccessibility() {
73 AddAccessibilityMode(AccessibilityModeComplete); 69 AddAccessibilityMode(AccessibilityModeComplete);
74 } 70 }
75 71
76 void BrowserAccessibilityStateImpl::DisableAccessibility() { 72 void BrowserAccessibilityStateImpl::DisableAccessibility() {
77 ResetAccessibilityMode(); 73 ResetAccessibilityMode();
78 } 74 }
79 75
80 void BrowserAccessibilityStateImpl::ResetAccessibilityModeValue() { 76 void BrowserAccessibilityStateImpl::ResetAccessibilityModeValue() {
81 accessibility_mode_ = AccessibilityModeOff; 77 accessibility_mode_ = AccessibilityModeOff;
82 #if defined(OS_WIN)
83 // On Windows 8, always enable accessibility for editable text controls
84 // so we can show the virtual keyboard when one is enabled.
85 if (base::win::GetVersion() >= base::win::VERSION_WIN8 &&
86 !base::CommandLine::ForCurrentProcess()->HasSwitch(
87 switches::kDisableRendererAccessibility)) {
88 accessibility_mode_ = AccessibilityModeEditableTextOnly;
89 }
90 #endif // defined(OS_WIN)
91
92 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 78 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
93 switches::kForceRendererAccessibility)) { 79 switches::kForceRendererAccessibility)) {
94 accessibility_mode_ = AccessibilityModeComplete; 80 accessibility_mode_ = AccessibilityModeComplete;
95 } 81 }
96 } 82 }
97 83
98 void BrowserAccessibilityStateImpl::ResetAccessibilityMode() { 84 void BrowserAccessibilityStateImpl::ResetAccessibilityMode() {
99 ResetAccessibilityModeValue(); 85 ResetAccessibilityModeValue();
100 86
101 std::vector<WebContentsImpl*> web_contents_vector = 87 std::vector<WebContentsImpl*> web_contents_vector =
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 WebContentsImpl::GetAllWebContents(); 157 WebContentsImpl::GetAllWebContents();
172 for (size_t i = 0; i < web_contents_vector.size(); ++i) { 158 for (size_t i = 0; i < web_contents_vector.size(); ++i) {
173 if (add) 159 if (add)
174 web_contents_vector[i]->AddAccessibilityMode(mode); 160 web_contents_vector[i]->AddAccessibilityMode(mode);
175 else 161 else
176 web_contents_vector[i]->RemoveAccessibilityMode(mode); 162 web_contents_vector[i]->RemoveAccessibilityMode(mode);
177 } 163 }
178 } 164 }
179 165
180 } // namespace content 166 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698