diff options
Diffstat (limited to 'content/browser/accessibility/browser_accessibility_manager_win.cc')
-rw-r--r-- | content/browser/accessibility/browser_accessibility_manager_win.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc index 9aa5d4a..974b033 100644 --- a/content/browser/accessibility/browser_accessibility_manager_win.cc +++ b/content/browser/accessibility/browser_accessibility_manager_win.cc @@ -37,12 +37,14 @@ BrowserAccessibilityManagerWin::BrowserAccessibilityManagerWin( BrowserAccessibilityDelegate* delegate, BrowserAccessibilityFactory* factory) : BrowserAccessibilityManager(initial_tree, delegate, factory), - parent_hwnd_(accessible_hwnd->GetParent()), parent_iaccessible_(parent_iaccessible), tracked_scroll_object_(NULL), accessible_hwnd_(accessible_hwnd) { ui::win::CreateATLModuleIfNeeded(); - accessible_hwnd_->set_browser_accessibility_manager(this); + if (accessible_hwnd_) { + accessible_hwnd_->set_browser_accessibility_manager(this); + parent_hwnd_ = accessible_hwnd->GetParent(); + } } BrowserAccessibilityManagerWin::~BrowserAccessibilityManagerWin() { @@ -69,10 +71,17 @@ ui::AXTreeUpdate BrowserAccessibilityManagerWin::GetEmptyDocument() { return update; } +void BrowserAccessibilityManagerWin::SetAccessibleHWND( + LegacyRenderWidgetHostHWND* accessible_hwnd) { + accessible_hwnd_ = accessible_hwnd; + accessible_hwnd_->set_browser_accessibility_manager(this); + parent_hwnd_ = accessible_hwnd->GetParent(); +} + void BrowserAccessibilityManagerWin::MaybeCallNotifyWinEvent(DWORD event, LONG child_id) { // Don't fire events if this view isn't hooked up to its parent. - if (!parent_iaccessible()) + if (!parent_iaccessible() || !parent_hwnd()) return; // If on Win 7 and complete accessibility is enabled, use the fake child HWND |