| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "content/browser/renderer_host/render_view_host_impl.h" | 6 #include "content/browser/renderer_host/render_view_host_impl.h" |
| 7 #include "content/browser/renderer_host/render_widget_host_impl.h" | 7 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 8 #include "content/browser/renderer_host/render_widget_host_view_base.h" | 8 #include "content/browser/renderer_host/render_widget_host_view_base.h" |
| 9 #include "content/browser/web_contents/web_contents_impl.h" | 9 #include "content/browser/web_contents/web_contents_impl.h" |
| 10 #include "content/public/browser/render_view_host.h" | 10 #include "content/public/browser/render_view_host.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 if (result) | 57 if (result) |
| 58 return result; | 58 return result; |
| 59 } | 59 } |
| 60 return nullptr; | 60 return nullptr; |
| 61 } | 61 } |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AccessibilityModeOff) { | 64 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AccessibilityModeOff) { |
| 65 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); | 65 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); |
| 66 | 66 |
| 67 EXPECT_EQ(AccessibilityModeOff, web_contents()->GetAccessibilityMode()); | 67 EXPECT_EQ(AccessibilityMode::OFF, web_contents()->GetAccessibilityMode()); |
| 68 EXPECT_EQ(nullptr, GetManager()); | 68 EXPECT_EQ(nullptr, GetManager()); |
| 69 } | 69 } |
| 70 | 70 |
| 71 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AccessibilityModeComplete) { | 71 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AccessibilityModeComplete) { |
| 72 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); | 72 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); |
| 73 ASSERT_EQ(AccessibilityModeOff, web_contents()->GetAccessibilityMode()); | 73 ASSERT_EQ(AccessibilityMode::OFF, web_contents()->GetAccessibilityMode()); |
| 74 | 74 |
| 75 AccessibilityNotificationWaiter waiter(shell()->web_contents()); | 75 AccessibilityNotificationWaiter waiter(shell()->web_contents()); |
| 76 web_contents()->AddAccessibilityMode(ACCESSIBILITY_MODE_COMPLETE); | 76 web_contents()->AddAccessibilityMode(AccessibilityMode::COMPLETE); |
| 77 EXPECT_EQ(ACCESSIBILITY_MODE_COMPLETE, | 77 EXPECT_EQ(AccessibilityMode::COMPLETE, |
| 78 web_contents()->GetAccessibilityMode()); | 78 web_contents()->GetAccessibilityMode()); |
| 79 waiter.WaitForNotification(); | 79 waiter.WaitForNotification(); |
| 80 EXPECT_NE(nullptr, GetManager()); | 80 EXPECT_NE(nullptr, GetManager()); |
| 81 } | 81 } |
| 82 | 82 |
| 83 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, | 83 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, |
| 84 AccessibilityModeWebContentsOnly) { | 84 AccessibilityModeWebContentsOnly) { |
| 85 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); | 85 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); |
| 86 ASSERT_EQ(AccessibilityModeOff, web_contents()->GetAccessibilityMode()); | 86 ASSERT_EQ(AccessibilityMode::OFF, web_contents()->GetAccessibilityMode()); |
| 87 | 87 |
| 88 AccessibilityNotificationWaiter waiter(shell()->web_contents()); | 88 AccessibilityNotificationWaiter waiter(shell()->web_contents()); |
| 89 web_contents()->AddAccessibilityMode(ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY); | 89 web_contents()->AddAccessibilityMode(AccessibilityMode::WEB_CONTENTS_ONLY); |
| 90 EXPECT_EQ(ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY, | 90 EXPECT_EQ(AccessibilityMode::WEB_CONTENTS_ONLY, |
| 91 web_contents()->GetAccessibilityMode()); | 91 web_contents()->GetAccessibilityMode()); |
| 92 waiter.WaitForNotification(); | 92 waiter.WaitForNotification(); |
| 93 // No BrowserAccessibilityManager expected for this mode. | 93 // No BrowserAccessibilityManager expected for this mode. |
| 94 EXPECT_EQ(nullptr, GetManager()); | 94 EXPECT_EQ(nullptr, GetManager()); |
| 95 } | 95 } |
| 96 | 96 |
| 97 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddingModes) { | 97 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddingModes) { |
| 98 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); | 98 NavigateToURL(shell(), GURL(kMinimalPageDataURL)); |
| 99 | 99 |
| 100 AccessibilityNotificationWaiter waiter(shell()->web_contents()); | 100 AccessibilityNotificationWaiter waiter(shell()->web_contents()); |
| 101 web_contents()->AddAccessibilityMode(ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY); | 101 web_contents()->AddAccessibilityMode(AccessibilityMode::WEB_CONTENTS_ONLY); |
| 102 EXPECT_EQ(ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY, | 102 EXPECT_EQ(AccessibilityMode::WEB_CONTENTS_ONLY, |
| 103 web_contents()->GetAccessibilityMode()); | 103 web_contents()->GetAccessibilityMode()); |
| 104 waiter.WaitForNotification(); | 104 waiter.WaitForNotification(); |
| 105 EXPECT_EQ(nullptr, GetManager()); | 105 EXPECT_EQ(nullptr, GetManager()); |
| 106 | 106 |
| 107 AccessibilityNotificationWaiter waiter2(shell()->web_contents()); | 107 AccessibilityNotificationWaiter waiter2(shell()->web_contents()); |
| 108 web_contents()->AddAccessibilityMode(ACCESSIBILITY_MODE_COMPLETE); | 108 web_contents()->AddAccessibilityMode(AccessibilityMode::COMPLETE); |
| 109 EXPECT_EQ(ACCESSIBILITY_MODE_COMPLETE, | 109 EXPECT_EQ(AccessibilityMode::COMPLETE, |
| 110 web_contents()->GetAccessibilityMode()); | 110 web_contents()->GetAccessibilityMode()); |
| 111 waiter2.WaitForNotification(); | 111 waiter2.WaitForNotification(); |
| 112 EXPECT_NE(nullptr, GetManager()); | 112 EXPECT_NE(nullptr, GetManager()); |
| 113 } | 113 } |
| 114 | 114 |
| 115 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, | 115 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, |
| 116 FullAccessibilityHasInlineTextBoxes) { | 116 FullAccessibilityHasInlineTextBoxes) { |
| 117 // TODO(dmazzoni): On Android we use an ifdef to disable inline text boxes, | 117 // TODO(dmazzoni): On Android we use an ifdef to disable inline text boxes, |
| 118 // we should do it with accessibility flags instead. http://crbug.com/672205 | 118 // we should do it with accessibility flags instead. http://crbug.com/672205 |
| 119 #if !defined(OS_ANDROID) | 119 #if !defined(OS_ANDROID) |
| 120 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 120 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 121 | 121 |
| 122 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 122 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
| 123 ACCESSIBILITY_MODE_COMPLETE, | 123 AccessibilityMode::COMPLETE, |
| 124 ui::AX_EVENT_LOAD_COMPLETE); | 124 ui::AX_EVENT_LOAD_COMPLETE); |
| 125 GURL url("data:text/html,<p>Para</p>"); | 125 GURL url("data:text/html,<p>Para</p>"); |
| 126 NavigateToURL(shell(), url); | 126 NavigateToURL(shell(), url); |
| 127 waiter.WaitForNotification(); | 127 waiter.WaitForNotification(); |
| 128 | 128 |
| 129 const BrowserAccessibility* text = FindNode(ui::AX_ROLE_STATIC_TEXT, "Para"); | 129 const BrowserAccessibility* text = FindNode(ui::AX_ROLE_STATIC_TEXT, "Para"); |
| 130 ASSERT_NE(nullptr, text); | 130 ASSERT_NE(nullptr, text); |
| 131 ASSERT_EQ(1U, text->InternalChildCount()); | 131 ASSERT_EQ(1U, text->InternalChildCount()); |
| 132 BrowserAccessibility* inline_text = text->InternalGetChild(0); | 132 BrowserAccessibility* inline_text = text->InternalGetChild(0); |
| 133 ASSERT_NE(nullptr, inline_text); | 133 ASSERT_NE(nullptr, inline_text); |
| 134 EXPECT_EQ(ui::AX_ROLE_INLINE_TEXT_BOX, inline_text->GetRole()); | 134 EXPECT_EQ(ui::AX_ROLE_INLINE_TEXT_BOX, inline_text->GetRole()); |
| 135 #endif // !defined(OS_ANDROID) | 135 #endif // !defined(OS_ANDROID) |
| 136 } | 136 } |
| 137 | 137 |
| 138 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, | 138 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, |
| 139 MinimalAccessibilityModeHasNoInlineTextBoxes) { | 139 MinimalAccessibilityModeHasNoInlineTextBoxes) { |
| 140 // TODO(dmazzoni): On Android we use an ifdef to disable inline text boxes, | 140 // TODO(dmazzoni): On Android we use an ifdef to disable inline text boxes, |
| 141 // we should do it with accessibility flags instead. http://crbug.com/672205 | 141 // we should do it with accessibility flags instead. http://crbug.com/672205 |
| 142 #if !defined(OS_ANDROID) | 142 #if !defined(OS_ANDROID) |
| 143 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 143 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 144 | 144 |
| 145 AccessibilityNotificationWaiter waiter( | 145 AccessibilityNotificationWaiter waiter( |
| 146 shell()->web_contents(), | 146 shell()->web_contents(), |
| 147 ACCESSIBILITY_MODE_FLAG_NATIVE_APIS | | 147 AccessibilityMode::NATIVE_APIS | AccessibilityMode::WEB_CONTENTS, |
| 148 ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS, | |
| 149 ui::AX_EVENT_LOAD_COMPLETE); | 148 ui::AX_EVENT_LOAD_COMPLETE); |
| 150 GURL url("data:text/html,<p>Para</p>"); | 149 GURL url("data:text/html,<p>Para</p>"); |
| 151 NavigateToURL(shell(), url); | 150 NavigateToURL(shell(), url); |
| 152 waiter.WaitForNotification(); | 151 waiter.WaitForNotification(); |
| 153 | 152 |
| 154 const BrowserAccessibility* text = FindNode(ui::AX_ROLE_STATIC_TEXT, "Para"); | 153 const BrowserAccessibility* text = FindNode(ui::AX_ROLE_STATIC_TEXT, "Para"); |
| 155 ASSERT_NE(nullptr, text); | 154 ASSERT_NE(nullptr, text); |
| 156 EXPECT_EQ(0U, text->InternalChildCount()); | 155 EXPECT_EQ(0U, text->InternalChildCount()); |
| 157 #endif // !defined(OS_ANDROID) | 156 #endif // !defined(OS_ANDROID) |
| 158 } | 157 } |
| 159 | 158 |
| 160 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddScreenReaderModeFlag) { | 159 IN_PROC_BROWSER_TEST_F(AccessibilityModeTest, AddScreenReaderModeFlag) { |
| 161 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | 160 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); |
| 162 | 161 |
| 163 AccessibilityNotificationWaiter waiter( | 162 AccessibilityNotificationWaiter waiter( |
| 164 shell()->web_contents(), | 163 shell()->web_contents(), |
| 165 ACCESSIBILITY_MODE_FLAG_NATIVE_APIS | | 164 AccessibilityMode::NATIVE_APIS | AccessibilityMode::WEB_CONTENTS, |
| 166 ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS, | |
| 167 ui::AX_EVENT_LOAD_COMPLETE); | 165 ui::AX_EVENT_LOAD_COMPLETE); |
| 168 GURL url("data:text/html,<input aria-label=Foo placeholder=Bar>"); | 166 GURL url("data:text/html,<input aria-label=Foo placeholder=Bar>"); |
| 169 NavigateToURL(shell(), url); | 167 NavigateToURL(shell(), url); |
| 170 waiter.WaitForNotification(); | 168 waiter.WaitForNotification(); |
| 171 | 169 |
| 172 const BrowserAccessibility* textbox = FindNode(ui::AX_ROLE_TEXT_FIELD, "Foo"); | 170 const BrowserAccessibility* textbox = FindNode(ui::AX_ROLE_TEXT_FIELD, "Foo"); |
| 173 ASSERT_NE(nullptr, textbox); | 171 ASSERT_NE(nullptr, textbox); |
| 174 EXPECT_FALSE(textbox->HasStringAttribute(ui::AX_ATTR_PLACEHOLDER)); | 172 EXPECT_FALSE(textbox->HasStringAttribute(ui::AX_ATTR_PLACEHOLDER)); |
| 175 int original_id = textbox->GetId(); | 173 int original_id = textbox->GetId(); |
| 176 | 174 |
| 177 AccessibilityNotificationWaiter waiter2( | 175 AccessibilityNotificationWaiter waiter2(shell()->web_contents(), |
| 178 shell()->web_contents(), 0, ui::AX_EVENT_LAYOUT_COMPLETE); | 176 AccessibilityMode::OFF, |
| 177 ui::AX_EVENT_LAYOUT_COMPLETE); |
| 179 BrowserAccessibilityStateImpl::GetInstance()->AddAccessibilityModeFlags( | 178 BrowserAccessibilityStateImpl::GetInstance()->AddAccessibilityModeFlags( |
| 180 ACCESSIBILITY_MODE_FLAG_SCREEN_READER); | 179 AccessibilityMode::SCREEN_READER); |
| 181 waiter2.WaitForNotification(); | 180 waiter2.WaitForNotification(); |
| 182 | 181 |
| 183 const BrowserAccessibility* textbox2 = FindNode( | 182 const BrowserAccessibility* textbox2 = FindNode( |
| 184 ui::AX_ROLE_TEXT_FIELD, "Foo"); | 183 ui::AX_ROLE_TEXT_FIELD, "Foo"); |
| 185 ASSERT_NE(nullptr, textbox2); | 184 ASSERT_NE(nullptr, textbox2); |
| 186 EXPECT_TRUE(textbox2->HasStringAttribute(ui::AX_ATTR_PLACEHOLDER)); | 185 EXPECT_TRUE(textbox2->HasStringAttribute(ui::AX_ATTR_PLACEHOLDER)); |
| 187 EXPECT_NE(original_id, textbox2->GetId()); | 186 EXPECT_NE(original_id, textbox2->GetId()); |
| 188 } | 187 } |
| 189 | 188 |
| 190 } // namespace content | 189 } // namespace content |
| OLD | NEW |