Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(383)

Unified Diff: content/renderer/accessibility/render_accessibility_impl.cc

Issue 2522543004: Add support for retrieving image thumbnails as part of the accessibility tree. (Closed)
Patch Set: Fix test failure and add automation apitest Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698