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

Unified Diff: content/browser/frame_host/frame_accessibility.h

Issue 799633007: Make Windows accessibility event firing aware of guest / child frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webview_fixes
Patch Set: Fix Mac compile Created 5 years, 11 months 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/browser/frame_host/frame_accessibility.h
diff --git a/content/browser/frame_host/frame_accessibility.h b/content/browser/frame_host/frame_accessibility.h
index 253ba19b0544fa04058e9324de1f2269af445568..449724d3b06faeb3c54c66914bec3ad53bf3053f 100644
--- a/content/browser/frame_host/frame_accessibility.h
+++ b/content/browser/frame_host/frame_accessibility.h
@@ -48,6 +48,13 @@ class CONTENT_EXPORT FrameAccessibility {
RenderFrameHostImpl* GetChild(RenderFrameHostImpl* parent_frame_host,
int accessibility_node_id);
+ // Given a parent RenderFrameHostImpl and an accessibility node id, look up
+ // all child frames or guest frames that were previously associated with this
+ // frame, and populate |child_frame_hosts| with all of them that resolve
+ // to a valid RenderFrameHostImpl.
+ void GetAllChildFrames(RenderFrameHostImpl* parent_frame_host,
+ std::vector<RenderFrameHostImpl*>* child_frame_hosts);
+
// Given a RenderFrameHostImpl, check the mapping table to see if it's
// the child of a node in some other frame. If so, return true and
// set the parent frame and accessibility node id in the parent frame,
@@ -60,12 +67,32 @@ class CONTENT_EXPORT FrameAccessibility {
FrameAccessibility();
virtual ~FrameAccessibility();
+ RenderFrameHostImpl* GetRFHIFromFrameTreeNodeId(
+ RenderFrameHostImpl* parent_frame_host,
+ int64 child_frame_tree_node_id);
+
+ // This structure stores the parent-child relationship between an
+ // accessibility node in a parent frame and its child frame, where the
+ // child frame may be an iframe or the main frame of a guest browser
+ // plugin. It allows the accessibility code to walk both down and up
+ // the "composed" accessibility tree.
struct ChildFrameMapping {
ChildFrameMapping();
+ // The parent frame host. Required.
RenderFrameHostImpl* parent_frame_host;
+
+ // The id of the accessibility node that's the host of the child frame,
+ // for example the accessibility node for the <iframe> element or the
+ // <embed> element.
int accessibility_node_id;
+
+ // If the child frame is an iframe, this is the iframe's FrameTreeNode id,
+ // otherwise 0.
int64 child_frame_tree_node_id;
+
+ // If the child frame is a browser plugin, this is its instance id,
+ // otherwise 0.
int browser_plugin_instance_id;
};
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_win.cc ('k') | content/browser/frame_host/frame_accessibility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698