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

Unified Diff: content/renderer/render_view_impl.cc

Issue 407493002: 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_view_impl.h ('k') | content/renderer/render_view_impl_params.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 13d98cafc042139cdec9a803a2211d0c308399d6..4aeb478c8218af39b7ceed9f72c936913e089f18 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -727,6 +727,8 @@
speech_recognition_dispatcher_(NULL),
browser_plugin_manager_(NULL),
devtools_agent_(NULL),
+ accessibility_mode_(AccessibilityModeOff),
+ renderer_accessibility_(NULL),
mouse_lock_dispatcher_(NULL),
#if defined(OS_ANDROID)
expected_content_intent_id_(0),
@@ -858,6 +860,9 @@
mouse_lock_dispatcher_ = new RenderViewMouseLockDispatcher(this);
history_controller_.reset(new HistoryController(this));
+
+ // Create renderer_accessibility_ if needed.
+ OnSetAccessibilityMode(params->accessibility_mode);
new IdleUserDetector(this);
@@ -1201,7 +1206,8 @@
bool hidden,
bool never_visible,
int32 next_page_id,
- const blink::WebScreenInfo& screen_info) {
+ const blink::WebScreenInfo& screen_info,
+ AccessibilityMode accessibility_mode) {
DCHECK(routing_id != MSG_ROUTING_NONE);
RenderViewImplParams params(opener_id,
window_was_created_with_opener,
@@ -1218,7 +1224,8 @@
hidden,
never_visible,
next_page_id,
- screen_info);
+ screen_info,
+ accessibility_mode);
RenderViewImpl* render_view = NULL;
if (g_create_render_view_impl)
render_view = g_create_render_view_impl(&params);
@@ -1406,6 +1413,7 @@
IPC_MESSAGE_HANDLER(ViewMsg_SetHistoryLengthAndPrune,
OnSetHistoryLengthAndPrune)
IPC_MESSAGE_HANDLER(ViewMsg_EnableViewSourceMode, OnEnableViewSourceMode)
+ IPC_MESSAGE_HANDLER(ViewMsg_SetAccessibilityMode, OnSetAccessibilityMode)
IPC_MESSAGE_HANDLER(ViewMsg_DisownOpener, OnDisownOpener)
IPC_MESSAGE_HANDLER(ViewMsg_ReleaseDisambiguationPopupBitmap,
OnReleaseDisambiguationPopupBitmap)
@@ -1747,7 +1755,8 @@
params.disposition == NEW_BACKGROUND_TAB, // hidden
never_visible,
1, // next_page_id
- screen_info_);
+ screen_info_,
+ accessibility_mode_);
view->opened_by_user_gesture_ = params.user_gesture;
// Record whether the creator frame is trying to suppress the opener field.
@@ -2031,9 +2040,6 @@
Send(new ViewHostMsg_FocusedNodeChanged(routing_id_, IsEditableNode(node)));
FOR_EACH_OBSERVER(RenderViewObserver, observers_, FocusedNodeChanged(node));
-
- // TODO(dmazzoni): this should be part of RenderFrameObserver.
- main_render_frame()->FocusedNodeChanged(node);
}
void RenderViewImpl::didUpdateLayout() {
@@ -2066,7 +2072,9 @@
void RenderViewImpl::postAccessibilityEvent(
const WebAXObject& obj, blink::WebAXEvent event) {
- main_render_frame()->HandleWebAccessibilityEvent(obj, event);
+ if (renderer_accessibility_) {
+ renderer_accessibility_->HandleWebAccessibilityEvent(obj, event);
+ }
}
void RenderViewImpl::didUpdateInspectorSetting(const WebString& key,
@@ -3413,6 +3421,25 @@
compositor_->setHasTransparentBackground(!opaque);
}
+void RenderViewImpl::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 RenderViewImpl::OnSetActive(bool active) {
if (webview())
webview()->setIsActive(active);
@@ -4107,12 +4134,10 @@
const WebVector<WebRect>& target_rects) {
// Never show a disambiguation popup when accessibility is enabled,
// as this interferes with "touch exploration".
- AccessibilityMode accessibility_mode =
- main_render_frame()->accessibility_mode();
- bool matches_accessibility_mode_complete =
- (accessibility_mode & AccessibilityModeComplete) ==
- AccessibilityModeComplete;
- if (matches_accessibility_mode_complete)
+ bool matchesAccessibilityModeComplete =
+ (accessibility_mode_ & AccessibilityModeComplete) ==
+ AccessibilityModeComplete;
+ if (matchesAccessibilityModeComplete)
return false;
gfx::Rect finger_rect(
« no previous file with comments | « content/renderer/render_view_impl.h ('k') | content/renderer/render_view_impl_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698