| 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> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 11 #include "base/json/json_writer.h" | 11 #include "base/json/json_writer.h" |
| 12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 14 #include "base/values.h" | 14 #include "base/values.h" |
| 15 #include "content/browser/accessibility/accessibility_tree_formatter.h" | 15 #include "content/browser/accessibility/accessibility_tree_formatter.h" |
| 16 #include "content/browser/accessibility/accessibility_tree_formatter_blink.h" | 16 #include "content/browser/accessibility/accessibility_tree_formatter_blink.h" |
| 17 #include "content/browser/accessibility/browser_accessibility_manager.h" | 17 #include "content/browser/accessibility/browser_accessibility_manager.h" |
| 18 #include "content/browser/accessibility/browser_accessibility_state_impl.h" | 18 #include "content/browser/accessibility/browser_accessibility_state_impl.h" |
| 19 #include "content/browser/renderer_host/render_widget_host_impl.h" | 19 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 20 #include "content/browser/renderer_host/render_widget_host_view_base.h" | 20 #include "content/browser/renderer_host/render_widget_host_view_base.h" |
| 21 #include "content/browser/web_contents/web_contents_impl.h" | 21 #include "content/browser/web_contents/web_contents_impl.h" |
| 22 #include "content/browser/webui/web_ui_data_source_impl.h" |
| 22 #include "content/common/view_message_enums.h" | 23 #include "content/common/view_message_enums.h" |
| 23 #include "content/grit/content_resources.h" | 24 #include "content/grit/content_resources.h" |
| 24 #include "content/public/browser/favicon_status.h" | 25 #include "content/public/browser/favicon_status.h" |
| 25 #include "content/public/browser/navigation_entry.h" | 26 #include "content/public/browser/navigation_entry.h" |
| 26 #include "content/public/browser/render_process_host.h" | 27 #include "content/public/browser/render_process_host.h" |
| 27 #include "content/public/browser/render_view_host.h" | 28 #include "content/public/browser/render_view_host.h" |
| 28 #include "content/public/browser/render_widget_host.h" | 29 #include "content/public/browser/render_widget_host.h" |
| 29 #include "content/public/browser/render_widget_host_iterator.h" | 30 #include "content/public/browser/render_widget_host_iterator.h" |
| 30 #include "content/public/browser/web_contents.h" | 31 #include "content/public/browser/web_contents.h" |
| 31 #include "content/public/browser/web_ui_data_source.h" | 32 #include "content/public/browser/web_ui_data_source.h" |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 base::JSONWriter::Write(data, &json_string); | 136 base::JSONWriter::Write(data, &json_string); |
| 136 | 137 |
| 137 callback.Run(base::RefCountedString::TakeString(&json_string)); | 138 callback.Run(base::RefCountedString::TakeString(&json_string)); |
| 138 return true; | 139 return true; |
| 139 } | 140 } |
| 140 | 141 |
| 141 } // namespace | 142 } // namespace |
| 142 | 143 |
| 143 AccessibilityUI::AccessibilityUI(WebUI* web_ui) : WebUIController(web_ui) { | 144 AccessibilityUI::AccessibilityUI(WebUI* web_ui) : WebUIController(web_ui) { |
| 144 // Set up the chrome://accessibility source. | 145 // Set up the chrome://accessibility source. |
| 145 WebUIDataSource* html_source = | 146 WebUIDataSourceImpl* html_source = static_cast<WebUIDataSourceImpl*>( |
| 146 WebUIDataSource::Create(kChromeUIAccessibilityHost); | 147 WebUIDataSource::Create(kChromeUIAccessibilityHost)); |
| 147 | 148 |
| 148 web_ui->RegisterMessageCallback( | 149 web_ui->RegisterMessageCallback( |
| 149 "toggleAccessibility", | 150 "toggleAccessibility", |
| 150 base::Bind(&AccessibilityUI::ToggleAccessibility, | 151 base::Bind(&AccessibilityUI::ToggleAccessibility, |
| 151 base::Unretained(this))); | 152 base::Unretained(this))); |
| 152 web_ui->RegisterMessageCallback( | 153 web_ui->RegisterMessageCallback( |
| 153 "toggleGlobalAccessibility", | 154 "toggleGlobalAccessibility", |
| 154 base::Bind(&AccessibilityUI::ToggleGlobalAccessibility, | 155 base::Bind(&AccessibilityUI::ToggleGlobalAccessibility, |
| 155 base::Unretained(this))); | 156 base::Unretained(this))); |
| 156 web_ui->RegisterMessageCallback( | 157 web_ui->RegisterMessageCallback( |
| 157 "toggleInternalTree", | 158 "toggleInternalTree", |
| 158 base::Bind(&AccessibilityUI::ToggleInternalTree, | 159 base::Bind(&AccessibilityUI::ToggleInternalTree, |
| 159 base::Unretained(this))); | 160 base::Unretained(this))); |
| 160 web_ui->RegisterMessageCallback( | 161 web_ui->RegisterMessageCallback( |
| 161 "requestAccessibilityTree", | 162 "requestAccessibilityTree", |
| 162 base::Bind(&AccessibilityUI::RequestAccessibilityTree, | 163 base::Bind(&AccessibilityUI::RequestAccessibilityTree, |
| 163 base::Unretained(this))); | 164 base::Unretained(this))); |
| 164 | 165 |
| 165 // Add required resources. | 166 // Add required resources. |
| 166 html_source->SetJsonPath("strings.js"); | 167 html_source->SetJsonPath("strings.js"); |
| 167 html_source->AddResourcePath("accessibility.css", IDR_ACCESSIBILITY_CSS); | 168 html_source->AddResourcePath("accessibility.css", IDR_ACCESSIBILITY_CSS); |
| 168 html_source->AddResourcePath("accessibility.js", IDR_ACCESSIBILITY_JS); | 169 html_source->AddResourcePath("accessibility.js", IDR_ACCESSIBILITY_JS); |
| 169 html_source->SetDefaultResource(IDR_ACCESSIBILITY_HTML); | 170 html_source->SetDefaultResource(IDR_ACCESSIBILITY_HTML); |
| 170 html_source->SetRequestFilter( | 171 html_source->SetRequestFilter( |
| 171 base::Bind(&HandleRequestCallback, | 172 base::Bind(&HandleRequestCallback, |
| 172 web_ui->GetWebContents()->GetBrowserContext())); | 173 web_ui->GetWebContents()->GetBrowserContext())); |
| 174 html_source->DisableI18nAndUseGzipForAllPaths(); |
| 175 html_source->ExcludePathFromGzip(kDataFile); |
| 173 | 176 |
| 174 BrowserContext* browser_context = | 177 BrowserContext* browser_context = |
| 175 web_ui->GetWebContents()->GetBrowserContext(); | 178 web_ui->GetWebContents()->GetBrowserContext(); |
| 176 WebUIDataSource::Add(browser_context, html_source); | 179 WebUIDataSource::Add(browser_context, html_source); |
| 177 } | 180 } |
| 178 | 181 |
| 179 AccessibilityUI::~AccessibilityUI() {} | 182 AccessibilityUI::~AccessibilityUI() {} |
| 180 | 183 |
| 181 void AccessibilityUI::ToggleAccessibility(const base::ListValue* args) { | 184 void AccessibilityUI::ToggleAccessibility(const base::ListValue* args) { |
| 182 std::string process_id_str; | 185 std::string process_id_str; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 web_contents->GetRootBrowserAccessibilityManager()->GetRoot(), | 260 web_contents->GetRootBrowserAccessibilityManager()->GetRoot(), |
| 258 &accessibility_contents_utf16); | 261 &accessibility_contents_utf16); |
| 259 result->Set("tree", | 262 result->Set("tree", |
| 260 new base::StringValue( | 263 new base::StringValue( |
| 261 base::UTF16ToUTF8(accessibility_contents_utf16))); | 264 base::UTF16ToUTF8(accessibility_contents_utf16))); |
| 262 web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", | 265 web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", |
| 263 *(result.get())); | 266 *(result.get())); |
| 264 } | 267 } |
| 265 | 268 |
| 266 } // namespace content | 269 } // namespace content |
| OLD | NEW |