Chromium Code Reviews| Index: content/renderer/render_view.cc |
| =================================================================== |
| --- content/renderer/render_view.cc (revision 98804) |
| +++ content/renderer/render_view.cc (working copy) |
| @@ -278,34 +278,54 @@ |
| static bool WebAccessibilityNotificationToViewHostMsg( |
| WebAccessibilityNotification notification, |
| - ViewHostMsg_AccessibilityNotification_Type::Value* type) { |
| + ViewHostMsg_AccEvent::Value* type) { |
| switch (notification) { |
| + case WebKit::WebAccessibilityNotificationActiveDescendantChanged: |
| + *type = ViewHostMsg_AccEvent::ACTIVE_DESCENDANT_CHANGED; |
| + break; |
| case WebKit::WebAccessibilityNotificationCheckedStateChanged: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_CHECK_STATE_CHANGED; |
| + *type = ViewHostMsg_AccEvent::CHECK_STATE_CHANGED; |
| break; |
| case WebKit::WebAccessibilityNotificationChildrenChanged: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_CHILDREN_CHANGED; |
| + *type = ViewHostMsg_AccEvent::CHILDREN_CHANGED; |
| break; |
| case WebKit::WebAccessibilityNotificationFocusedUIElementChanged: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_FOCUS_CHANGED; |
| + *type = ViewHostMsg_AccEvent::FOCUS_CHANGED; |
| break; |
| + case WebKit::WebAccessibilityNotificationLayoutComplete: |
| + *type = ViewHostMsg_AccEvent::LAYOUT_COMPLETE; |
| + break; |
| + case WebKit::WebAccessibilityNotificationLiveRegionChanged: |
| + *type = ViewHostMsg_AccEvent::LIVE_REGION_CHANGED; |
| + break; |
| case WebKit::WebAccessibilityNotificationLoadComplete: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_LOAD_COMPLETE; |
| + *type = ViewHostMsg_AccEvent::LOAD_COMPLETE; |
| break; |
| - case WebKit::WebAccessibilityNotificationValueChanged: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_VALUE_CHANGED; |
| + case WebKit::WebAccessibilityNotificationMenuListValueChanged: |
| + *type = ViewHostMsg_AccEvent::MENU_LIST_VALUE_CHANGED; |
| break; |
| + case WebKit::WebAccessibilityNotificationRowCollapsed: |
| + *type = ViewHostMsg_AccEvent::ROW_COLLAPSED; |
| + break; |
| + case WebKit::WebAccessibilityNotificationRowCountChanged: |
| + *type = ViewHostMsg_AccEvent::ROW_COUNT_CHANGED; |
| + break; |
| + case WebKit::WebAccessibilityNotificationRowExpanded: |
| + *type = ViewHostMsg_AccEvent::ROW_EXPANDED; |
| + break; |
| + case WebKit::WebAccessibilityNotificationScrolledToAnchor: |
| + *type = ViewHostMsg_AccEvent::SCROLLED_TO_ANCHOR; |
| + break; |
| + case WebKit::WebAccessibilityNotificationSelectedChildrenChanged: |
| + *type = ViewHostMsg_AccEvent::SELECTED_CHILDREN_CHANGED; |
| + break; |
| case WebKit::WebAccessibilityNotificationSelectedTextChanged: |
| - *type = ViewHostMsg_AccessibilityNotification_Type:: |
| - NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED; |
| + *type = ViewHostMsg_AccEvent::SELECTED_TEXT_CHANGED; |
| break; |
| + case WebKit::WebAccessibilityNotificationValueChanged: |
| + *type = ViewHostMsg_AccEvent::VALUE_CHANGED; |
| + break; |
| default: |
| - // TODO(ctguil): Support additional webkit notifications. |
| return false; |
| } |
| return true; |
| @@ -369,6 +389,7 @@ |
| speech_input_dispatcher_(NULL), |
| device_orientation_dispatcher_(NULL), |
| accessibility_ack_pending_(false), |
| + accessibility_logging_(false), |
| p2p_socket_dispatcher_(NULL), |
| devtools_agent_(NULL), |
| session_storage_namespace_id_(session_storage_namespace_id), |
| @@ -418,6 +439,8 @@ |
| const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| if (command_line.HasSwitch(switches::kEnableAccessibility)) |
| WebAccessibilityCache::enableAccessibility(); |
| + if (command_line.HasSwitch(switches::kEnableAccessibilityLogging)) |
| + accessibility_logging_ = true; |
| #if defined(ENABLE_P2P_APIS) |
| p2p_socket_dispatcher_ = new content::P2PSocketDispatcher(this); |
| @@ -532,7 +555,8 @@ |
| bool RenderView::RendererAccessibilityNotification::ShouldIncludeChildren() { |
| typedef ViewHostMsg_AccessibilityNotification_Params params; |
| if (type == WebKit::WebAccessibilityNotificationChildrenChanged || |
| - type == WebKit::WebAccessibilityNotificationLoadComplete) { |
| + type == WebKit::WebAccessibilityNotificationLoadComplete || |
| + type == WebKit::WebAccessibilityNotificationLiveRegionChanged) { |
| return true; |
| } |
| return false; |
| @@ -1616,16 +1640,25 @@ |
| for (size_t i = 0; i < pending_accessibility_notifications_.size(); i++) { |
| RendererAccessibilityNotification& notification = |
| pending_accessibility_notifications_[i]; |
| - WebAccessibilityObject obj = accessibility_->getObjectById(notification.id); |
| + WebAccessibilityObject obj = accessibility_->getObjectById( |
|
Chris Guillory
2011/08/31 02:14:53
Doesn't this fit without wrapping?
dmazzoni
2011/08/31 22:02:54
You're right, looks like my Windows editor was set
|
| + notification.id); |
| if (!obj.isValid()) |
| continue; |
| ViewHostMsg_AccessibilityNotification_Params param; |
| WebAccessibilityNotificationToViewHostMsg( |
| - pending_accessibility_notifications_[i].type, ¶m.notification_type); |
| + pending_accessibility_notifications_[i].type, |
|
Chris Guillory
2011/08/31 02:14:53
Doesn't this fit without wrapping?
|
| + ¶m.notification_type); |
| param.acc_obj = WebAccessibility( |
| obj, accessibility_.get(), notification.ShouldIncludeChildren()); |
| notifications.push_back(param); |
| + |
| +#ifndef NDEBUG |
| + if (accessibility_logging_) { |
| + LOG(INFO) << "Accessibility update: \n" |
| + << param.acc_obj.DebugString(true); |
| + } |
| +#endif |
| } |
| pending_accessibility_notifications_.clear(); |
| Send(new ViewHostMsg_AccessibilityNotifications(routing_id_, notifications)); |
| @@ -4139,7 +4172,7 @@ |
| if (acc_notification.id < 0) |
| return; |
| - ViewHostMsg_AccessibilityNotification_Type::Value temp; |
| + ViewHostMsg_AccEvent::Value temp; |
| if (!WebAccessibilityNotificationToViewHostMsg(notification, &temp)) |
| return; |