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

Side by Side Diff: chrome/browser/extensions/extension_accessibility_api.cc

Issue 8002001: Initialize ExtensionAccessibilityEventRouter earlier. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 3 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extensions/extension_tabs_module.h" 5 #include "chrome/browser/extensions/extension_tabs_module.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 23 matching lines...) Expand all
34 base::JSONWriter::Write(&args, false, &json_args); 34 base::JSONWriter::Write(&args, false, &json_args);
35 return json_args; 35 return json_args;
36 } 36 }
37 37
38 ExtensionAccessibilityEventRouter* 38 ExtensionAccessibilityEventRouter*
39 ExtensionAccessibilityEventRouter::GetInstance() { 39 ExtensionAccessibilityEventRouter::GetInstance() {
40 return Singleton<ExtensionAccessibilityEventRouter>::get(); 40 return Singleton<ExtensionAccessibilityEventRouter>::get();
41 } 41 }
42 42
43 ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter() 43 ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter()
44 : enabled_(false) {} 44 : enabled_(false) {
45 registrar_.Add(this,
46 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED,
47 NotificationService::AllSources());
48 registrar_.Add(this,
49 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED,
50 NotificationService::AllSources());
51 registrar_.Add(this,
52 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED,
53 NotificationService::AllSources());
54 registrar_.Add(this,
55 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION,
56 NotificationService::AllSources());
57 registrar_.Add(this,
58 chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED,
59 NotificationService::AllSources());
60 registrar_.Add(this,
61 chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED,
62 NotificationService::AllSources());
63 registrar_.Add(this,
64 chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED,
65 NotificationService::AllSources());
66 registrar_.Add(this,
67 chrome::NOTIFICATION_ACCESSIBILITY_VOLUME_CHANGED,
68 NotificationService::AllSources());
69 }
45 70
46 ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() { 71 ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() {
47 STLDeleteElements(&on_enabled_listeners_); 72 STLDeleteElements(&on_enabled_listeners_);
48 STLDeleteElements(&on_disabled_listeners_); 73 STLDeleteElements(&on_disabled_listeners_);
49 } 74 }
50 75
51 void ExtensionAccessibilityEventRouter::ObserveProfile(Profile* profile) {
52 last_focused_control_dict_.Clear();
53
54 if (registrar_.IsEmpty()) {
55 registrar_.Add(this,
56 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED,
57 NotificationService::AllSources());
58 registrar_.Add(this,
59 chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED,
60 NotificationService::AllSources());
61 registrar_.Add(this,
62 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED,
63 NotificationService::AllSources());
64 registrar_.Add(this,
65 chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION,
66 NotificationService::AllSources());
67 registrar_.Add(this,
68 chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED,
69 NotificationService::AllSources());
70 registrar_.Add(this,
71 chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED,
72 NotificationService::AllSources());
73 registrar_.Add(this,
74 chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED,
75 NotificationService::AllSources());
76 registrar_.Add(this,
77 chrome::NOTIFICATION_ACCESSIBILITY_VOLUME_CHANGED,
78 NotificationService::AllSources());
79 }
80 }
81
82 void ExtensionAccessibilityEventRouter::Observe( 76 void ExtensionAccessibilityEventRouter::Observe(
83 int type, 77 int type,
84 const NotificationSource& source, 78 const NotificationSource& source,
85 const NotificationDetails& details) { 79 const NotificationDetails& details) {
86 switch (type) { 80 switch (type) {
87 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED: 81 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED:
88 OnWindowOpened(Details<const AccessibilityWindowInfo>(details).ptr()); 82 OnWindowOpened(Details<const AccessibilityWindowInfo>(details).ptr());
89 break; 83 break;
90 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED: 84 case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED:
91 OnWindowClosed(Details<const AccessibilityWindowInfo>(details).ptr()); 85 OnWindowClosed(Details<const AccessibilityWindowInfo>(details).ptr());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 ExtensionAccessibilityEventRouter::GetInstance(); 212 ExtensionAccessibilityEventRouter::GetInstance();
219 DictionaryValue *last_focused_control_dict = 213 DictionaryValue *last_focused_control_dict =
220 accessibility_event_router->last_focused_control_dict(); 214 accessibility_event_router->last_focused_control_dict();
221 if (last_focused_control_dict->size()) { 215 if (last_focused_control_dict->size()) {
222 result_.reset(last_focused_control_dict->DeepCopyWithoutEmptyChildren()); 216 result_.reset(last_focused_control_dict->DeepCopyWithoutEmptyChildren());
223 } else { 217 } else {
224 result_.reset(Value::CreateNullValue()); 218 result_.reset(Value::CreateNullValue());
225 } 219 }
226 return true; 220 return true;
227 } 221 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_accessibility_api.h ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698