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

Side by Side Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2694413006: Scope and clean up uses of AccessibilityMode. (Closed)
Patch Set: merge Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 1960 matching lines...) Expand 10 before | Expand all | Expand 10 after
1971 // reset but this message includes a reset token. 1971 // reset but this message includes a reset token.
1972 if (accessibility_reset_token_ != reset_token) { 1972 if (accessibility_reset_token_ != reset_token) {
1973 Send(new AccessibilityMsg_Events_ACK(routing_id_, ack_token)); 1973 Send(new AccessibilityMsg_Events_ACK(routing_id_, ack_token));
1974 return; 1974 return;
1975 } 1975 }
1976 accessibility_reset_token_ = 0; 1976 accessibility_reset_token_ = 0;
1977 1977
1978 RenderWidgetHostViewBase* view = GetViewForAccessibility(); 1978 RenderWidgetHostViewBase* view = GetViewForAccessibility();
1979 1979
1980 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 1980 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
1981 if ((accessibility_mode != AccessibilityModeOff) && view && is_active()) { 1981 if (!accessibility_mode.is_mode_off() && view && is_active()) {
1982 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) 1982 if (accessibility_mode.has_mode(AccessibilityMode::kNativeAPIs))
1983 GetOrCreateBrowserAccessibilityManager(); 1983 GetOrCreateBrowserAccessibilityManager();
1984 1984
1985 std::vector<AXEventNotificationDetails> details; 1985 std::vector<AXEventNotificationDetails> details;
1986 details.reserve(params.size()); 1986 details.reserve(params.size());
1987 for (size_t i = 0; i < params.size(); ++i) { 1987 for (size_t i = 0; i < params.size(); ++i) {
1988 const AccessibilityHostMsg_EventParams& param = params[i]; 1988 const AccessibilityHostMsg_EventParams& param = params[i];
1989 AXEventNotificationDetails detail; 1989 AXEventNotificationDetails detail;
1990 detail.event_type = param.event_type; 1990 detail.event_type = param.event_type;
1991 detail.id = param.id; 1991 detail.id = param.id;
1992 detail.ax_tree_id = GetAXTreeID(); 1992 detail.ax_tree_id = GetAXTreeID();
1993 detail.event_from = param.event_from; 1993 detail.event_from = param.event_from;
1994 if (param.update.has_tree_data) { 1994 if (param.update.has_tree_data) {
1995 detail.update.has_tree_data = true; 1995 detail.update.has_tree_data = true;
1996 ax_content_tree_data_ = param.update.tree_data; 1996 ax_content_tree_data_ = param.update.tree_data;
1997 AXContentTreeDataToAXTreeData(&detail.update.tree_data); 1997 AXContentTreeDataToAXTreeData(&detail.update.tree_data);
1998 } 1998 }
1999 detail.update.root_id = param.update.root_id; 1999 detail.update.root_id = param.update.root_id;
2000 detail.update.node_id_to_clear = param.update.node_id_to_clear; 2000 detail.update.node_id_to_clear = param.update.node_id_to_clear;
2001 detail.update.nodes.resize(param.update.nodes.size()); 2001 detail.update.nodes.resize(param.update.nodes.size());
2002 for (size_t i = 0; i < param.update.nodes.size(); ++i) { 2002 for (size_t i = 0; i < param.update.nodes.size(); ++i) {
2003 AXContentNodeDataToAXNodeData(param.update.nodes[i], 2003 AXContentNodeDataToAXNodeData(param.update.nodes[i],
2004 &detail.update.nodes[i]); 2004 &detail.update.nodes[i]);
2005 } 2005 }
2006 details.push_back(detail); 2006 details.push_back(detail);
2007 } 2007 }
2008 2008
2009 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2009 if (accessibility_mode.has_mode(AccessibilityMode::kNativeAPIs)) {
2010 if (browser_accessibility_manager_) 2010 if (browser_accessibility_manager_)
2011 browser_accessibility_manager_->OnAccessibilityEvents(details); 2011 browser_accessibility_manager_->OnAccessibilityEvents(details);
2012 } 2012 }
2013 2013
2014 delegate_->AccessibilityEventReceived(details); 2014 delegate_->AccessibilityEventReceived(details);
2015 2015
2016 // For testing only. 2016 // For testing only.
2017 if (!accessibility_testing_callback_.is_null()) { 2017 if (!accessibility_testing_callback_.is_null()) {
2018 for (size_t i = 0; i < details.size(); i++) { 2018 for (size_t i = 0; i < details.size(); i++) {
2019 const AXEventNotificationDetails& detail = details[i]; 2019 const AXEventNotificationDetails& detail = details[i];
(...skipping 24 matching lines...) Expand all
2044 2044
2045 void RenderFrameHostImpl::OnAccessibilityLocationChanges( 2045 void RenderFrameHostImpl::OnAccessibilityLocationChanges(
2046 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params) { 2046 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params) {
2047 if (accessibility_reset_token_) 2047 if (accessibility_reset_token_)
2048 return; 2048 return;
2049 2049
2050 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( 2050 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
2051 render_view_host_->GetWidget()->GetView()); 2051 render_view_host_->GetWidget()->GetView());
2052 if (view && is_active()) { 2052 if (view && is_active()) {
2053 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2053 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2054 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2054 if (accessibility_mode.has_mode(AccessibilityMode::kNativeAPIs)) {
2055 BrowserAccessibilityManager* manager = 2055 BrowserAccessibilityManager* manager =
2056 GetOrCreateBrowserAccessibilityManager(); 2056 GetOrCreateBrowserAccessibilityManager();
2057 if (manager) 2057 if (manager)
2058 manager->OnLocationChanges(params); 2058 manager->OnLocationChanges(params);
2059 } 2059 }
2060 2060
2061 // Send the updates to the automation extension API. 2061 // Send the updates to the automation extension API.
2062 std::vector<AXLocationChangeNotificationDetails> details; 2062 std::vector<AXLocationChangeNotificationDetails> details;
2063 details.reserve(params.size()); 2063 details.reserve(params.size());
2064 for (size_t i = 0; i < params.size(); ++i) { 2064 for (size_t i = 0; i < params.size(); ++i) {
2065 const AccessibilityHostMsg_LocationChangeParams& param = params[i]; 2065 const AccessibilityHostMsg_LocationChangeParams& param = params[i];
2066 AXLocationChangeNotificationDetails detail; 2066 AXLocationChangeNotificationDetails detail;
2067 detail.id = param.id; 2067 detail.id = param.id;
2068 detail.ax_tree_id = GetAXTreeID(); 2068 detail.ax_tree_id = GetAXTreeID();
2069 detail.new_location = param.new_location; 2069 detail.new_location = param.new_location;
2070 details.push_back(detail); 2070 details.push_back(detail);
2071 } 2071 }
2072 delegate_->AccessibilityLocationChangesReceived(details); 2072 delegate_->AccessibilityLocationChangesReceived(details);
2073 } 2073 }
2074 } 2074 }
2075 2075
2076 void RenderFrameHostImpl::OnAccessibilityFindInPageResult( 2076 void RenderFrameHostImpl::OnAccessibilityFindInPageResult(
2077 const AccessibilityHostMsg_FindInPageResultParams& params) { 2077 const AccessibilityHostMsg_FindInPageResultParams& params) {
2078 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2078 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2079 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2079 if (accessibility_mode.has_mode(AccessibilityMode::kNativeAPIs)) {
2080 BrowserAccessibilityManager* manager = 2080 BrowserAccessibilityManager* manager =
2081 GetOrCreateBrowserAccessibilityManager(); 2081 GetOrCreateBrowserAccessibilityManager();
2082 if (manager) { 2082 if (manager) {
2083 manager->OnFindInPageResult( 2083 manager->OnFindInPageResult(
2084 params.request_id, params.match_index, params.start_id, 2084 params.request_id, params.match_index, params.start_id,
2085 params.start_offset, params.end_id, params.end_offset); 2085 params.start_offset, params.end_id, params.end_offset);
2086 } 2086 }
2087 } 2087 }
2088 } 2088 }
2089 2089
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
2939 2939
2940 bool RenderFrameHostImpl::IsSameSiteInstance( 2940 bool RenderFrameHostImpl::IsSameSiteInstance(
2941 RenderFrameHostImpl* other_render_frame_host) { 2941 RenderFrameHostImpl* other_render_frame_host) {
2942 // As a sanity check, make sure the frame belongs to the same BrowserContext. 2942 // As a sanity check, make sure the frame belongs to the same BrowserContext.
2943 CHECK_EQ(GetSiteInstance()->GetBrowserContext(), 2943 CHECK_EQ(GetSiteInstance()->GetBrowserContext(),
2944 other_render_frame_host->GetSiteInstance()->GetBrowserContext()); 2944 other_render_frame_host->GetSiteInstance()->GetBrowserContext());
2945 return GetSiteInstance() == other_render_frame_host->GetSiteInstance(); 2945 return GetSiteInstance() == other_render_frame_host->GetSiteInstance();
2946 } 2946 }
2947 2947
2948 void RenderFrameHostImpl::UpdateAccessibilityMode() { 2948 void RenderFrameHostImpl::UpdateAccessibilityMode() {
2949 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2949 int accessibility_mode_raw = delegate_->GetAccessibilityMode().mode();
2950 Send(new FrameMsg_SetAccessibilityMode(routing_id_, accessibility_mode)); 2950 Send(new FrameMsg_SetAccessibilityMode(routing_id_, accessibility_mode_raw));
2951 } 2951 }
2952 2952
2953 void RenderFrameHostImpl::RequestAXTreeSnapshot( 2953 void RenderFrameHostImpl::RequestAXTreeSnapshot(
2954 AXTreeSnapshotCallback callback) { 2954 AXTreeSnapshotCallback callback) {
2955 static int next_id = 1; 2955 static int next_id = 1;
2956 int callback_id = next_id++; 2956 int callback_id = next_id++;
2957 Send(new AccessibilityMsg_SnapshotTree(routing_id_, callback_id)); 2957 Send(new AccessibilityMsg_SnapshotTree(routing_id_, callback_id));
2958 ax_tree_snapshot_callbacks_.insert(std::make_pair(callback_id, callback)); 2958 ax_tree_snapshot_callbacks_.insert(std::make_pair(callback_id, callback));
2959 } 2959 }
2960 2960
2961 void RenderFrameHostImpl::SetAccessibilityCallbackForTesting( 2961 void RenderFrameHostImpl::SetAccessibilityCallbackForTesting(
2962 const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>& 2962 const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>&
2963 callback) { 2963 callback) {
2964 accessibility_testing_callback_ = callback; 2964 accessibility_testing_callback_ = callback;
2965 } 2965 }
2966 2966
2967 void RenderFrameHostImpl::UpdateAXTreeData() { 2967 void RenderFrameHostImpl::UpdateAXTreeData() {
2968 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2968 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2969 if (accessibility_mode == AccessibilityModeOff || !is_active()) { 2969 if (accessibility_mode.is_mode_off() || !is_active()) {
2970 return; 2970 return;
2971 } 2971 }
2972 2972
2973 std::vector<AXEventNotificationDetails> details; 2973 std::vector<AXEventNotificationDetails> details;
2974 details.reserve(1U); 2974 details.reserve(1U);
2975 AXEventNotificationDetails detail; 2975 AXEventNotificationDetails detail;
2976 detail.ax_tree_id = GetAXTreeID(); 2976 detail.ax_tree_id = GetAXTreeID();
2977 detail.update.has_tree_data = true; 2977 detail.update.has_tree_data = true;
2978 AXContentTreeDataToAXTreeData(&detail.update.tree_data); 2978 AXContentTreeDataToAXTreeData(&detail.update.tree_data);
2979 details.push_back(detail); 2979 details.push_back(detail);
(...skipping 23 matching lines...) Expand all
3003 bool is_root_frame = !frame_tree_node()->parent(); 3003 bool is_root_frame = !frame_tree_node()->parent();
3004 browser_accessibility_manager_.reset( 3004 browser_accessibility_manager_.reset(
3005 view->CreateBrowserAccessibilityManager(this, is_root_frame)); 3005 view->CreateBrowserAccessibilityManager(this, is_root_frame));
3006 } 3006 }
3007 return browser_accessibility_manager_.get(); 3007 return browser_accessibility_manager_.get();
3008 } 3008 }
3009 3009
3010 void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility( 3010 void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility(
3011 int request_id) { 3011 int request_id) {
3012 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 3012 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
3013 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 3013 if (accessibility_mode.has_mode(AccessibilityMode::kNativeAPIs)) {
3014 BrowserAccessibilityManager* manager = 3014 BrowserAccessibilityManager* manager =
3015 GetOrCreateBrowserAccessibilityManager(); 3015 GetOrCreateBrowserAccessibilityManager();
3016 if (manager) 3016 if (manager)
3017 manager->ActivateFindInPageResult(request_id); 3017 manager->ActivateFindInPageResult(request_id);
3018 } 3018 }
3019 } 3019 }
3020 3020
3021 void RenderFrameHostImpl::InsertVisualStateCallback( 3021 void RenderFrameHostImpl::InsertVisualStateCallback(
3022 const VisualStateCallback& callback) { 3022 const VisualStateCallback& callback) {
3023 static uint64_t next_id = 1; 3023 static uint64_t next_id = 1;
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
3488 GetUserData(kRenderFrameHostAndroidKey)); 3488 GetUserData(kRenderFrameHostAndroidKey));
3489 if (!render_frame_host_android) { 3489 if (!render_frame_host_android) {
3490 render_frame_host_android = new RenderFrameHostAndroid(this); 3490 render_frame_host_android = new RenderFrameHostAndroid(this);
3491 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android); 3491 SetUserData(kRenderFrameHostAndroidKey, render_frame_host_android);
3492 } 3492 }
3493 return render_frame_host_android->GetJavaObject(); 3493 return render_frame_host_android->GetJavaObject();
3494 } 3494 }
3495 #endif 3495 #endif
3496 3496
3497 } // namespace content 3497 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/renderer_host/legacy_render_widget_host_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698