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

Side by Side Diff: chrome/browser/accessibility/accessibility_extension_api.cc

Issue 268823002: Re-land: Rename experimental.accessibility to accessibilityPrivate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/accessibility/accessibility_extension_api.h" 5 #include "chrome/browser/accessibility/accessibility_extension_api.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/accessibility/accessibility_extension_api_constants.h" 10 #include "chrome/browser/accessibility/accessibility_extension_api_constants.h"
11 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" 11 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
12 #include "chrome/browser/extensions/extension_service.h" 12 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/extensions/extension_tab_util.h" 13 #include "chrome/browser/extensions/extension_tab_util.h"
14 #include "chrome/browser/infobars/confirm_infobar_delegate.h" 14 #include "chrome/browser/infobars/confirm_infobar_delegate.h"
15 #include "chrome/browser/infobars/infobar_service.h" 15 #include "chrome/browser/infobars/infobar_service.h"
16 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/common/extensions/api/experimental_accessibility.h" 17 #include "chrome/common/extensions/api/accessibility_private.h"
18 #include "components/infobars/core/infobar.h" 18 #include "components/infobars/core/infobar.h"
19 #include "content/public/browser/browser_accessibility_state.h" 19 #include "content/public/browser/browser_accessibility_state.h"
20 #include "extensions/browser/event_router.h" 20 #include "extensions/browser/event_router.h"
21 #include "extensions/browser/extension_host.h" 21 #include "extensions/browser/extension_host.h"
22 #include "extensions/browser/extension_system.h" 22 #include "extensions/browser/extension_system.h"
23 #include "extensions/browser/lazy_background_task_queue.h" 23 #include "extensions/browser/lazy_background_task_queue.h"
24 #include "extensions/common/error_utils.h" 24 #include "extensions/common/error_utils.h"
25 #include "extensions/common/manifest_handlers/background_info.h" 25 #include "extensions/common/manifest_handlers/background_info.h"
26 26
27 namespace keys = extension_accessibility_api_constants; 27 namespace keys = extension_accessibility_api_constants;
28 namespace experimental_accessibility = 28 namespace accessibility_private = extensions::api::accessibility_private;
29 extensions::api::experimental_accessibility;
30 29
31 // Returns the AccessibilityControlInfo serialized into a JSON string, 30 // Returns the AccessibilityControlInfo serialized into a JSON string,
32 // consisting of an array of a single object of type AccessibilityObject, 31 // consisting of an array of a single object of type AccessibilityObject,
33 // as defined in the accessibility extension api's json schema. 32 // as defined in the accessibility extension api's json schema.
34 scoped_ptr<base::ListValue> ControlInfoToEventArguments( 33 scoped_ptr<base::ListValue> ControlInfoToEventArguments(
35 const AccessibilityEventInfo* info) { 34 const AccessibilityEventInfo* info) {
36 base::DictionaryValue* dict = new base::DictionaryValue(); 35 base::DictionaryValue* dict = new base::DictionaryValue();
37 info->SerializeToDict(dict); 36 info->SerializeToDict(dict);
38 37
39 scoped_ptr<base::ListValue> args(new base::ListValue()); 38 scoped_ptr<base::ListValue> args(new base::ListValue());
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 break; 121 break;
123 default: 122 default:
124 NOTREACHED(); 123 NOTREACHED();
125 } 124 }
126 } 125 }
127 126
128 void ExtensionAccessibilityEventRouter::OnWindowOpened( 127 void ExtensionAccessibilityEventRouter::OnWindowOpened(
129 const AccessibilityWindowInfo* info) { 128 const AccessibilityWindowInfo* info) {
130 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 129 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
131 DispatchEvent(info->profile(), 130 DispatchEvent(info->profile(),
132 experimental_accessibility::OnWindowOpened::kEventName, 131 accessibility_private::OnWindowOpened::kEventName,
133 args.Pass()); 132 args.Pass());
134 } 133 }
135 134
136 void ExtensionAccessibilityEventRouter::OnControlFocused( 135 void ExtensionAccessibilityEventRouter::OnControlFocused(
137 const AccessibilityControlInfo* info) { 136 const AccessibilityControlInfo* info) {
138 last_focused_control_dict_.Clear(); 137 last_focused_control_dict_.Clear();
139 info->SerializeToDict(&last_focused_control_dict_); 138 info->SerializeToDict(&last_focused_control_dict_);
140 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 139 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
141 DispatchEvent(info->profile(), 140 DispatchEvent(info->profile(),
142 experimental_accessibility::OnControlFocused::kEventName, 141 accessibility_private::OnControlFocused::kEventName,
143 args.Pass()); 142 args.Pass());
144 } 143 }
145 144
146 void ExtensionAccessibilityEventRouter::OnControlAction( 145 void ExtensionAccessibilityEventRouter::OnControlAction(
147 const AccessibilityControlInfo* info) { 146 const AccessibilityControlInfo* info) {
148 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 147 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
149 DispatchEvent(info->profile(), 148 DispatchEvent(info->profile(),
150 experimental_accessibility::OnControlAction::kEventName, 149 accessibility_private::OnControlAction::kEventName,
151 args.Pass()); 150 args.Pass());
152 } 151 }
153 152
154 void ExtensionAccessibilityEventRouter::OnTextChanged( 153 void ExtensionAccessibilityEventRouter::OnTextChanged(
155 const AccessibilityControlInfo* info) { 154 const AccessibilityControlInfo* info) {
156 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 155 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
157 DispatchEvent(info->profile(), 156 DispatchEvent(info->profile(),
158 experimental_accessibility::OnTextChanged::kEventName, 157 accessibility_private::OnTextChanged::kEventName,
159 args.Pass()); 158 args.Pass());
160 } 159 }
161 160
162 void ExtensionAccessibilityEventRouter::OnMenuOpened( 161 void ExtensionAccessibilityEventRouter::OnMenuOpened(
163 const AccessibilityMenuInfo* info) { 162 const AccessibilityMenuInfo* info) {
164 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 163 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
165 DispatchEvent(info->profile(), 164 DispatchEvent(info->profile(),
166 experimental_accessibility::OnMenuOpened::kEventName, 165 accessibility_private::OnMenuOpened::kEventName,
167 args.Pass()); 166 args.Pass());
168 } 167 }
169 168
170 void ExtensionAccessibilityEventRouter::OnMenuClosed( 169 void ExtensionAccessibilityEventRouter::OnMenuClosed(
171 const AccessibilityMenuInfo* info) { 170 const AccessibilityMenuInfo* info) {
172 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info)); 171 scoped_ptr<base::ListValue> args(ControlInfoToEventArguments(info));
173 DispatchEvent(info->profile(), 172 DispatchEvent(info->profile(),
174 experimental_accessibility::OnMenuClosed::kEventName, 173 accessibility_private::OnMenuClosed::kEventName,
175 args.Pass()); 174 args.Pass());
176 } 175 }
177 176
178 void ExtensionAccessibilityEventRouter::OnChromeVoxLoadStateChanged( 177 void ExtensionAccessibilityEventRouter::OnChromeVoxLoadStateChanged(
179 Profile* profile, 178 Profile* profile,
180 bool loading, 179 bool loading,
181 bool make_announcements) { 180 bool make_announcements) {
182 scoped_ptr<base::ListValue> event_args(new base::ListValue()); 181 scoped_ptr<base::ListValue> event_args(new base::ListValue());
183 event_args->Append(base::Value::CreateBooleanValue(loading)); 182 event_args->Append(base::Value::CreateBooleanValue(loading));
184 event_args->Append(base::Value::CreateBooleanValue(make_announcements)); 183 event_args->Append(base::Value::CreateBooleanValue(make_announcements));
185 ExtensionAccessibilityEventRouter::DispatchEventToChromeVox(profile, 184 ExtensionAccessibilityEventRouter::DispatchEventToChromeVox(
186 experimental_accessibility::OnChromeVoxLoadStateChanged::kEventName, 185 profile,
186 accessibility_private::OnChromeVoxLoadStateChanged::kEventName,
187 event_args.Pass()); 187 event_args.Pass());
188 } 188 }
189 189
190 // Static. 190 // Static.
191 void ExtensionAccessibilityEventRouter::DispatchEventToChromeVox( 191 void ExtensionAccessibilityEventRouter::DispatchEventToChromeVox(
192 Profile* profile, 192 Profile* profile,
193 const char* event_name, 193 const char* event_name,
194 scoped_ptr<base::ListValue> event_args) { 194 scoped_ptr<base::ListValue> event_args) {
195 extensions::ExtensionSystem* system = 195 extensions::ExtensionSystem* system =
196 extensions::ExtensionSystem::Get(profile); 196 extensions::ExtensionSystem::Get(profile);
(...skipping 13 matching lines...) Expand all
210 return; 210 return;
211 extensions::EventRouter* event_router = extensions::EventRouter::Get(profile); 211 extensions::EventRouter* event_router = extensions::EventRouter::Get(profile);
212 if (!event_router) 212 if (!event_router)
213 return; 213 return;
214 214
215 scoped_ptr<extensions::Event> event(new extensions::Event( 215 scoped_ptr<extensions::Event> event(new extensions::Event(
216 event_name, event_args.Pass())); 216 event_name, event_args.Pass()));
217 event_router->BroadcastEvent(event.Pass()); 217 event_router->BroadcastEvent(event.Pass());
218 } 218 }
219 219
220 bool AccessibilitySetAccessibilityEnabledFunction::RunSync() { 220 bool AccessibilityPrivateSetAccessibilityEnabledFunction::RunSync() {
221 bool enabled; 221 bool enabled;
222 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enabled)); 222 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enabled));
223 ExtensionAccessibilityEventRouter::GetInstance() 223 ExtensionAccessibilityEventRouter::GetInstance()
224 ->SetAccessibilityEnabled(enabled); 224 ->SetAccessibilityEnabled(enabled);
225 return true; 225 return true;
226 } 226 }
227 227
228 bool AccessibilitySetNativeAccessibilityEnabledFunction::RunSync() { 228 bool AccessibilityPrivateSetNativeAccessibilityEnabledFunction::RunSync() {
229 bool enabled; 229 bool enabled;
230 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enabled)); 230 EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enabled));
231 if (enabled) { 231 if (enabled) {
232 content::BrowserAccessibilityState::GetInstance()-> 232 content::BrowserAccessibilityState::GetInstance()->
233 EnableAccessibility(); 233 EnableAccessibility();
234 } else { 234 } else {
235 content::BrowserAccessibilityState::GetInstance()-> 235 content::BrowserAccessibilityState::GetInstance()->
236 DisableAccessibility(); 236 DisableAccessibility();
237 } 237 }
238 return true; 238 return true;
239 } 239 }
240 240
241 bool AccessibilityGetFocusedControlFunction::RunSync() { 241 bool AccessibilityPrivateGetFocusedControlFunction::RunSync() {
242 // Get the serialized dict from the last focused control and return it. 242 // Get the serialized dict from the last focused control and return it.
243 // However, if the dict is empty, that means we haven't seen any focus 243 // However, if the dict is empty, that means we haven't seen any focus
244 // events yet, so return null instead. 244 // events yet, so return null instead.
245 ExtensionAccessibilityEventRouter *accessibility_event_router = 245 ExtensionAccessibilityEventRouter *accessibility_event_router =
246 ExtensionAccessibilityEventRouter::GetInstance(); 246 ExtensionAccessibilityEventRouter::GetInstance();
247 base::DictionaryValue *last_focused_control_dict = 247 base::DictionaryValue *last_focused_control_dict =
248 accessibility_event_router->last_focused_control_dict(); 248 accessibility_event_router->last_focused_control_dict();
249 if (last_focused_control_dict->size()) { 249 if (last_focused_control_dict->size()) {
250 SetResult(last_focused_control_dict->DeepCopyWithoutEmptyChildren()); 250 SetResult(last_focused_control_dict->DeepCopyWithoutEmptyChildren());
251 } else { 251 } else {
252 SetResult(base::Value::CreateNullValue()); 252 SetResult(base::Value::CreateNullValue());
253 } 253 }
254 return true; 254 return true;
255 } 255 }
256 256
257 bool AccessibilityGetAlertsForTabFunction::RunSync() { 257 bool AccessibilityPrivateGetAlertsForTabFunction::RunSync() {
258 int tab_id; 258 int tab_id;
259 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &tab_id)); 259 EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(0, &tab_id));
260 260
261 TabStripModel* tab_strip = NULL; 261 TabStripModel* tab_strip = NULL;
262 content::WebContents* contents = NULL; 262 content::WebContents* contents = NULL;
263 int tab_index = -1; 263 int tab_index = -1;
264 if (!extensions::ExtensionTabUtil::GetTabById(tab_id, 264 if (!extensions::ExtensionTabUtil::GetTabById(tab_id,
265 GetProfile(), 265 GetProfile(),
266 include_incognito(), 266 include_incognito(),
267 NULL, 267 NULL,
(...skipping 18 matching lines...) Expand all
286 const base::string16 message_text = 286 const base::string16 message_text =
287 confirm_infobar_delegate->GetMessageText(); 287 confirm_infobar_delegate->GetMessageText();
288 alert_value->SetString(keys::kMessageKey, message_text); 288 alert_value->SetString(keys::kMessageKey, message_text);
289 alerts_value->Append(alert_value); 289 alerts_value->Append(alert_value);
290 } 290 }
291 } 291 }
292 292
293 SetResult(alerts_value); 293 SetResult(alerts_value);
294 return true; 294 return true;
295 } 295 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698