| 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 |