Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_impl.h |
| diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h |
| index 3acb62629e115ed247aa21dcb2386cea1ed83397..32c3f6ed889231b2190ea1e799ef66984831d5d7 100644 |
| --- a/content/browser/frame_host/render_frame_host_impl.h |
| +++ b/content/browser/frame_host/render_frame_host_impl.h |
| @@ -13,12 +13,17 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/strings/string16.h" |
| #include "base/time/time.h" |
| +#include "content/browser/accessibility/browser_accessibility_manager.h" |
| +#include "content/common/accessibility_mode_enums.h" |
| #include "content/common/content_export.h" |
| #include "content/public/browser/render_frame_host.h" |
| #include "content/public/common/javascript_message_type.h" |
| #include "content/public/common/page_transition_types.h" |
| +#include "ui/accessibility/ax_node_data.h" |
| class GURL; |
| +struct AccessibilityHostMsg_EventParams; |
| +struct AccessibilityHostMsg_LocationChangeParams; |
| struct FrameHostMsg_DidFailProvisionalLoadWithError_Params; |
| struct FrameHostMsg_OpenURL_Params; |
| struct FrameMsg_Navigate_Params; |
| @@ -42,7 +47,9 @@ struct GlobalRequestID; |
| struct Referrer; |
| struct ShowDesktopNotificationHostMsgParams; |
| -class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { |
| +class CONTENT_EXPORT RenderFrameHostImpl |
| + : public RenderFrameHost, |
| + public BrowserAccessibilityDelegate { |
| public: |
| static RenderFrameHostImpl* FromID(int process_id, int routing_id); |
| @@ -70,6 +77,22 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { |
| // IPC::Listener |
| virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; |
| + // BrowserAccessibilityDelegate |
| + virtual void AccessibilitySetFocus(int acc_obj_id) OVERRIDE; |
| + virtual void AccessibilityDoDefaultAction(int acc_obj_id) OVERRIDE; |
| + virtual void AccessibilityShowMenu(int acc_obj_id) OVERRIDE; |
| + virtual void AccessibilityScrollToMakeVisible( |
| + int acc_obj_id, gfx::Rect subfocus) OVERRIDE; |
| + virtual void AccessibilityScrollToPoint( |
| + int acc_obj_id, gfx::Point point) OVERRIDE; |
| + virtual void AccessibilitySetTextSelection( |
| + int acc_obj_id, int start_offset, int end_offset) OVERRIDE; |
| + virtual bool AccessibilityViewHasFocus() const OVERRIDE; |
| + virtual gfx::Rect AccessibilityGetViewBounds() const OVERRIDE; |
| + virtual gfx::Point AccessibilityOriginInScreen(const gfx::Rect& bounds) |
| + const OVERRIDE; |
| + virtual void AccessibilityFatalError() OVERRIDE; |
| + |
| void Init(); |
| int routing_id() const { return routing_id_; } |
| void OnCreateChildFrame(int new_routing_id, |
| @@ -163,6 +186,32 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { |
| // Called when an HTML5 notification is closed. |
| void NotificationClosed(int notification_id); |
| + // Gets the accessibility mode. |
| + AccessibilityMode accessibility_mode() const { |
| + return accessibility_mode_; |
| + } |
| + |
| + // Send a message to the renderer process to change the accessibility mode. |
| + void SetAccessibilityMode(AccessibilityMode AccessibilityMode); |
| + |
| + // Turn on accessibility testing. The given callback will be run |
| + // every time an accessibility notification is received from the |
| + // renderer process, and the accessibility tree it sent can be |
| + // retrieved using GetAXTreeForTesting(). |
| + void SetAccessibilityCallbackForTesting( |
| + const base::Callback<void(ui::AXEvent)>& callback); |
| + |
| + // Returns a snapshot of the accessibility tree received from the |
| + // renderer as of the last time an accessibility notification was |
| + // received. |
| + const ui::AXTree* GetAXTreeForTesting(); |
| + |
| +#if defined(OS_WIN) |
| + void SetParentNativeViewAccessible( |
| + gfx::NativeViewAccessible accessible_parent); |
| + gfx::NativeViewAccessible GetParentNativeViewAccessible() const; |
| +#endif |
| + |
| protected: |
| friend class RenderFrameHostFactory; |
| @@ -226,6 +275,10 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { |
| void OnCancelDesktopNotification(int notification_id); |
| void OnDidAccessInitialDocument(); |
| void OnDidDisownOpener(); |
| + void OnAccessibilityEvents( |
| + const std::vector<AccessibilityHostMsg_EventParams>& params); |
| + void OnAccessibilityLocationChanges( |
| + const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); |
| // Returns whether the given URL is allowed to commit in the current process. |
| // This is a more conservative check than RenderProcessHost::FilterURL, since |
| @@ -279,6 +332,11 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost { |
| base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
| + AccessibilityMode accessibility_mode_; |
| + base::Callback<void(ui::AXEvent)> accessibility_testing_callback_; |
| + // The most recently received accessibility tree - for testing only. |
| + scoped_ptr<ui::AXTree> ax_tree_; |
|
nasko
2014/05/12 17:28:01
Let's label the variable to indicate it is to be u
dmazzoni
2014/05/13 06:36:52
Done.
|
| + |
| DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
| }; |