| 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 #include <utility> | 8 #include <utility> | 
| 9 | 9 | 
| 10 #include "base/bind.h" | 10 #include "base/bind.h" | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 30 #include "content/public/browser/render_process_host.h" | 30 #include "content/public/browser/render_process_host.h" | 
| 31 #include "content/public/browser/render_view_host.h" | 31 #include "content/public/browser/render_view_host.h" | 
| 32 #include "content/public/browser/render_widget_host.h" | 32 #include "content/public/browser/render_widget_host.h" | 
| 33 #include "content/public/browser/render_widget_host_iterator.h" | 33 #include "content/public/browser/render_widget_host_iterator.h" | 
| 34 #include "content/public/browser/web_contents.h" | 34 #include "content/public/browser/web_contents.h" | 
| 35 #include "content/public/browser/web_ui_data_source.h" | 35 #include "content/public/browser/web_ui_data_source.h" | 
| 36 #include "content/public/common/content_switches.h" | 36 #include "content/public/common/content_switches.h" | 
| 37 #include "content/public/common/url_constants.h" | 37 #include "content/public/common/url_constants.h" | 
| 38 #include "net/base/escape.h" | 38 #include "net/base/escape.h" | 
| 39 | 39 | 
| 40 static const char kDataFile[] = "targets-data.json"; | 40 static const char kTargetsDataFile[] = "targets-data.json"; | 
| 41 | 41 | 
| 42 static const char kProcessIdField[]  = "processId"; | 42 static const char kProcessIdField[]  = "processId"; | 
| 43 static const char kRouteIdField[]  = "routeId"; | 43 static const char kRouteIdField[]  = "routeId"; | 
| 44 static const char kUrlField[]  = "url"; | 44 static const char kUrlField[]  = "url"; | 
| 45 static const char kNameField[]  = "name"; | 45 static const char kNameField[]  = "name"; | 
| 46 static const char kFaviconUrlField[] = "favicon_url"; | 46 static const char kFaviconUrlField[] = "favicon_url"; | 
| 47 static const char kPidField[]  = "pid"; | 47 static const char kPidField[]  = "pid"; | 
| 48 static const char kAccessibilityModeField[] = "a11y_mode"; | 48 static const char kAccessibilityModeField[] = "a11y_mode"; | 
| 49 | 49 | 
| 50 // Global flags | 50 // Global flags | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 111                                title, | 111                                title, | 
| 112                                favicon_url, | 112                                favicon_url, | 
| 113                                rvh->GetProcess()->GetID(), | 113                                rvh->GetProcess()->GetID(), | 
| 114                                rvh->GetRoutingID(), | 114                                rvh->GetRoutingID(), | 
| 115                                accessibility_mode); | 115                                accessibility_mode); | 
| 116 } | 116 } | 
| 117 | 117 | 
| 118 bool HandleRequestCallback(BrowserContext* current_context, | 118 bool HandleRequestCallback(BrowserContext* current_context, | 
| 119                            const std::string& path, | 119                            const std::string& path, | 
| 120                            const WebUIDataSource::GotDataCallback& callback) { | 120                            const WebUIDataSource::GotDataCallback& callback) { | 
| 121   if (path != kDataFile) | 121   if (path != kTargetsDataFile) | 
| 122     return false; | 122     return false; | 
| 123   std::unique_ptr<base::ListValue> rvh_list(new base::ListValue()); | 123   std::unique_ptr<base::ListValue> rvh_list(new base::ListValue()); | 
| 124 | 124 | 
| 125   std::unique_ptr<RenderWidgetHostIterator> widgets( | 125   std::unique_ptr<RenderWidgetHostIterator> widgets( | 
| 126       RenderWidgetHost::GetRenderWidgetHosts()); | 126       RenderWidgetHost::GetRenderWidgetHosts()); | 
| 127 | 127 | 
| 128   while (RenderWidgetHost* widget = widgets->GetNextHost()) { | 128   while (RenderWidgetHost* widget = widgets->GetNextHost()) { | 
| 129     // Ignore processes that don't have a connection, such as crashed tabs. | 129     // Ignore processes that don't have a connection, such as crashed tabs. | 
| 130     if (!widget->GetProcess()->HasConnection()) | 130     if (!widget->GetProcess()->HasConnection()) | 
| 131       continue; | 131       continue; | 
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 198   // Add required resources. | 198   // Add required resources. | 
| 199   html_source->SetJsonPath("strings.js"); | 199   html_source->SetJsonPath("strings.js"); | 
| 200   html_source->AddResourcePath("accessibility.css", IDR_ACCESSIBILITY_CSS); | 200   html_source->AddResourcePath("accessibility.css", IDR_ACCESSIBILITY_CSS); | 
| 201   html_source->AddResourcePath("accessibility.js", IDR_ACCESSIBILITY_JS); | 201   html_source->AddResourcePath("accessibility.js", IDR_ACCESSIBILITY_JS); | 
| 202   html_source->SetDefaultResource(IDR_ACCESSIBILITY_HTML); | 202   html_source->SetDefaultResource(IDR_ACCESSIBILITY_HTML); | 
| 203   html_source->SetRequestFilter( | 203   html_source->SetRequestFilter( | 
| 204       base::Bind(&HandleRequestCallback, | 204       base::Bind(&HandleRequestCallback, | 
| 205                  web_ui->GetWebContents()->GetBrowserContext())); | 205                  web_ui->GetWebContents()->GetBrowserContext())); | 
| 206 | 206 | 
| 207   std::unordered_set<std::string> exclude_from_gzip; | 207   std::unordered_set<std::string> exclude_from_gzip; | 
| 208   exclude_from_gzip.insert(kDataFile); | 208   exclude_from_gzip.insert(kTargetsDataFile); | 
| 209   html_source->UseGzip(exclude_from_gzip); | 209   html_source->UseGzip(exclude_from_gzip); | 
| 210 | 210 | 
| 211   BrowserContext* browser_context = | 211   BrowserContext* browser_context = | 
| 212       web_ui->GetWebContents()->GetBrowserContext(); | 212       web_ui->GetWebContents()->GetBrowserContext(); | 
| 213   WebUIDataSource::Add(browser_context, html_source); | 213   WebUIDataSource::Add(browser_context, html_source); | 
| 214 } | 214 } | 
| 215 | 215 | 
| 216 AccessibilityUI::~AccessibilityUI() {} | 216 AccessibilityUI::~AccessibilityUI() {} | 
| 217 | 217 | 
| 218 void AccessibilityUI::ToggleAccessibility(const base::ListValue* args) { | 218 void AccessibilityUI::ToggleAccessibility(const base::ListValue* args) { | 
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 351   auto* ax_mgr = web_contents->GetOrCreateRootBrowserAccessibilityManager(); | 351   auto* ax_mgr = web_contents->GetOrCreateRootBrowserAccessibilityManager(); | 
| 352   DCHECK(ax_mgr); | 352   DCHECK(ax_mgr); | 
| 353   formatter->FormatAccessibilityTree(ax_mgr->GetRoot(), | 353   formatter->FormatAccessibilityTree(ax_mgr->GetRoot(), | 
| 354                                      &accessibility_contents_utf16); | 354                                      &accessibility_contents_utf16); | 
| 355   result->SetString("tree", base::UTF16ToUTF8(accessibility_contents_utf16)); | 355   result->SetString("tree", base::UTF16ToUTF8(accessibility_contents_utf16)); | 
| 356   web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", | 356   web_ui()->CallJavascriptFunctionUnsafe("accessibility.showTree", | 
| 357                                          *(result.get())); | 357                                          *(result.get())); | 
| 358 } | 358 } | 
| 359 | 359 | 
| 360 }  // namespace content | 360 }  // namespace content | 
| OLD | NEW | 
|---|