diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 06:57:49 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-13 06:57:49 +0000 |
commit | 9dc9d50342bd25ca4e997daf6d056b52dde54234 (patch) | |
tree | e946d01a621f1e39c908c2cf9d4fb32ff710e68b /content/browser/accessibility/browser_accessibility_manager_win.h | |
parent | c8e9a870ed09c724c29009396b6e9eb4ec28553a (diff) | |
download | chromium_src-9dc9d50342bd25ca4e997daf6d056b52dde54234.zip chromium_src-9dc9d50342bd25ca4e997daf6d056b52dde54234.tar.gz chromium_src-9dc9d50342bd25ca4e997daf6d056b52dde54234.tar.bz2 |
Fix race in BrowserAccessibilityManagerWin creation.
Previously, BrowserAccessibilityManagerWin needed its parent
HWND and parent IAccessible upon construction, and if RWHVA
didn't have those, it didn't create the BAMW. This resulted
in at least two races:
* If an accessibility tree update came from the renderer
but the BAMW wasn't created because the window wasn't available,
the tree update would get discarded - possibly leading to an
assertion failure / renderer crash later on the next update
from being out of sync.
* If we tried to create the BAMW before the LegacyRWHH existed,
we would fall through and create a BAM instead of a BAMW,
making that whole tab inaccessible.
To fix both issues, we always create a BAMW when needed, and
we update the BAMW with the LegacyRWHH as soon as it's
available.
BUG=372478,379019
NOTRY=true
Review URL: https://codereview.chromium.org/329053004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276950 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/accessibility/browser_accessibility_manager_win.h')
-rw-r--r-- | content/browser/accessibility/browser_accessibility_manager_win.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.h b/content/browser/accessibility/browser_accessibility_manager_win.h index 18260e4..90914db 100644 --- a/content/browser/accessibility/browser_accessibility_manager_win.h +++ b/content/browser/accessibility/browser_accessibility_manager_win.h @@ -40,6 +40,8 @@ class CONTENT_EXPORT BrowserAccessibilityManagerWin parent_iaccessible_ = parent_iaccessible; } + void SetAccessibleHWND(LegacyRenderWidgetHostHWND* accessible_hwnd); + // Calls NotifyWinEvent if the parent window's IAccessible pointer is known. void MaybeCallNotifyWinEvent(DWORD event, LONG child_id); |