Index: content/browser/accessibility/browser_accessibility_win_unittest.cc |
=================================================================== |
--- content/browser/accessibility/browser_accessibility_win_unittest.cc (revision 248647) |
+++ content/browser/accessibility/browser_accessibility_win_unittest.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include "content/browser/accessibility/browser_accessibility_manager_win.h" |
#include "content/browser/accessibility/browser_accessibility_state_impl.h" |
#include "content/browser/accessibility/browser_accessibility_win.h" |
+#include "content/browser/renderer_host/legacy_render_widget_host_win.h" |
#include "content/common/accessibility_messages.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/win/atl_module.h" |
@@ -605,9 +606,11 @@ |
const int32 busy_state = 1 << ui::AX_STATE_BUSY; |
const int32 readonly_state = 1 << ui::AX_STATE_READONLY; |
const int32 enabled_state = 1 << blink::WebAXStateEnabled; |
+ scoped_ptr<content::LegacyRenderWidgetHostHWND> accessible_hwnd( |
+ new content::LegacyRenderWidgetHostHWND(GetDesktopWindow())); |
scoped_ptr<BrowserAccessibilityManager> manager( |
new BrowserAccessibilityManagerWin( |
- GetDesktopWindow(), |
+ accessible_hwnd.get(), |
NULL, |
BrowserAccessibilityManagerWin::GetEmptyDocument(), |
NULL, |
@@ -689,9 +692,12 @@ |
IID_IAccessible, |
reinterpret_cast<void**>(desktop_hwnd_iaccessible.Receive()))); |
+ scoped_ptr<content::LegacyRenderWidgetHostHWND> accessible_hwnd( |
+ new content::LegacyRenderWidgetHostHWND(GetDesktopWindow())); |
+ |
scoped_ptr<BrowserAccessibilityManagerWin> manager( |
new BrowserAccessibilityManagerWin( |
- desktop_hwnd, |
+ accessible_hwnd.get(), |
desktop_hwnd_iaccessible, |
BrowserAccessibilityManagerWin::GetEmptyDocument(), |
NULL)); |
@@ -712,11 +718,16 @@ |
// Destroy the hwnd explicitly; that should trigger clearing parent_hwnd(). |
DestroyWindow(new_parent_hwnd); |
ASSERT_EQ(NULL, manager->parent_hwnd()); |
+ // The LegacyRenderWidgetHostHWND instance should be destroyed by the |
+ // DestroyWindow call above. |
+ accessible_hwnd.release(); |
// Now create it again. |
+ accessible_hwnd.reset(new content::LegacyRenderWidgetHostHWND( |
+ GetDesktopWindow())); |
manager.reset( |
new BrowserAccessibilityManagerWin( |
- desktop_hwnd, |
+ accessible_hwnd.get(), |
desktop_hwnd_iaccessible, |
BrowserAccessibilityManagerWin::GetEmptyDocument(), |
NULL)); |