OLD | NEW |
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" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 favicon_url, | 84 favicon_url, |
85 rvh->GetProcess()->GetID(), | 85 rvh->GetProcess()->GetID(), |
86 rvh->GetRoutingID(), | 86 rvh->GetRoutingID(), |
87 accessibility_mode); | 87 accessibility_mode); |
88 } | 88 } |
89 | 89 |
90 void SendTargetsData( | 90 void SendTargetsData( |
91 const WebUIDataSource::GotDataCallback& callback) { | 91 const WebUIDataSource::GotDataCallback& callback) { |
92 scoped_ptr<base::ListValue> rvh_list(new base::ListValue()); | 92 scoped_ptr<base::ListValue> rvh_list(new base::ListValue()); |
93 | 93 |
94 for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator()); | 94 RenderWidgetHost::List widgets = RenderWidgetHost::GetRenderWidgetHosts(); |
95 !it.IsAtEnd(); it.Advance()) { | 95 for (size_t i = 0; i < widgets.size(); ++i) { |
96 RenderProcessHost* render_process_host = it.GetCurrentValue(); | |
97 DCHECK(render_process_host); | |
98 | |
99 // Ignore processes that don't have a connection, such as crashed tabs. | 96 // Ignore processes that don't have a connection, such as crashed tabs. |
100 if (!render_process_host->HasConnection()) | 97 if (!widgets[i]->GetProcess()->HasConnection()) |
101 continue; | 98 continue; |
102 | 99 if (!widgets[i]->IsRenderView()) |
103 RenderProcessHost::RenderWidgetHostsIterator rwh_it( | |
104 render_process_host->GetRenderWidgetHostsIterator()); | |
105 for (; !rwh_it.IsAtEnd(); rwh_it.Advance()) { | |
106 const RenderWidgetHost* rwh = rwh_it.GetCurrentValue(); | |
107 DCHECK(rwh); | |
108 if (!rwh || !rwh->IsRenderView()) | |
109 continue; | 100 continue; |
110 | 101 |
111 RenderViewHost* rvh = | 102 RenderViewHost* rvh = RenderViewHost::From(widgets[i]); |
112 RenderViewHost::From(const_cast<RenderWidgetHost*>(rwh)); | 103 rvh_list->Append(BuildTargetDescriptor(rvh)); |
113 | |
114 rvh_list->Append(BuildTargetDescriptor(rvh)); | |
115 } | |
116 } | 104 } |
117 | 105 |
118 scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); | 106 scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); |
119 data->Set("list", rvh_list.release()); | 107 data->Set("list", rvh_list.release()); |
120 scoped_ptr<base::FundamentalValue> a11y_mode(new base::FundamentalValue( | 108 scoped_ptr<base::FundamentalValue> a11y_mode(new base::FundamentalValue( |
121 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode())); | 109 BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode())); |
122 data->Set("global_a11y_mode", a11y_mode.release()); | 110 data->Set("global_a11y_mode", a11y_mode.release()); |
123 | 111 |
124 std::string json_string; | 112 std::string json_string; |
125 base::JSONWriter::Write(data.get(), &json_string); | 113 base::JSONWriter::Write(data.get(), &json_string); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 AccessibilityTreeFormatter::Filter::ALLOW)); | 244 AccessibilityTreeFormatter::Filter::ALLOW)); |
257 formatter->SetFilters(filters); | 245 formatter->SetFilters(filters); |
258 formatter->FormatAccessibilityTree(&accessibility_contents_utf16); | 246 formatter->FormatAccessibilityTree(&accessibility_contents_utf16); |
259 | 247 |
260 result->Set("tree", | 248 result->Set("tree", |
261 new base::StringValue(UTF16ToUTF8(accessibility_contents_utf16))); | 249 new base::StringValue(UTF16ToUTF8(accessibility_contents_utf16))); |
262 web_ui()->CallJavascriptFunction("accessibility.showTree", *(result.get())); | 250 web_ui()->CallJavascriptFunction("accessibility.showTree", *(result.get())); |
263 } | 251 } |
264 | 252 |
265 } // namespace content | 253 } // namespace content |
OLD | NEW |