| 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());
|
| + 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();
|
|
|