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 <memory> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
9 #include "base/json/json_writer.h" | 11 #include "base/json/json_writer.h" |
10 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
11 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
12 #include "base/values.h" | 14 #include "base/values.h" |
13 #include "content/browser/accessibility/accessibility_tree_formatter.h" | 15 #include "content/browser/accessibility/accessibility_tree_formatter.h" |
14 #include "content/browser/accessibility/accessibility_tree_formatter_blink.h" | 16 #include "content/browser/accessibility/accessibility_tree_formatter_blink.h" |
15 #include "content/browser/accessibility/browser_accessibility_manager.h" | 17 #include "content/browser/accessibility/browser_accessibility_manager.h" |
16 #include "content/browser/accessibility/browser_accessibility_state_impl.h" | 18 #include "content/browser/accessibility/browser_accessibility_state_impl.h" |
(...skipping 22 matching lines...) Expand all Loading... |
39 static const char kFaviconUrlField[] = "favicon_url"; | 41 static const char kFaviconUrlField[] = "favicon_url"; |
40 static const char kPidField[] = "pid"; | 42 static const char kPidField[] = "pid"; |
41 static const char kAccessibilityModeField[] = "a11y_mode"; | 43 static const char kAccessibilityModeField[] = "a11y_mode"; |
42 | 44 |
43 namespace content { | 45 namespace content { |
44 | 46 |
45 namespace { | 47 namespace { |
46 | 48 |
47 bool g_show_internal_accessibility_tree = false; | 49 bool g_show_internal_accessibility_tree = false; |
48 | 50 |
49 base::DictionaryValue* BuildTargetDescriptor( | 51 std::unique_ptr<base::DictionaryValue> BuildTargetDescriptor( |
50 const GURL& url, | 52 const GURL& url, |
51 const std::string& name, | 53 const std::string& name, |
52 const GURL& favicon_url, | 54 const GURL& favicon_url, |
53 int process_id, | 55 int process_id, |
54 int route_id, | 56 int route_id, |
55 AccessibilityMode accessibility_mode, | 57 AccessibilityMode accessibility_mode, |
56 base::ProcessHandle handle = base::kNullProcessHandle) { | 58 base::ProcessHandle handle = base::kNullProcessHandle) { |
57 base::DictionaryValue* target_data = new base::DictionaryValue(); | 59 std::unique_ptr<base::DictionaryValue> target_data( |
| 60 new base::DictionaryValue()); |
58 target_data->SetInteger(kProcessIdField, process_id); | 61 target_data->SetInteger(kProcessIdField, process_id); |
59 target_data->SetInteger(kRouteIdField, route_id); | 62 target_data->SetInteger(kRouteIdField, route_id); |
60 target_data->SetString(kUrlField, url.spec()); | 63 target_data->SetString(kUrlField, url.spec()); |
61 target_data->SetString(kNameField, net::EscapeForHTML(name)); | 64 target_data->SetString(kNameField, net::EscapeForHTML(name)); |
62 target_data->SetInteger(kPidField, base::GetProcId(handle)); | 65 target_data->SetInteger(kPidField, base::GetProcId(handle)); |
63 target_data->SetString(kFaviconUrlField, favicon_url.spec()); | 66 target_data->SetString(kFaviconUrlField, favicon_url.spec()); |
64 target_data->SetInteger(kAccessibilityModeField, | 67 target_data->SetInteger(kAccessibilityModeField, |
65 accessibility_mode); | 68 accessibility_mode); |
66 return target_data; | 69 return target_data; |
67 } | 70 } |
68 | 71 |
69 base::DictionaryValue* BuildTargetDescriptor(RenderViewHost* rvh) { | 72 std::unique_ptr<base::DictionaryValue> BuildTargetDescriptor( |
| 73 RenderViewHost* rvh) { |
70 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( | 74 WebContentsImpl* web_contents = static_cast<WebContentsImpl*>( |
71 WebContents::FromRenderViewHost(rvh)); | 75 WebContents::FromRenderViewHost(rvh)); |
72 AccessibilityMode accessibility_mode = AccessibilityModeOff; | 76 AccessibilityMode accessibility_mode = AccessibilityModeOff; |
73 | 77 |
74 std::string title; | 78 std::string title; |
75 GURL url; | 79 GURL url; |
76 GURL favicon_url; | 80 GURL favicon_url; |
77 if (web_contents) { | 81 if (web_contents) { |
78 // TODO(nasko): Fix the following code to use a consistent set of data | 82 // TODO(nasko): Fix the following code to use a consistent set of data |
79 // across the URL, title, and favicon. | 83 // across the URL, title, and favicon. |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 web_contents->GetRootBrowserAccessibilityManager()->GetRoot(), | 257 web_contents->GetRootBrowserAccessibilityManager()->GetRoot(), |
254 &accessibility_contents_utf16); | 258 &accessibility_contents_utf16); |
255 result->Set("tree", | 259 result->Set("tree", |
256 new base::StringValue( | 260 new base::StringValue( |
257 base::UTF16ToUTF8(accessibility_contents_utf16))); | 261 base::UTF16ToUTF8(accessibility_contents_utf16))); |
258 web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", | 262 web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", |
259 *(result.get())); | 263 *(result.get())); |
260 } | 264 } |
261 | 265 |
262 } // namespace content | 266 } // namespace content |
OLD | NEW |