| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2014 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/accessibility_mode_helper.h" |
| 6 |
| 7 #if defined(OS_WIN) |
| 8 #include "base/command_line.h" |
| 9 #include "base/win/windows_version.h" |
| 10 #include "content/public/common/content_switches.h" |
| 11 #endif |
| 12 |
| 13 namespace content { |
| 14 |
| 15 namespace { |
| 16 |
| 17 AccessibilityMode CastToAccessibilityMode(unsigned int int_mode) { |
| 18 AccessibilityMode mode = static_cast<AccessibilityMode>(int_mode); |
| 19 switch (mode) { |
| 20 case AccessibilityModeOff: |
| 21 case AccessibilityModeComplete: |
| 22 case AccessibilityModeEditableTextOnly: |
| 23 return mode; |
| 24 } |
| 25 DCHECK(false) << "Could not convert to AccessibilityMode: " << int_mode; |
| 26 return AccessibilityModeOff; |
| 27 } |
| 28 |
| 29 } // namespace |
| 30 |
| 31 AccessibilityMode AddAccessibilityModeTo(AccessibilityMode to, |
| 32 AccessibilityMode mode_to_add) { |
| 33 return CastToAccessibilityMode(to | mode_to_add); |
| 34 } |
| 35 |
| 36 AccessibilityMode RemoveAccessibilityModeFrom( |
| 37 AccessibilityMode from, |
| 38 AccessibilityMode mode_to_remove) { |
| 39 unsigned int new_mode = from ^ (mode_to_remove & from); |
| 40 #if defined(OS_WIN) |
| 41 // On Windows 8, always enable accessibility for editable text controls |
| 42 // so we can show the virtual keyboard when one is enabled. |
| 43 if (base::win::GetVersion() >= base::win::VERSION_WIN8 && |
| 44 !CommandLine::ForCurrentProcess()->HasSwitch( |
| 45 switches::kDisableRendererAccessibility)) { |
| 46 if ((from & AccessibilityModeEditableTextOnly) == |
| 47 AccessibilityModeEditableTextOnly) |
| 48 new_mode |= AccessibilityModeEditableTextOnly; |
| 49 } |
| 50 #endif // defined(OS_WIN) |
| 51 |
| 52 return CastToAccessibilityMode(new_mode); |
| 53 } |
| 54 |
| 55 } // namespace content |
| OLD | NEW |