diff options
5 files changed, 42 insertions, 41 deletions
diff --git a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc index fd3c4bd..7135283 100644 --- a/content/browser/accessibility/cross_platform_accessibility_browsertest.cc +++ b/content/browser/accessibility/cross_platform_accessibility_browsertest.cc @@ -33,17 +33,17 @@ class CrossPlatformAccessibilityBrowserTest : public ContentBrowserTest { // notification that it's been received. const AccessibilityNodeData& GetAccessibilityNodeDataTree( AccessibilityMode accessibility_mode = AccessibilityModeComplete) { - scoped_refptr<MessageLoopRunner> loop_runner(new MessageLoopRunner); + WindowedNotificationObserver tree_updated_observer( + NOTIFICATION_ACCESSIBILITY_LAYOUT_COMPLETE, + NotificationService::AllSources()); RenderWidgetHostView* host_view = shell()->web_contents()->GetRenderWidgetHostView(); RenderWidgetHostImpl* host = RenderWidgetHostImpl::From(host_view->GetRenderWidgetHost()); RenderViewHostImpl* view_host = static_cast<RenderViewHostImpl*>(host); - view_host->SetAccessibilityLayoutCompleteCallbackForTesting( - loop_runner->QuitClosure()); view_host->set_save_accessibility_tree_for_testing(true); view_host->SetAccessibilityMode(accessibility_mode); - loop_runner->Run(); + tree_updated_observer.Wait(); return view_host->accessibility_tree_for_testing(); } diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index b1c7d98..9b47dfb 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc @@ -18,6 +18,8 @@ #include "content/browser/accessibility/dump_accessibility_tree_helper.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/port/browser/render_widget_host_view_port.h" +#include "content/public/browser/notification_service.h" +#include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_paths.h" #include "content/public/test/test_utils.h" @@ -26,16 +28,14 @@ #include "content/shell/shell.h" #include "testing/gtest/include/gtest/gtest.h" -namespace content { - namespace { + static const char kCommentToken = '#'; + static const char* kMarkSkipFile = "#<skip"; + static const char* kMarkEndOfFile = "<-- End-of-file -->"; + static const char* kSignalDiff = "*"; +} // namespace -const char kCommentToken = '#'; -const char kMarkSkipFile[] = "#<skip"; -const char kMarkEndOfFile[] = "<-- End-of-file -->"; -const char kSignalDiff[] = "*"; - -} // namespace +namespace content { typedef DumpAccessibilityTreeHelper::Filter Filter; @@ -166,17 +166,17 @@ void DumpAccessibilityTreeTest::RunTest( } // Load the page. + WindowedNotificationObserver tree_updated_observer( + NOTIFICATION_ACCESSIBILITY_LOAD_COMPLETE, + NotificationService::AllSources()); string16 html_contents16; html_contents16 = UTF8ToUTF16(html_contents); GURL url = GetTestUrl("accessibility", html_file.BaseName().MaybeAsASCII().c_str()); - scoped_refptr<MessageLoopRunner> loop_runner(new MessageLoopRunner); - view_host->SetAccessibilityLoadCompleteCallbackForTesting( - loop_runner->QuitClosure()); NavigateToURL(shell(), url); // Wait for the tree. - loop_runner->Run(); + tree_updated_observer.Wait(); // Perform a diff (or write the initial baseline). string16 actual_contents_utf16; diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index 4ff3c54..b9c2a29 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc @@ -1786,16 +1786,6 @@ void RenderViewHostImpl::UpdateFrameTree( frame_tree_)); } -void RenderViewHostImpl::SetAccessibilityLayoutCompleteCallbackForTesting( - const base::Closure& callback) { - accessibility_layout_callback_ = callback; -} - -void RenderViewHostImpl::SetAccessibilityLoadCompleteCallbackForTesting( - const base::Closure& callback) { - accessibility_load_callback_ = callback; -} - void RenderViewHostImpl::UpdateWebkitPreferences( const webkit_glue::WebPreferences& prefs) { Send(new ViewMsg_UpdateWebPreferences(GetRoutingID(), prefs)); @@ -1902,11 +1892,17 @@ void RenderViewHostImpl::OnAccessibilityNotifications( accessibility_tree_ = param.acc_tree; } - if (src_type == AccessibilityNotificationLayoutComplete) { - accessibility_layout_callback_.Run(); - } else if (src_type == AccessibilityNotificationLoadComplete) { - accessibility_load_callback_.Run(); - } + NotificationType dst_type; + if (src_type == AccessibilityNotificationLoadComplete) + dst_type = NOTIFICATION_ACCESSIBILITY_LOAD_COMPLETE; + else if (src_type == AccessibilityNotificationLayoutComplete) + dst_type = NOTIFICATION_ACCESSIBILITY_LAYOUT_COMPLETE; + else + dst_type = NOTIFICATION_ACCESSIBILITY_OTHER; + NotificationService::current()->Notify( + dst_type, + Source<RenderViewHost>(this), + NotificationService::NoDetails()); } Send(new AccessibilityMsg_Notifications_ACK(GetRoutingID())); diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h index 0a79634..7d57852 100644 --- a/content/browser/renderer_host/render_view_host_impl.h +++ b/content/browser/renderer_host/render_view_host_impl.h @@ -414,12 +414,6 @@ class CONTENT_EXPORT RenderViewHostImpl int route_id, const std::string& frame_tree); - // Set accessibility callbacks. - void SetAccessibilityLayoutCompleteCallbackForTesting( - const base::Closure& callback); - void SetAccessibilityLoadCompleteCallbackForTesting( - const base::Closure& callback); - void set_save_accessibility_tree_for_testing(bool save) { save_accessibility_tree_for_testing_ = save; } @@ -658,10 +652,6 @@ class CONTENT_EXPORT RenderViewHostImpl // callbacks. std::map<int, JavascriptResultCallback> javascript_callbacks_; - // Accessibility callbacks. - base::Closure accessibility_layout_callback_; - base::Closure accessibility_load_callback_; - // True if the render view can be shut down suddenly. bool sudden_termination_allowed_; diff --git a/content/public/browser/notification_types.h b/content/public/browser/notification_types.h index de035c0..cfaafd5 100644 --- a/content/public/browser/notification_types.h +++ b/content/public/browser/notification_types.h @@ -250,6 +250,21 @@ enum NotificationType { // the RenderViewHost, and the details is a DomOperationNotificationDetails. NOTIFICATION_DOM_OPERATION_RESPONSE, + // Indicates that the render view host has received a "load complete" + // accessibility notification. The source is the RenderViewHost, + // the details are not used. + NOTIFICATION_ACCESSIBILITY_LOAD_COMPLETE, + + // Indicates that the render view host has received a "layout complete" + // accessibility notification. The source is the RenderViewHost, + // the details are not used. + NOTIFICATION_ACCESSIBILITY_LAYOUT_COMPLETE, + + // Indicates that the render view host has received an accessibility + // notification. other than the ones covered above. + // The source is the RenderViewHost, the details are not used. + NOTIFICATION_ACCESSIBILITY_OTHER, + // Child Processes --------------------------------------------------------- // This notification is sent when a child process host has connected to a |