Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index b9c2a29355bf436508f266ca991efd854a75c25b..b9d5bc05c142c4a1a5b4c829f80574714dd28674 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -1786,6 +1786,36 @@ void RenderViewHostImpl::UpdateFrameTree( |
frame_tree_)); |
} |
+void RenderViewHostImpl::AddAccessibilityLayoutCompleteCallbackForTesting( |
+ const base::Closure& callback) { |
+ accessibility_layout_callbacks_.push_back(callback); |
+} |
+ |
+void RenderViewHostImpl::RemoveAccessibilityLayoutCompleteCallbackForTesting( |
+ const base::Closure& callback) { |
+ for (size_t i = 0; i < accessibility_layout_callbacks_.size(); i++) { |
+ if (accessibility_layout_callbacks_[i].Equals(callback)) { |
+ accessibility_layout_callbacks_.erase( |
+ accessibility_layout_callbacks_.begin() + i); |
+ } |
+ } |
+} |
+ |
+void RenderViewHostImpl::AddAccessibilityLoadCompleteCallbackForTesting( |
+ const base::Closure& callback) { |
+ accessibility_load_callbacks_.push_back(callback); |
+} |
+ |
+void RenderViewHostImpl::RemoveAccessibilityLoadCompleteCallbackForTesting( |
+ const base::Closure& callback) { |
+ for (size_t i = 0; i < accessibility_load_callbacks_.size(); i++) { |
+ if (accessibility_load_callbacks_[i].Equals(callback)) { |
+ accessibility_load_callbacks_.erase( |
+ accessibility_load_callbacks_.begin() + i); |
+ } |
+ } |
+} |
+ |
void RenderViewHostImpl::UpdateWebkitPreferences( |
const webkit_glue::WebPreferences& prefs) { |
Send(new ViewMsg_UpdateWebPreferences(GetRoutingID(), prefs)); |
@@ -1892,17 +1922,13 @@ void RenderViewHostImpl::OnAccessibilityNotifications( |
accessibility_tree_ = param.acc_tree; |
} |
- 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()); |
+ if (src_type == AccessibilityNotificationLayoutComplete) { |
+ for (size_t i = 0; i < accessibility_layout_callbacks_.size(); ++i) |
+ accessibility_layout_callbacks_[i].Run(); |
+ } else if (src_type == AccessibilityNotificationLoadComplete) { |
+ for (size_t i = 0; i < accessibility_load_callbacks_.size(); ++i) |
+ accessibility_load_callbacks_[i].Run(); |
+ } |
} |
Send(new AccessibilityMsg_Notifications_ACK(GetRoutingID())); |