Index: content/browser/renderer_host/render_widget_host_view_aura.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc |
index 0607c92c0ec51533cc973ef7bf1656c8dc97a1d6..cf6a4e600eed76e98ac20ff3140385e02df62a96 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -635,9 +635,8 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() { |
if (!host) |
return static_cast<gfx::NativeViewAccessible>(NULL); |
HWND hwnd = host->GetAcceleratedWidget(); |
- |
- CreateBrowserAccessibilityManagerIfNeeded(); |
- BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); |
+ BrowserAccessibilityManager* manager = |
+ host_->GetRootBrowserAccessibilityManager(); |
if (manager) |
return manager->GetRoot()->ToBrowserAccessibilityWin(); |
#endif |
@@ -1073,8 +1072,10 @@ void RenderWidgetHostViewAura::OnSwapCompositorFrame( |
#if defined(OS_WIN) |
void RenderWidgetHostViewAura::SetParentNativeViewAccessible( |
gfx::NativeViewAccessible accessible_parent) { |
- if (GetBrowserAccessibilityManager()) { |
- GetBrowserAccessibilityManager()->ToBrowserAccessibilityManagerWin() |
+ BrowserAccessibilityManager* manager = |
+ host_->GetRootBrowserAccessibilityManager(); |
+ if (manager) { |
+ manager->ToBrowserAccessibilityManagerWin() |
->set_parent_iaccessible(accessible_parent); |
} |
} |
@@ -1189,34 +1190,36 @@ void RenderWidgetHostViewAura::SetScrollOffsetPinning( |
// Not needed. Mac-only. |
} |
-void RenderWidgetHostViewAura::CreateBrowserAccessibilityManagerIfNeeded() { |
- if (GetBrowserAccessibilityManager()) |
- return; |
- |
+BrowserAccessibilityManager* |
+RenderWidgetHostViewAura::CreateBrowserAccessibilityManager( |
+ BrowserAccessibilityDelegate* delegate) { |
BrowserAccessibilityManager* manager = NULL; |
#if defined(OS_WIN) |
aura::WindowTreeHost* host = window_->GetHost(); |
if (!host) |
- return; |
+ return NULL; |
HWND hwnd = host->GetAcceleratedWidget(); |
// The accessible_parent may be NULL at this point. The WebContents will pass |
// it down to this instance (by way of the RenderViewHost and |
// RenderWidgetHost) when it is known. This instance will then set it on its |
// BrowserAccessibilityManager. |
+ RenderViewHost* rvh = RenderViewHost::From(host_); |
+ RenderFrameHostImpl* rfh = |
+ rvh->GetDelegate()->GetFrameTree()->GetMainFrame(); |
gfx::NativeViewAccessible accessible_parent = |
- host_->GetParentNativeViewAccessible(); |
+ rfh->GetParentNativeViewAccessible(); |
if (legacy_render_widget_host_HWND_) { |
manager = new BrowserAccessibilityManagerWin( |
legacy_render_widget_host_HWND_.get(), accessible_parent, |
- BrowserAccessibilityManagerWin::GetEmptyDocument(), host_); |
+ BrowserAccessibilityManagerWin::GetEmptyDocument(), delegate); |
} |
#else |
manager = BrowserAccessibilityManager::Create( |
- BrowserAccessibilityManager::GetEmptyDocument(), host_); |
+ BrowserAccessibilityManager::GetEmptyDocument(), delegate); |
#endif |
- SetBrowserAccessibilityManager(manager); |
+ return manager; |
} |
gfx::GLSurfaceHandle RenderWidgetHostViewAura::GetCompositingSurface() { |
@@ -2030,7 +2033,8 @@ void RenderWidgetHostViewAura::OnWindowFocused(aura::Window* gained_focus, |
host_->SetInputMethodActive(false); |
} |
- BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); |
+ BrowserAccessibilityManager* manager = |
+ host_->GetRootBrowserAccessibilityManager(); |
if (manager) |
manager->OnWindowFocused(); |
} else if (window_ == lost_focus) { |
@@ -2043,7 +2047,8 @@ void RenderWidgetHostViewAura::OnWindowFocused(aura::Window* gained_focus, |
if (touch_editing_client_) |
touch_editing_client_->EndTouchEditing(false); |
- BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); |
+ BrowserAccessibilityManager* manager = |
+ host_->GetRootBrowserAccessibilityManager(); |
if (manager) |
manager->OnWindowBlurred(); |