Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Unified Diff: content/browser/accessibility/browser_accessibility_win.cc

Issue 329053004: Fix race in BrowserAccessibilityManagerWin creation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_win.cc
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index e98ae71498b4dde47494c28b7803ffe67476adbe..58435d15b2bbe8446f96876c898a0be4ffd60e44 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -497,8 +497,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_accParent(IDispatch** disp_parent) {
if (parent_obj == NULL) {
// This happens if we're the root of the tree;
// return the IAccessible for the window.
- parent_obj =
- manager()->ToBrowserAccessibilityManagerWin()->parent_iaccessible();
+ if (manager()->delegate())
+ parent_obj = manager()->delegate()->GetParentIAccessible();
// |parent| can only be NULL if the manager was created before the parent
// IAccessible was known and it wasn't subsequently set before a client
// requested it. This has been fixed. |parent| may also be NULL during
@@ -738,7 +738,10 @@ STDMETHODIMP BrowserAccessibilityWin::get_windowHandle(HWND* window_handle) {
if (!window_handle)
return E_INVALIDARG;
- *window_handle = manager()->ToBrowserAccessibilityManagerWin()->parent_hwnd();
+ if (!manager()->delegate())
+ return E_FAIL;
+
+ *window_handle = manager()->delegate()->GetAccessibleParentHWND();
return S_OK;
}
@@ -990,8 +993,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_imagePosition(
return E_INVALIDARG;
if (coordinate_type == IA2_COORDTYPE_SCREEN_RELATIVE) {
- HWND parent_hwnd =
- manager()->ToBrowserAccessibilityManagerWin()->parent_hwnd();
+ if (!manager()->delegate())
+ return E_FAIL;
+ HWND parent_hwnd = manager()->delegate()->GetAccessibleParentHWND();
POINT top_left = {0, 0};
::ClientToScreen(parent_hwnd, &top_left);
*x = GetLocation().x() + top_left.x;

Powered by Google App Engine
This is Rietveld 408576698