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

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

Issue 273423004: Migrate accessibility from RenderView to RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/accessibility_ui.h" 5 #include "content/browser/accessibility/accessibility_ui.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "content/browser/accessibility/accessibility_tree_formatter.h" 13 #include "content/browser/accessibility/accessibility_tree_formatter.h"
14 #include "content/browser/accessibility/browser_accessibility_manager.h" 14 #include "content/browser/accessibility/browser_accessibility_manager.h"
15 #include "content/browser/accessibility/browser_accessibility_state_impl.h" 15 #include "content/browser/accessibility/browser_accessibility_state_impl.h"
16 #include "content/browser/renderer_host/render_widget_host_impl.h" 16 #include "content/browser/renderer_host/render_widget_host_impl.h"
17 #include "content/browser/renderer_host/render_widget_host_view_base.h" 17 #include "content/browser/renderer_host/render_widget_host_view_base.h"
18 #include "content/browser/web_contents/web_contents_impl.h"
18 #include "content/common/view_message_enums.h" 19 #include "content/common/view_message_enums.h"
19 #include "content/public/browser/favicon_status.h" 20 #include "content/public/browser/favicon_status.h"
20 #include "content/public/browser/navigation_entry.h" 21 #include "content/public/browser/navigation_entry.h"
21 #include "content/public/browser/render_process_host.h" 22 #include "content/public/browser/render_process_host.h"
22 #include "content/public/browser/render_view_host.h" 23 #include "content/public/browser/render_view_host.h"
23 #include "content/public/browser/render_widget_host.h" 24 #include "content/public/browser/render_widget_host.h"
24 #include "content/public/browser/render_widget_host_iterator.h" 25 #include "content/public/browser/render_widget_host_iterator.h"
25 #include "content/public/browser/web_contents.h" 26 #include "content/public/browser/web_contents.h"
26 #include "content/public/browser/web_ui_data_source.h" 27 #include "content/public/browser/web_ui_data_source.h"
27 #include "content/public/common/url_constants.h" 28 #include "content/public/common/url_constants.h"
(...skipping 28 matching lines...) Expand all
56 target_data->SetString(kUrlField, url.spec()); 57 target_data->SetString(kUrlField, url.spec());
57 target_data->SetString(kNameField, net::EscapeForHTML(name)); 58 target_data->SetString(kNameField, net::EscapeForHTML(name));
58 target_data->SetInteger(kPidField, base::GetProcId(handle)); 59 target_data->SetInteger(kPidField, base::GetProcId(handle));
59 target_data->SetString(kFaviconUrlField, favicon_url.spec()); 60 target_data->SetString(kFaviconUrlField, favicon_url.spec());
60 target_data->SetInteger(kAccessibilityModeField, 61 target_data->SetInteger(kAccessibilityModeField,
61 accessibility_mode); 62 accessibility_mode);
62 return target_data; 63 return target_data;
63 } 64 }
64 65
65 base::DictionaryValue* BuildTargetDescriptor(RenderViewHost* rvh) { 66 base::DictionaryValue* BuildTargetDescriptor(RenderViewHost* rvh) {
66 WebContents* web_contents = WebContents::FromRenderViewHost(rvh); 67 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
68 WebContents::FromRenderViewHost(rvh));
69 AccessibilityMode accessibility_mode = web_contents->accessibility_mode();
70
67 std::string title; 71 std::string title;
68 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(rvh);
69 AccessibilityMode accessibility_mode = rwhi->accessibility_mode();
70
71 GURL url; 72 GURL url;
72 GURL favicon_url; 73 GURL favicon_url;
73 if (web_contents) { 74 if (web_contents) {
74 // TODO(nasko): Fix the following code to use a consistent set of data 75 // TODO(nasko): Fix the following code to use a consistent set of data
75 // across the URL, title, and favicon. 76 // across the URL, title, and favicon.
76 url = web_contents->GetURL(); 77 url = web_contents->GetURL();
77 title = base::UTF16ToUTF8(web_contents->GetTitle()); 78 title = base::UTF16ToUTF8(web_contents->GetTitle());
78 NavigationController& controller = web_contents->GetController(); 79 NavigationController& controller = web_contents->GetController();
79 NavigationEntry* entry = controller.GetVisibleEntry(); 80 NavigationEntry* entry = controller.GetVisibleEntry();
80 if (entry != NULL && entry->GetURL().is_valid()) 81 if (entry != NULL && entry->GetURL().is_valid())
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 int route_id; 172 int route_id;
172 CHECK_EQ(2U, args->GetSize()); 173 CHECK_EQ(2U, args->GetSize());
173 CHECK(args->GetString(0, &process_id_str)); 174 CHECK(args->GetString(0, &process_id_str));
174 CHECK(args->GetString(1, &route_id_str)); 175 CHECK(args->GetString(1, &route_id_str));
175 CHECK(base::StringToInt(process_id_str, &process_id)); 176 CHECK(base::StringToInt(process_id_str, &process_id));
176 CHECK(base::StringToInt(route_id_str, &route_id)); 177 CHECK(base::StringToInt(route_id_str, &route_id));
177 178
178 RenderViewHost* rvh = RenderViewHost::FromID(process_id, route_id); 179 RenderViewHost* rvh = RenderViewHost::FromID(process_id, route_id);
179 if (!rvh) 180 if (!rvh)
180 return; 181 return;
181 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(rvh); 182 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>(
182 if (!rwhi) 183 WebContents::FromRenderViewHost(rvh));
183 return; 184 AccessibilityMode mode = web_contents->accessibility_mode();
184 AccessibilityMode mode = rwhi->accessibility_mode(); 185 if ((mode & AccessibilityModeComplete) != AccessibilityModeComplete) {
185 if ((mode & AccessibilityModeComplete) != AccessibilityModeComplete) 186 web_contents->AddAccessibilityMode(AccessibilityModeComplete);
186 rwhi->AddAccessibilityMode(AccessibilityModeComplete); 187 } else {
187 else 188 web_contents->SetAccessibilityMode(
188 rwhi->ResetAccessibilityMode(); 189 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode());
190 }
189 } 191 }
190 192
191 void AccessibilityUI::ToggleGlobalAccessibility(const base::ListValue* args) { 193 void AccessibilityUI::ToggleGlobalAccessibility(const base::ListValue* args) {
192 BrowserAccessibilityStateImpl* state = 194 BrowserAccessibilityStateImpl* state =
193 BrowserAccessibilityStateImpl::GetInstance(); 195 BrowserAccessibilityStateImpl::GetInstance();
194 AccessibilityMode mode = state->accessibility_mode(); 196 AccessibilityMode mode = state->accessibility_mode();
195 if ((mode & AccessibilityModeComplete) != AccessibilityModeComplete) 197 if ((mode & AccessibilityModeComplete) != AccessibilityModeComplete)
196 state->EnableAccessibility(); 198 state->EnableAccessibility();
197 else 199 else
198 state->DisableAccessibility(); 200 state->DisableAccessibility();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 formatter->SetFilters(filters); 248 formatter->SetFilters(filters);
247 formatter->FormatAccessibilityTree(&accessibility_contents_utf16); 249 formatter->FormatAccessibilityTree(&accessibility_contents_utf16);
248 250
249 result->Set("tree", 251 result->Set("tree",
250 new base::StringValue( 252 new base::StringValue(
251 base::UTF16ToUTF8(accessibility_contents_utf16))); 253 base::UTF16ToUTF8(accessibility_contents_utf16)));
252 web_ui()->CallJavascriptFunction("accessibility.showTree", *(result.get())); 254 web_ui()->CallJavascriptFunction("accessibility.showTree", *(result.get()));
253 } 255 }
254 256
255 } // namespace content 257 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698