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

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

Issue 22922003: Remove notifications from Accessibility API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to comments Created 7 years, 4 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"
(...skipping 25 matching lines...) Expand all
36 return args.Pass(); 36 return args.Pass();
37 } 37 }
38 38
39 ExtensionAccessibilityEventRouter* 39 ExtensionAccessibilityEventRouter*
40 ExtensionAccessibilityEventRouter::GetInstance() { 40 ExtensionAccessibilityEventRouter::GetInstance() {
41 return Singleton<ExtensionAccessibilityEventRouter>::get(); 41 return Singleton<ExtensionAccessibilityEventRouter>::get();
42 } 42 }
43 43
44 ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter() 44 ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter()
45 : enabled_(false) { 45 : enabled_(false) {
46 registrar_.Add(this,
47 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED,
48 content::NotificationService::AllSources());
49 registrar_.Add(this,
50 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED,
51 content::NotificationService::AllSources());
52 registrar_.Add(this,
53 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED,
54 content::NotificationService::AllSources());
55 registrar_.Add(this,
56 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION,
57 content::NotificationService::AllSources());
58 registrar_.Add(this,
59 chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED,
60 content::NotificationService::AllSources());
61 registrar_.Add(this,
62 chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED,
63 content::NotificationService::AllSources());
64 registrar_.Add(this,
65 chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED,
66 content::NotificationService::AllSources());
67 } 46 }
68 47
69 ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() { 48 ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() {
70 } 49 control_event_callback_.Reset();
71
72 void ExtensionAccessibilityEventRouter::Observe(
73 int type,
74 const content::NotificationSource& source,
75 const content::NotificationDetails& details) {
76 switch (type) {
77 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED:
78 OnWindowOpened(
79 content::Details<const AccessibilityWindowInfo>(details).ptr());
80 break;
81 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED:
82 OnWindowClosed(
83 content::Details<const AccessibilityWindowInfo>(details).ptr());
84 break;
85 case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED:
86 OnControlFocused(
87 content::Details<const AccessibilityControlInfo>(details).ptr());
88 break;
89 case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION:
90 OnControlAction(
91 content::Details<const AccessibilityControlInfo>(details).ptr());
92 break;
93 case chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED:
94 OnTextChanged(
95 content::Details<const AccessibilityControlInfo>(details).ptr());
96 break;
97 case chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED:
98 OnMenuOpened(
99 content::Details<const AccessibilityMenuInfo>(details).ptr());
100 break;
101 case chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED:
102 OnMenuClosed(
103 content::Details<const AccessibilityMenuInfo>(details).ptr());
104 break;
105 default:
106 NOTREACHED();
107 }
108 } 50 }
109 51
110 void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) { 52 void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) {
111 enabled_ = enabled; 53 enabled_ = enabled;
112 } 54 }
113 55
114 bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const { 56 bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const {
115 return enabled_; 57 return enabled_;
116 } 58 }
117 59
60 void ExtensionAccessibilityEventRouter::SetControlEventCallbackForTesting(
61 ControlEventCallback control_event_callback) {
62 DCHECK(control_event_callback_.is_null());
63 control_event_callback_ = control_event_callback;
64 }
65 void ExtensionAccessibilityEventRouter::ClearControlEventCallback() {
dmazzoni 2013/08/14 21:00:17 Nit: blank line before
Cait (Slow) 2013/08/15 20:01:16 Done.
66 control_event_callback_.Reset();
67 }
68
69 void ExtensionAccessibilityEventRouter::HandleWindowEvent(
70 ui::AccessibilityTypes::Event event,
71 const AccessibilityWindowInfo* info) {
72 if (event == ui::AccessibilityTypes::EVENT_ALERT)
73 OnWindowOpened(info);
74 }
75
76 void ExtensionAccessibilityEventRouter::HandleMenuEvent(
77 ui::AccessibilityTypes::Event event,
78 const AccessibilityMenuInfo* info) {
79 switch (event) {
80 case ui::AccessibilityTypes::EVENT_MENUSTART:
81 case ui::AccessibilityTypes::EVENT_MENUPOPUPSTART:
82 OnMenuOpened(info);
83 break;
84 case ui::AccessibilityTypes::EVENT_MENUEND:
85 case ui::AccessibilityTypes::EVENT_MENUPOPUPEND:
86 OnMenuClosed(info);
87 break;
88 default:
89 NOTREACHED();
90 }
91 }
92
93 void ExtensionAccessibilityEventRouter::HandleControlEvent(
94 ui::AccessibilityTypes::Event event,
95 const AccessibilityControlInfo* info) {
96 if (!control_event_callback_.is_null())
97 control_event_callback_.Run(event, info);
98
99 switch (event) {
100 case ui::AccessibilityTypes::EVENT_TEXT_CHANGED:
101 case ui::AccessibilityTypes::EVENT_SELECTION_CHANGED:
102 OnTextChanged(info);
103 break;
104 case ui::AccessibilityTypes::EVENT_VALUE_CHANGED:
105 OnControlAction(info);
106 break;
107 case ui::AccessibilityTypes::EVENT_FOCUS:
108 OnControlFocused(info);
109 break;
110 default:
111 NOTREACHED();
112 }
113 }
114
118 void ExtensionAccessibilityEventRouter::OnWindowOpened( 115 void ExtensionAccessibilityEventRouter::OnWindowOpened(
119 const AccessibilityWindowInfo* info) { 116 const AccessibilityWindowInfo* info) {
120 scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); 117 scoped_ptr<ListValue> args(ControlInfoToEventArguments(info));
121 DispatchEvent(info->profile(), keys::kOnWindowOpened, args.Pass()); 118 DispatchEvent(info->profile(), keys::kOnWindowOpened, args.Pass());
122 } 119 }
123 120
124 void ExtensionAccessibilityEventRouter::OnWindowClosed(
125 const AccessibilityWindowInfo* info) {
126 scoped_ptr<ListValue> args(ControlInfoToEventArguments(info));
127 DispatchEvent(info->profile(), keys::kOnWindowClosed, args.Pass());
128 }
129
130 void ExtensionAccessibilityEventRouter::OnControlFocused( 121 void ExtensionAccessibilityEventRouter::OnControlFocused(
131 const AccessibilityControlInfo* info) { 122 const AccessibilityControlInfo* info) {
132 last_focused_control_dict_.Clear(); 123 last_focused_control_dict_.Clear();
133 info->SerializeToDict(&last_focused_control_dict_); 124 info->SerializeToDict(&last_focused_control_dict_);
134 scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); 125 scoped_ptr<ListValue> args(ControlInfoToEventArguments(info));
135 DispatchEvent(info->profile(), keys::kOnControlFocused, args.Pass()); 126 DispatchEvent(info->profile(), keys::kOnControlFocused, args.Pass());
136 } 127 }
137 128
138 void ExtensionAccessibilityEventRouter::OnControlAction( 129 void ExtensionAccessibilityEventRouter::OnControlAction(
139 const AccessibilityControlInfo* info) { 130 const AccessibilityControlInfo* info) {
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 DictionaryValue* alert_value = new DictionaryValue; 226 DictionaryValue* alert_value = new DictionaryValue;
236 const string16 message_text = confirm_infobar_delegate->GetMessageText(); 227 const string16 message_text = confirm_infobar_delegate->GetMessageText();
237 alert_value->SetString(keys::kMessageKey, message_text); 228 alert_value->SetString(keys::kMessageKey, message_text);
238 alerts_value->Append(alert_value); 229 alerts_value->Append(alert_value);
239 } 230 }
240 } 231 }
241 232
242 SetResult(alerts_value); 233 SetResult(alerts_value);
243 return true; 234 return true;
244 } 235 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698