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 116a6f4d96102303b0b2a113386c1cf1add0657a..0725caa0a522841f6dc042cbedf5773e65009a6d 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -636,7 +636,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewAura::GetNativeViewAccessible() { |
return static_cast<gfx::NativeViewAccessible>(NULL); |
HWND hwnd = host->GetAcceleratedWidget(); |
- CreateBrowserAccessibilityManagerIfNeeded(); |
+ CreateBrowserAccessibilityManagerIfNeeded(NULL); |
BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager(); |
if (manager) |
return manager->GetRoot()->ToBrowserAccessibilityWin(); |
@@ -1191,9 +1191,13 @@ void RenderWidgetHostViewAura::SetScrollOffsetPinning( |
// Not needed. Mac-only. |
} |
-void RenderWidgetHostViewAura::CreateBrowserAccessibilityManagerIfNeeded() { |
- if (GetBrowserAccessibilityManager()) |
+void RenderWidgetHostViewAura::CreateBrowserAccessibilityManagerIfNeeded( |
+ BrowserAccessibilityDelegate* delegate) { |
+ if (GetBrowserAccessibilityManager()) { |
+ if (delegate) |
+ GetBrowserAccessibilityManager()->set_delegate(delegate); |
ncarter (slow)
2014/05/14 23:56:23
Is this delegate relationship correct?
Previously
dmazzoni
2014/05/19 07:25:01
This is a great question. I don't think I fully un
ncarter (slow)
2014/05/28 00:50:11
I think you have it right. Where possible I think
|
return; |
+ } |
BrowserAccessibilityManager* manager = NULL; |
#if defined(OS_WIN) |
@@ -1206,17 +1210,20 @@ void RenderWidgetHostViewAura::CreateBrowserAccessibilityManagerIfNeeded() { |
// 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); |
ncarter (slow)
2014/05/14 23:56:23
Since this delegate is sometimes null, I wonder if
dmazzoni
2014/05/19 07:25:01
This would also be simplified if the RFHI owns the
|
} |
#else |
manager = BrowserAccessibilityManager::Create( |
- BrowserAccessibilityManager::GetEmptyDocument(), host_); |
+ BrowserAccessibilityManager::GetEmptyDocument(), delegate); |
#endif |
SetBrowserAccessibilityManager(manager); |
} |