Index: content/browser/accessibility/cross_platform_accessibility_browsertest.cc |
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc |
index 7135283930cfb1e5c79fd191bd30d1d112e5dcea..d964a3ee4a44ad3839968848f32e1bf8c18fd353 100644 |
--- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc |
+++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc |
@@ -9,6 +9,7 @@ |
#include "content/browser/renderer_host/render_view_host_impl.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/notification_types.h" |
+#include "content/public/browser/render_view_host_observer.h" |
#include "content/public/browser/render_widget_host_view.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/test/test_utils.h" |
@@ -25,6 +26,28 @@ |
namespace content { |
+namespace { |
+ |
+class TestRenderViewHostObserver : public RenderViewHostObserver { |
+ public: |
+ explicit TestRenderViewHostObserver(RenderViewHost* rvh, |
+ const base::Closure& callback) |
+ : RenderViewHostObserver(rvh), |
+ callback_(callback) { |
+ } |
+ |
+ virtual void AccessibilityLayoutComplete() OVERRIDE { |
+ callback_.Run(); |
+ } |
+ |
+ private: |
+ base::Closure callback_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestRenderViewHostObserver); |
+}; |
+ |
+} // namespace |
+ |
class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest { |
public: |
CrossPlatformAccessibilityBrowserTest() {} |
@@ -33,17 +56,16 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest { |
// notification that it's been received. |
const AccessibilityNodeData& GetAccessibilityNodeDataTree( |
AccessibilityMode accessibility_mode = AccessibilityModeComplete) { |
- WindowedNotificationObserver tree_updated_observer( |
- NOTIFICATION_ACCESSIBILITY_LAYOUT_COMPLETE, |
- NotificationService::AllSources()); |
+ scoped_refptr<MessageLoopRunner> loop_runner(new MessageLoopRunner); |
RenderWidgetHostView* host_view = |
shell()->web_contents()->GetRenderWidgetHostView(); |
RenderWidgetHostImpl* host = |
RenderWidgetHostImpl::From(host_view->GetRenderWidgetHost()); |
RenderViewHostImpl* view_host = static_cast<RenderViewHostImpl*>(host); |
+ TestRenderViewHostObserver observer(view_host, loop_runner->QuitClosure()); |
view_host->set_save_accessibility_tree_for_testing(true); |
view_host->SetAccessibilityMode(accessibility_mode); |
- tree_updated_observer.Wait(); |
+ loop_runner->Run(); |
return view_host->accessibility_tree_for_testing(); |
} |