summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_frame_impl.h
diff options
context:
space:
mode:
authormkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 12:30:45 +0000
committermkwst@chromium.org <mkwst@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 12:30:45 +0000
commit39d842cd75fbdbaf30e93cd9beff983cd3acb348 (patch)
treec78c63822d24adc90384b98b7cbe0c2e0d18a0ed /content/renderer/render_frame_impl.h
parentf98bb7f5ef1e6ce518b021826256beb9ac58335e (diff)
downloadchromium_src-39d842cd75fbdbaf30e93cd9beff983cd3acb348.zip
chromium_src-39d842cd75fbdbaf30e93cd9beff983cd3acb348.tar.gz
chromium_src-39d842cd75fbdbaf30e93cd9beff983cd3acb348.tar.bz2
Revert of Revert of Migrate accessibility from RenderView to RenderFrame. (https://codereview.chromium.org/407493002/)
Reason for revert: Reverting the revert. This didn't break the tree; it's still broken without the patch. :( Sorry for the noise! Original issue's description: > Revert of Migrate accessibility from RenderView to RenderFrame. (https://codereview.chromium.org/273423004/) > > Reason for revert: > Speculative revert to fix XP bots. > > XP bots started crashing http://build.chromium.org/p/chromium.win/builders/XP%20Tests%20%281%29/builds/32011 and http://build.chromium.org/p/chromium.win/builders/XP%20Tests%20%282%29/builds/34677 > > This CL is the most suspicious in the range. If it doesn't fix the bots, I'll unrevert it. > > Original issue's description: > > Migrate accessibility from RenderView to RenderFrame and RVH to RFH. > > > > In preparation for out-of-process iframes, move almost all accessibility > > functionality from RenderView to RenderFrame, and from RVHI and RWHI > > to RFHI. > > > > In addition, the accessibility mode is moved to WebContents, and changing > > the mode triggers changing it on all frames. > > > > BUG=368298 > > R=jam@chromium.org, kenrb@chromium.org, nick@chromium.org > > > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=283994 > > TBR=dmazzoni@chromium.org > NOTRY=true > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=284032 TBR=creis@chromium.org,nick@chromium.org,nasko@chromium.org,jam@chromium.org,dtseng@chromium.org,jschuh@chromium.org,tsepez@chromium.org,kenrb@chromium.org,dmazzoni@chromium.org NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/407493004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284065 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_frame_impl.h')
-rw-r--r--content/renderer/render_frame_impl.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index e9e8270..3cd7082 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -14,6 +14,7 @@
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/process/process_handle.h"
+#include "content/common/accessibility_mode_enums.h"
#include "content/common/mojo/service_registry_impl.h"
#include "content/public/common/javascript_message_type.h"
#include "content/public/common/referrer.h"
@@ -22,6 +23,7 @@
#include "content/renderer/render_frame_proxy.h"
#include "content/renderer/renderer_webcookiejar_impl.h"
#include "ipc/ipc_message.h"
+#include "third_party/WebKit/public/web/WebAXObject.h"
#include "third_party/WebKit/public/web/WebDataSource.h"
#include "third_party/WebKit/public/web/WebFrameClient.h"
#include "third_party/WebKit/public/web/WebHistoryCommitType.h"
@@ -65,6 +67,7 @@ class MidiDispatcher;
class NotificationProvider;
class PepperPluginInstanceImpl;
class PushMessagingDispatcher;
+class RendererAccessibility;
class RendererCdmManager;
class RendererMediaPlayerManager;
class RendererPpapiHost;
@@ -148,6 +151,22 @@ class CONTENT_EXPORT RenderFrameImpl
virtual void didStopLoading();
virtual void didChangeLoadProgress(double load_progress);
+ AccessibilityMode accessibility_mode() {
+ return accessibility_mode_;
+ }
+
+ RendererAccessibility* renderer_accessibility() {
+ return renderer_accessibility_;
+ }
+
+ void HandleWebAccessibilityEvent(const blink::WebAXObject& obj,
+ blink::WebAXEvent event);
+
+ // TODO(dmazzoni): the only reason this is here is to plumb it through to
+ // RendererAccessibility. It should be part of RenderFrameObserver, once
+ // blink has a separate accessibility tree per frame.
+ void FocusedNodeChanged(const blink::WebNode& node);
+
#if defined(ENABLE_PLUGINS)
// Notification that a PPAPI plugin has been created.
void PepperPluginCreated(RendererPpapiHost* host);
@@ -419,6 +438,7 @@ class CONTENT_EXPORT RenderFrameImpl
private:
friend class RenderFrameObserver;
+ friend class RendererAccessibilityTest;
FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest,
AccessibilityMessagesQueueWhileSwappedOut);
FRIEND_TEST_ALL_PREFIXES(RenderFrameImplTest,
@@ -429,6 +449,8 @@ class CONTENT_EXPORT RenderFrameImpl
FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK);
FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest,
SetEditableSelectionAndComposition);
+ FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest,
+ OnSetAccessibilityMode);
typedef std::map<GURL, double> HostZoomLevels;
@@ -476,6 +498,7 @@ class CONTENT_EXPORT RenderFrameImpl
void OnReload(bool ignore_cache);
void OnTextSurroundingSelectionRequest(size_t max_length);
void OnAddStyleSheetByURL(const std::string& url);
+ void OnSetAccessibilityMode(AccessibilityMode new_mode);
#if defined(OS_MACOSX)
void OnCopyToFindPboard();
#endif
@@ -664,6 +687,13 @@ class CONTENT_EXPORT RenderFrameImpl
// initialized.
ScreenOrientationDispatcher* screen_orientation_dispatcher_;
+ // The current accessibility mode.
+ AccessibilityMode accessibility_mode_;
+
+ // Only valid if |accessibility_mode_| is anything other than
+ // AccessibilityModeOff.
+ RendererAccessibility* renderer_accessibility_;
+
base::WeakPtrFactory<RenderFrameImpl> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl);