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 b02b325a545b87df62f5fe6674795eeb918e2de8..d400673853c2f228ce987f9cb23948fdf22d07a0 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 |
@@ -1072,8 +1071,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); |
} |
} |
@@ -1188,34 +1189,36 @@ void RenderWidgetHostViewAura::SetScrollOffsetPinning( |
// Not needed. Mac-only. |
} |
-void RenderWidgetHostViewAura::CreateBrowserAccessibilityManagerIfNeeded() { |
- if (GetBrowserAccessibilityManager()) |
- return; |
- |
+BrowserAccessibilityManager* |
+ RenderWidgetHostViewAura::CreateBrowserAccessibilityManager( |
ncarter (slow)
2014/05/28 00:50:11
Indentation is off here.
dmazzoni
2014/05/28 22:01:17
Done.
|
+ 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() { |
@@ -2028,7 +2031,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) { |
@@ -2041,7 +2045,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(); |