Chromium Code Reviews| Index: content/renderer/accessibility/render_accessibility_impl.cc |
| diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc |
| index f6a4b851e1035e690534a4247c96f65455689f37..f6e7b482423b3040f45985c9060ca4c3f8b802d1 100644 |
| --- a/content/renderer/accessibility/render_accessibility_impl.cc |
| +++ b/content/renderer/accessibility/render_accessibility_impl.cc |
| @@ -459,6 +459,9 @@ void RenderAccessibilityImpl::OnPerformAction( |
| case ui::AX_ACTION_DO_DEFAULT: |
| target.performDefaultAction(); |
| break; |
| + case ui::AX_ACTION_GET_IMAGE_DATA: |
| + OnGetImageData(target, data.target_rect.size()); |
| + break; |
| case ui::AX_ACTION_HIT_TEST: |
| OnHitTest(data.target_point); |
| break; |
| @@ -574,6 +577,23 @@ void RenderAccessibilityImpl::OnSetAccessibilityFocus( |
| HandleAXEvent(obj, ui::AX_EVENT_TREE_CHANGED); |
| } |
| +void RenderAccessibilityImpl::OnGetImageData( |
| + const blink::WebAXObject& obj, const gfx::Size& max_size) { |
| + ScopedFreezeBlinkAXTreeSource freeze(&tree_source_); |
| + if (tree_source_.image_data_node_id() == obj.axID()) |
| + return; |
| + |
| + tree_source_.set_image_data_node_id(obj.axID()); |
|
aboxhall
2016/11/22 19:06:31
Does this get reset to -1 at some point? Or will w
dmazzoni
2016/11/22 22:00:13
It doesn't get reset currently, but the client cou
|
| + tree_source_.set_max_image_data_size(max_size); |
| + |
| + const WebDocument& document = GetMainDocument(); |
| + if (document.isNull()) |
| + return; |
| + |
| + serializer_.DeleteClientSubtree(obj); |
| + HandleAXEvent(obj, ui::AX_EVENT_IMAGE_FRAME_UPDATED); |
| +} |
| + |
| void RenderAccessibilityImpl::OnReset(int reset_token) { |
| reset_token_ = reset_token; |
| serializer_.Reset(); |