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

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: build bustage Created 3 years, 10 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 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after
1995 // reset but this message includes a reset token. 1995 // reset but this message includes a reset token.
1996 if (accessibility_reset_token_ != reset_token) { 1996 if (accessibility_reset_token_ != reset_token) {
1997 Send(new AccessibilityMsg_Events_ACK(routing_id_, ack_token)); 1997 Send(new AccessibilityMsg_Events_ACK(routing_id_, ack_token));
1998 return; 1998 return;
1999 } 1999 }
2000 accessibility_reset_token_ = 0; 2000 accessibility_reset_token_ = 0;
2001 2001
2002 RenderWidgetHostViewBase* view = GetViewForAccessibility(); 2002 RenderWidgetHostViewBase* view = GetViewForAccessibility();
2003 2003
2004 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2004 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2005 if ((accessibility_mode != AccessibilityModeOff) && view && is_active()) { 2005 if ((accessibility_mode != AccessibilityMode::OFF) && view && is_active()) {
2006 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) 2006 if (accessibility_mode & AccessibilityMode::NATIVE_APIS)
2007 GetOrCreateBrowserAccessibilityManager(); 2007 GetOrCreateBrowserAccessibilityManager();
2008 2008
2009 std::vector<AXEventNotificationDetails> details; 2009 std::vector<AXEventNotificationDetails> details;
2010 details.reserve(params.size()); 2010 details.reserve(params.size());
2011 for (size_t i = 0; i < params.size(); ++i) { 2011 for (size_t i = 0; i < params.size(); ++i) {
2012 const AccessibilityHostMsg_EventParams& param = params[i]; 2012 const AccessibilityHostMsg_EventParams& param = params[i];
2013 AXEventNotificationDetails detail; 2013 AXEventNotificationDetails detail;
2014 detail.event_type = param.event_type; 2014 detail.event_type = param.event_type;
2015 detail.id = param.id; 2015 detail.id = param.id;
2016 detail.ax_tree_id = GetAXTreeID(); 2016 detail.ax_tree_id = GetAXTreeID();
2017 detail.event_from = param.event_from; 2017 detail.event_from = param.event_from;
2018 if (param.update.has_tree_data) { 2018 if (param.update.has_tree_data) {
2019 detail.update.has_tree_data = true; 2019 detail.update.has_tree_data = true;
2020 ax_content_tree_data_ = param.update.tree_data; 2020 ax_content_tree_data_ = param.update.tree_data;
2021 AXContentTreeDataToAXTreeData(&detail.update.tree_data); 2021 AXContentTreeDataToAXTreeData(&detail.update.tree_data);
2022 } 2022 }
2023 detail.update.root_id = param.update.root_id; 2023 detail.update.root_id = param.update.root_id;
2024 detail.update.node_id_to_clear = param.update.node_id_to_clear; 2024 detail.update.node_id_to_clear = param.update.node_id_to_clear;
2025 detail.update.nodes.resize(param.update.nodes.size()); 2025 detail.update.nodes.resize(param.update.nodes.size());
2026 for (size_t i = 0; i < param.update.nodes.size(); ++i) { 2026 for (size_t i = 0; i < param.update.nodes.size(); ++i) {
2027 AXContentNodeDataToAXNodeData(param.update.nodes[i], 2027 AXContentNodeDataToAXNodeData(param.update.nodes[i],
2028 &detail.update.nodes[i]); 2028 &detail.update.nodes[i]);
2029 } 2029 }
2030 details.push_back(detail); 2030 details.push_back(detail);
2031 } 2031 }
2032 2032
2033 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2033 if (accessibility_mode & AccessibilityMode::NATIVE_APIS) {
2034 if (browser_accessibility_manager_) 2034 if (browser_accessibility_manager_)
2035 browser_accessibility_manager_->OnAccessibilityEvents(details); 2035 browser_accessibility_manager_->OnAccessibilityEvents(details);
2036 } 2036 }
2037 2037
2038 delegate_->AccessibilityEventReceived(details); 2038 delegate_->AccessibilityEventReceived(details);
2039 2039
2040 // For testing only. 2040 // For testing only.
2041 if (!accessibility_testing_callback_.is_null()) { 2041 if (!accessibility_testing_callback_.is_null()) {
2042 for (size_t i = 0; i < details.size(); i++) { 2042 for (size_t i = 0; i < details.size(); i++) {
2043 const AXEventNotificationDetails& detail = details[i]; 2043 const AXEventNotificationDetails& detail = details[i];
(...skipping 24 matching lines...) Expand all
2068 2068
2069 void RenderFrameHostImpl::OnAccessibilityLocationChanges( 2069 void RenderFrameHostImpl::OnAccessibilityLocationChanges(
2070 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params) { 2070 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params) {
2071 if (accessibility_reset_token_) 2071 if (accessibility_reset_token_)
2072 return; 2072 return;
2073 2073
2074 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( 2074 RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
2075 render_view_host_->GetWidget()->GetView()); 2075 render_view_host_->GetWidget()->GetView());
2076 if (view && is_active()) { 2076 if (view && is_active()) {
2077 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2077 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2078 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2078 if (accessibility_mode & AccessibilityMode::NATIVE_APIS) {
2079 BrowserAccessibilityManager* manager = 2079 BrowserAccessibilityManager* manager =
2080 GetOrCreateBrowserAccessibilityManager(); 2080 GetOrCreateBrowserAccessibilityManager();
2081 if (manager) 2081 if (manager)
2082 manager->OnLocationChanges(params); 2082 manager->OnLocationChanges(params);
2083 } 2083 }
2084 2084
2085 // Send the updates to the automation extension API. 2085 // Send the updates to the automation extension API.
2086 std::vector<AXLocationChangeNotificationDetails> details; 2086 std::vector<AXLocationChangeNotificationDetails> details;
2087 details.reserve(params.size()); 2087 details.reserve(params.size());
2088 for (size_t i = 0; i < params.size(); ++i) { 2088 for (size_t i = 0; i < params.size(); ++i) {
2089 const AccessibilityHostMsg_LocationChangeParams& param = params[i]; 2089 const AccessibilityHostMsg_LocationChangeParams& param = params[i];
2090 AXLocationChangeNotificationDetails detail; 2090 AXLocationChangeNotificationDetails detail;
2091 detail.id = param.id; 2091 detail.id = param.id;
2092 detail.ax_tree_id = GetAXTreeID(); 2092 detail.ax_tree_id = GetAXTreeID();
2093 detail.new_location = param.new_location; 2093 detail.new_location = param.new_location;
2094 details.push_back(detail); 2094 details.push_back(detail);
2095 } 2095 }
2096 delegate_->AccessibilityLocationChangesReceived(details); 2096 delegate_->AccessibilityLocationChangesReceived(details);
2097 } 2097 }
2098 } 2098 }
2099 2099
2100 void RenderFrameHostImpl::OnAccessibilityFindInPageResult( 2100 void RenderFrameHostImpl::OnAccessibilityFindInPageResult(
2101 const AccessibilityHostMsg_FindInPageResultParams& params) { 2101 const AccessibilityHostMsg_FindInPageResultParams& params) {
2102 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2102 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2103 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 2103 if (accessibility_mode & AccessibilityMode::NATIVE_APIS) {
2104 BrowserAccessibilityManager* manager = 2104 BrowserAccessibilityManager* manager =
2105 GetOrCreateBrowserAccessibilityManager(); 2105 GetOrCreateBrowserAccessibilityManager();
2106 if (manager) { 2106 if (manager) {
2107 manager->OnFindInPageResult( 2107 manager->OnFindInPageResult(
2108 params.request_id, params.match_index, params.start_id, 2108 params.request_id, params.match_index, params.start_id,
2109 params.start_offset, params.end_id, params.end_offset); 2109 params.start_offset, params.end_id, params.end_offset);
2110 } 2110 }
2111 } 2111 }
2112 } 2112 }
2113 2113
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 } 2966 }
2967 2967
2968 void RenderFrameHostImpl::SetAccessibilityCallbackForTesting( 2968 void RenderFrameHostImpl::SetAccessibilityCallbackForTesting(
2969 const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>& 2969 const base::Callback<void(RenderFrameHostImpl*, ui::AXEvent, int)>&
2970 callback) { 2970 callback) {
2971 accessibility_testing_callback_ = callback; 2971 accessibility_testing_callback_ = callback;
2972 } 2972 }
2973 2973
2974 void RenderFrameHostImpl::UpdateAXTreeData() { 2974 void RenderFrameHostImpl::UpdateAXTreeData() {
2975 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 2975 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
2976 if (accessibility_mode == AccessibilityModeOff || !is_active()) { 2976 if (accessibility_mode == AccessibilityMode::OFF || !is_active()) {
2977 return; 2977 return;
2978 } 2978 }
2979 2979
2980 std::vector<AXEventNotificationDetails> details; 2980 std::vector<AXEventNotificationDetails> details;
2981 details.reserve(1U); 2981 details.reserve(1U);
2982 AXEventNotificationDetails detail; 2982 AXEventNotificationDetails detail;
2983 detail.ax_tree_id = GetAXTreeID(); 2983 detail.ax_tree_id = GetAXTreeID();
2984 detail.update.has_tree_data = true; 2984 detail.update.has_tree_data = true;
2985 AXContentTreeDataToAXTreeData(&detail.update.tree_data); 2985 AXContentTreeDataToAXTreeData(&detail.update.tree_data);
2986 details.push_back(detail); 2986 details.push_back(detail);
(...skipping 23 matching lines...) Expand all
3010 bool is_root_frame = !frame_tree_node()->parent(); 3010 bool is_root_frame = !frame_tree_node()->parent();
3011 browser_accessibility_manager_.reset( 3011 browser_accessibility_manager_.reset(
3012 view->CreateBrowserAccessibilityManager(this, is_root_frame)); 3012 view->CreateBrowserAccessibilityManager(this, is_root_frame));
3013 } 3013 }
3014 return browser_accessibility_manager_.get(); 3014 return browser_accessibility_manager_.get();
3015 } 3015 }
3016 3016
3017 void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility( 3017 void RenderFrameHostImpl::ActivateFindInPageResultForAccessibility(
3018 int request_id) { 3018 int request_id) {
3019 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode(); 3019 AccessibilityMode accessibility_mode = delegate_->GetAccessibilityMode();
3020 if (accessibility_mode & ACCESSIBILITY_MODE_FLAG_NATIVE_APIS) { 3020 if (accessibility_mode & AccessibilityMode::NATIVE_APIS) {
3021 BrowserAccessibilityManager* manager = 3021 BrowserAccessibilityManager* manager =
3022 GetOrCreateBrowserAccessibilityManager(); 3022 GetOrCreateBrowserAccessibilityManager();
3023 if (manager) 3023 if (manager)
3024 manager->ActivateFindInPageResult(request_id); 3024 manager->ActivateFindInPageResult(request_id);
3025 } 3025 }
3026 } 3026 }
3027 3027
3028 void RenderFrameHostImpl::InsertVisualStateCallback( 3028 void RenderFrameHostImpl::InsertVisualStateCallback(
3029 const VisualStateCallback& callback) { 3029 const VisualStateCallback& callback) {
3030 static uint64_t next_id = 1; 3030 static uint64_t next_id = 1;
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
3493 // There is no pending NavigationEntry in these cases, so pass 0 as the 3493 // There is no pending NavigationEntry in these cases, so pass 0 as the
3494 // pending_nav_entry_id. If the previous handle was a prematurely aborted 3494 // pending_nav_entry_id. If the previous handle was a prematurely aborted
3495 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. 3495 // navigation loaded via LoadDataWithBaseURL, propagate the entry id.
3496 return NavigationHandleImpl::Create( 3496 return NavigationHandleImpl::Create(
3497 params.url, params.redirects, frame_tree_node_, is_renderer_initiated, 3497 params.url, params.redirects, frame_tree_node_, is_renderer_initiated,
3498 params.was_within_same_page, base::TimeTicks::Now(), 3498 params.was_within_same_page, base::TimeTicks::Now(),
3499 entry_id_for_data_nav, false); // started_from_context_menu 3499 entry_id_for_data_nav, false); // started_from_context_menu
3500 } 3500 }
3501 3501
3502 } // namespace content 3502 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698