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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 407493004: Revert of Revert of Migrate accessibility from RenderView to RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 85308be0052a144764638313804df4e089a6c840..a8baba25651f35db5bbaaec825f5eb6598f186d3 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -47,6 +47,8 @@
#include "content/public/renderer/navigation_state.h"
#include "content/public/renderer/render_frame_observer.h"
#include "content/renderer/accessibility/renderer_accessibility.h"
+#include "content/renderer/accessibility/renderer_accessibility_complete.h"
+#include "content/renderer/accessibility/renderer_accessibility_focus_only.h"
#include "content/renderer/browser_plugin/browser_plugin.h"
#include "content/renderer/browser_plugin/browser_plugin_manager.h"
#include "content/renderer/child_frame_compositing_helper.h"
@@ -411,6 +413,8 @@
geolocation_dispatcher_(NULL),
push_messaging_dispatcher_(NULL),
screen_orientation_dispatcher_(NULL),
+ accessibility_mode_(AccessibilityModeOff),
+ renderer_accessibility_(NULL),
weak_factory_(this) {
std::pair<RoutingIDFrameMap::iterator, bool> result =
g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
@@ -501,8 +505,8 @@
GetRenderWidget()->UpdateTextInputState(
RenderWidget::NO_SHOW_IME, RenderWidget::FROM_NON_IME);
- if (render_view_->renderer_accessibility())
- render_view_->renderer_accessibility()->FocusedNodeChanged(WebNode());
+ if (renderer_accessibility())
+ renderer_accessibility()->FocusedNodeChanged(WebNode());
}
void RenderFrameImpl::PepperCaretPositionChanged(
@@ -723,6 +727,8 @@
OnTextSurroundingSelectionRequest)
IPC_MESSAGE_HANDLER(FrameMsg_AddStyleSheetByURL,
OnAddStyleSheetByURL)
+ IPC_MESSAGE_HANDLER(FrameMsg_SetAccessibilityMode,
+ OnSetAccessibilityMode)
#if defined(OS_MACOSX)
IPC_MESSAGE_HANDLER(InputMsg_CopyToFindPboard, OnCopyToFindPboard)
#endif
@@ -1176,6 +1182,25 @@
return;
ImeEventGuard guard(GetRenderWidget());
frame_->extendSelectionAndDelete(before, after);
+}
+
+void RenderFrameImpl::OnSetAccessibilityMode(AccessibilityMode new_mode) {
+ if (accessibility_mode_ == new_mode)
+ return;
+ accessibility_mode_ = new_mode;
+ if (renderer_accessibility_) {
+ delete renderer_accessibility_;
+ renderer_accessibility_ = NULL;
+ }
+ if (accessibility_mode_ == AccessibilityModeOff)
+ return;
+
+ if (accessibility_mode_ & AccessibilityModeFlagFullTree)
+ renderer_accessibility_ = new RendererAccessibilityComplete(this);
+#if !defined(OS_ANDROID)
+ else
+ renderer_accessibility_ = new RendererAccessibilityFocusOnly(this);
+#endif
}
void RenderFrameImpl::OnReload(bool ignore_cache) {
@@ -3133,6 +3158,17 @@
void RenderFrameImpl::didChangeLoadProgress(double load_progress) {
Send(new FrameHostMsg_DidChangeLoadProgress(routing_id_, load_progress));
+}
+
+void RenderFrameImpl::HandleWebAccessibilityEvent(
+ const blink::WebAXObject& obj, blink::WebAXEvent event) {
+ if (renderer_accessibility_)
+ renderer_accessibility_->HandleWebAccessibilityEvent(obj, event);
+}
+
+void RenderFrameImpl::FocusedNodeChanged(const WebNode& node) {
+ if (renderer_accessibility_)
+ renderer_accessibility_->FocusedNodeChanged(node);
}
WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation(
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698