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

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

Issue 387353004: Create only a single LegacyRenderWidgetHostHWND per WebContentsViewAura. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@render_frame_ax_3
Patch Set: Created 6 years, 5 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_unittest.cc
diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc
index 7f23dd92be02feba919eca27f7dc83254244330f..5fab5b61344b6bf948045d4363b1b84b1820f809 100644
--- a/content/browser/accessibility/browser_accessibility_win_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
@@ -11,7 +11,6 @@
#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"
@@ -79,34 +78,6 @@ BrowserAccessibility* CountedBrowserAccessibilityFactory::Create() {
return instance;
}
-// Provides functionality for creating the accessible hwnd and ensures that
-// the hwnd along with the LegacyRenderWidgetHostHWND instance is destroyed
-// when this instance is destroyed.
-class TestLegacyRenderWidgetHostHWND {
- public:
- TestLegacyRenderWidgetHostHWND()
- : accessible_hwnd_(NULL) {}
-
- ~TestLegacyRenderWidgetHostHWND() {
- if (accessible_hwnd())
- ::DestroyWindow(accessible_hwnd()->hwnd());
- }
-
- bool Initialize(HWND parent) {
- accessible_hwnd_ = LegacyRenderWidgetHostHWND::Create(parent);
- EXPECT_NE(accessible_hwnd_,
- static_cast<LegacyRenderWidgetHostHWND*>(NULL));
- return accessible_hwnd_ != NULL;
- }
-
- LegacyRenderWidgetHostHWND* accessible_hwnd() {
- return accessible_hwnd_;
- }
-
- private:
- LegacyRenderWidgetHostHWND* accessible_hwnd_;
-};
-
} // namespace
@@ -633,13 +604,8 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
const int32 busy_state = 1 << ui::AX_STATE_BUSY;
const int32 readonly_state = 1 << ui::AX_STATE_READ_ONLY;
const int32 enabled_state = 1 << ui::AX_STATE_ENABLED;
- scoped_ptr<TestLegacyRenderWidgetHostHWND> accessibility_test
- (new TestLegacyRenderWidgetHostHWND);
- EXPECT_EQ(accessibility_test->Initialize(GetDesktopWindow()), true);
scoped_ptr<BrowserAccessibilityManager> manager(
- new BrowserAccessibilityManagerWin(
- accessibility_test->accessible_hwnd(),
- NULL,
+ BrowserAccessibilityManager::Create(
BrowserAccessibilityManagerWin::GetEmptyDocument(),
NULL,
new CountedBrowserAccessibilityFactory()));
@@ -720,52 +686,24 @@ TEST(BrowserAccessibilityManagerWinTest, TestAccessibleHWND) {
IID_IAccessible,
reinterpret_cast<void**>(desktop_hwnd_iaccessible.Receive())));
- scoped_ptr<TestLegacyRenderWidgetHostHWND> accessibility_test
- (new TestLegacyRenderWidgetHostHWND);
- EXPECT_EQ(accessibility_test->Initialize(GetDesktopWindow()), true);
-
scoped_ptr<BrowserAccessibilityManagerWin> manager(
- new BrowserAccessibilityManagerWin(
- accessibility_test->accessible_hwnd(),
- desktop_hwnd_iaccessible,
- BrowserAccessibilityManagerWin::GetEmptyDocument(),
- NULL));
- ASSERT_EQ(desktop_hwnd, manager->parent_hwnd());
+ static_cast<BrowserAccessibilityManagerWin*>(
+ BrowserAccessibilityManager::Create(
+ BrowserAccessibilityManagerWin::GetEmptyDocument(), NULL)));
+ ASSERT_EQ(NULL, manager->parent_iaccessible());
// Enabling screen reader support and calling MaybeCallNotifyWinEvent
- // should trigger creating the AccessibleHWND, and we should now get a
+ // should trigger using the AccessibleHWND, and we should now get a
// new parent_hwnd with the right window class to fool older screen
// readers.
BrowserAccessibilityStateImpl::GetInstance()->OnScreenReaderDetected();
manager->MaybeCallNotifyWinEvent(0, 0);
HWND new_parent_hwnd = manager->parent_hwnd();
ASSERT_NE(desktop_hwnd, new_parent_hwnd);
+ ASSERT_TRUE(manager->parent_iaccessible());
WCHAR hwnd_class_name[256];
ASSERT_NE(0, GetClassName(new_parent_hwnd, hwnd_class_name, 256));
ASSERT_STREQ(L"Chrome_RenderWidgetHostHWND", hwnd_class_name);
-
- // Destroy the TestLegacyRenderWidgetHostHWND instance. That should in turn
- // destroy the hwnd, which should clear the parent_hwnd().
- accessibility_test.reset(NULL);
- ASSERT_EQ(FALSE, ::IsWindow(new_parent_hwnd));
- ASSERT_EQ(NULL, manager->parent_hwnd());
-
- // Now create it again.
- accessibility_test.reset(new TestLegacyRenderWidgetHostHWND);
- EXPECT_EQ(accessibility_test->Initialize(::GetDesktopWindow()), true);
- manager.reset(
- new BrowserAccessibilityManagerWin(
- accessibility_test->accessible_hwnd(),
- desktop_hwnd_iaccessible,
- BrowserAccessibilityManagerWin::GetEmptyDocument(),
- NULL));
- manager->MaybeCallNotifyWinEvent(0, 0);
- new_parent_hwnd = manager->parent_hwnd();
- ASSERT_FALSE(NULL == new_parent_hwnd);
-
- // This time, destroy the manager first, make sure the AccessibleHWND doesn't
- // crash on destruction (to be caught by SyzyASAN or other tools).
- manager.reset(NULL);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698