Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / browser / accessibility / accessibility_ui.cc
index a052982..1f4df79 100644 (file)
@@ -14,8 +14,8 @@
 #include "content/browser/accessibility/browser_accessibility_manager.h"
 #include "content/browser/accessibility/browser_accessibility_state_impl.h"
 #include "content/browser/renderer_host/render_widget_host_impl.h"
+#include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/common/view_message_enums.h"
-#include "content/port/browser/render_widget_host_view_port.h"
 #include "content/public/browser/favicon_status.h"
 #include "content/public/browser/navigation_entry.h"
 #include "content/public/browser/render_process_host.h"
@@ -89,18 +89,26 @@ base::DictionaryValue* BuildTargetDescriptor(RenderViewHost* rvh) {
                                accessibility_mode);
 }
 
-void SendTargetsData(
-    const WebUIDataSource::GotDataCallback& callback) {
+bool HandleRequestCallback(BrowserContext* current_context,
+                           const std::string& path,
+                           const WebUIDataSource::GotDataCallback& callback) {
+  if (path != kDataFile)
+    return false;
   scoped_ptr<base::ListValue> rvh_list(new base::ListValue());
 
   scoped_ptr<RenderWidgetHostIterator> widgets(
       RenderWidgetHost::GetRenderWidgetHosts());
+
   while (RenderWidgetHost* widget = widgets->GetNextHost()) {
     // Ignore processes that don't have a connection, such as crashed tabs.
     if (!widget->GetProcess()->HasConnection())
       continue;
     if (!widget->IsRenderView())
         continue;
+    RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget);
+    BrowserContext* context = rwhi->GetProcess()->GetBrowserContext();
+    if (context != current_context)
+      continue;
 
     RenderViewHost* rvh = RenderViewHost::From(widget);
     rvh_list->Append(BuildTargetDescriptor(rvh));
@@ -116,22 +124,12 @@ void SendTargetsData(
   base::JSONWriter::Write(data.get(), &json_string);
 
   callback.Run(base::RefCountedString::TakeString(&json_string));
-}
-
-bool HandleRequestCallback(
-    const std::string& path,
-    const WebUIDataSource::GotDataCallback& callback) {
-  if (path != kDataFile)
-    return false;
-
-  SendTargetsData(callback);
   return true;
 }
 
 }  // namespace
 
-AccessibilityUI::AccessibilityUI(WebUI* web_ui)
-  : WebUIController(web_ui) {
+AccessibilityUI::AccessibilityUI(WebUI* web_ui) : WebUIController(web_ui) {
   // Set up the chrome://accessibility source.
   WebUIDataSource* html_source =
       WebUIDataSource::Create(kChromeUIAccessibilityHost);
@@ -140,11 +138,11 @@ AccessibilityUI::AccessibilityUI(WebUI* web_ui)
   web_ui->RegisterMessageCallback(
       "toggleAccessibility",
       base::Bind(&AccessibilityUI::ToggleAccessibility,
-               base::Unretained(this)));
+                 base::Unretained(this)));
   web_ui->RegisterMessageCallback(
       "toggleGlobalAccessibility",
       base::Bind(&AccessibilityUI::ToggleGlobalAccessibility,
-               base::Unretained(this)));
+                 base::Unretained(this)));
   web_ui->RegisterMessageCallback(
       "requestAccessibilityTree",
       base::Bind(&AccessibilityUI::RequestAccessibilityTree,
@@ -155,15 +153,16 @@ AccessibilityUI::AccessibilityUI(WebUI* web_ui)
   html_source->AddResourcePath("accessibility.css", IDR_ACCESSIBILITY_CSS);
   html_source->AddResourcePath("accessibility.js", IDR_ACCESSIBILITY_JS);
   html_source->SetDefaultResource(IDR_ACCESSIBILITY_HTML);
-  html_source->SetRequestFilter(base::Bind(&HandleRequestCallback));
+  html_source->SetRequestFilter(
+      base::Bind(&HandleRequestCallback,
+                 web_ui->GetWebContents()->GetBrowserContext()));
 
   BrowserContext* browser_context =
-    web_ui->GetWebContents()->GetBrowserContext();
+      web_ui->GetWebContents()->GetBrowserContext();
   WebUIDataSource::Add(browser_context, html_source);
 }
 
-AccessibilityUI::~AccessibilityUI() {
-}
+AccessibilityUI::~AccessibilityUI() {}
 
 void AccessibilityUI::ToggleAccessibility(const base::ListValue* args) {
   std::string process_id_str;
@@ -221,7 +220,7 @@ void AccessibilityUI::RequestAccessibilityTree(const base::ListValue* args) {
   }
 
   scoped_ptr<base::DictionaryValue> result(BuildTargetDescriptor(rvh));
-  RenderWidgetHostViewPort* host_view = static_cast<RenderWidgetHostViewPort*>(
+  RenderWidgetHostViewBase* host_view = static_cast<RenderWidgetHostViewBase*>(
       WebContents::FromRenderViewHost(rvh)->GetRenderWidgetHostView());
   if (!host_view) {
     result->Set("error",