OLD | NEW |
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/extensions/api/tabs/tabs_windows_api.h" | 5 #include "chrome/browser/extensions/api/tabs/tabs_windows_api.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h" | 8 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h" |
9 #include "chrome/browser/extensions/api/tabs/windows_event_router.h" | 9 #include "chrome/browser/extensions/api/tabs/windows_event_router.h" |
| 10 #include "chrome/browser/profiles/profile.h" |
10 #include "chrome/common/extensions/api/tabs.h" | 11 #include "chrome/common/extensions/api/tabs.h" |
11 #include "chrome/common/extensions/api/windows.h" | 12 #include "chrome/common/extensions/api/windows.h" |
12 #include "extensions/browser/event_router.h" | 13 #include "extensions/browser/event_router.h" |
13 #include "extensions/browser/extension_system.h" | 14 #include "extensions/browser/extension_system.h" |
14 | 15 |
15 namespace extensions { | 16 namespace extensions { |
16 | 17 |
17 TabsWindowsAPI::TabsWindowsAPI(Profile* profile) : profile_(profile) { | 18 TabsWindowsAPI::TabsWindowsAPI(content::BrowserContext* context) |
| 19 : browser_context_(context) { |
| 20 EventRouter* event_router = |
| 21 ExtensionSystem::Get(browser_context_)->event_router(); |
| 22 |
18 // Tabs API Events. | 23 // Tabs API Events. |
19 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 24 event_router->RegisterObserver(this, api::tabs::OnCreated::kEventName); |
20 this, api::tabs::OnCreated::kEventName); | 25 event_router->RegisterObserver(this, api::tabs::OnUpdated::kEventName); |
21 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 26 event_router->RegisterObserver(this, api::tabs::OnMoved::kEventName); |
22 this, api::tabs::OnUpdated::kEventName); | 27 event_router->RegisterObserver(this, |
23 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 28 api::tabs::OnSelectionChanged::kEventName); |
24 this, api::tabs::OnMoved::kEventName); | 29 event_router->RegisterObserver(this, api::tabs::OnActiveChanged::kEventName); |
25 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 30 event_router->RegisterObserver(this, api::tabs::OnActivated::kEventName); |
26 this, api::tabs::OnSelectionChanged::kEventName); | 31 event_router->RegisterObserver(this, |
27 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 32 api::tabs::OnHighlightChanged::kEventName); |
28 this, api::tabs::OnActiveChanged::kEventName); | 33 event_router->RegisterObserver(this, api::tabs::OnHighlighted::kEventName); |
29 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 34 event_router->RegisterObserver(this, api::tabs::OnDetached::kEventName); |
30 this, api::tabs::OnActivated::kEventName); | 35 event_router->RegisterObserver(this, api::tabs::OnAttached::kEventName); |
31 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 36 event_router->RegisterObserver(this, api::tabs::OnRemoved::kEventName); |
32 this, api::tabs::OnHighlightChanged::kEventName); | 37 event_router->RegisterObserver(this, api::tabs::OnReplaced::kEventName); |
33 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
34 this, api::tabs::OnHighlighted::kEventName); | |
35 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
36 this, api::tabs::OnDetached::kEventName); | |
37 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
38 this, api::tabs::OnAttached::kEventName); | |
39 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
40 this, api::tabs::OnRemoved::kEventName); | |
41 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
42 this, api::tabs::OnReplaced::kEventName); | |
43 | 38 |
44 // Windows API Events. | 39 // Windows API Events. |
45 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 40 event_router->RegisterObserver(this, api::windows::OnCreated::kEventName); |
46 this, api::windows::OnCreated::kEventName); | 41 event_router->RegisterObserver(this, api::windows::OnRemoved::kEventName); |
47 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | 42 event_router->RegisterObserver(this, |
48 this, api::windows::OnRemoved::kEventName); | 43 api::windows::OnFocusChanged::kEventName); |
49 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( | |
50 this, api::windows::OnFocusChanged::kEventName); | |
51 } | 44 } |
52 | 45 |
53 TabsWindowsAPI::~TabsWindowsAPI() { | 46 TabsWindowsAPI::~TabsWindowsAPI() { |
54 } | 47 } |
55 | 48 |
56 // static | 49 // static |
57 TabsWindowsAPI* TabsWindowsAPI::Get(Profile* profile) { | 50 TabsWindowsAPI* TabsWindowsAPI::Get(content::BrowserContext* context) { |
58 return ProfileKeyedAPIFactory<TabsWindowsAPI>::GetForProfile(profile); | 51 return ProfileKeyedAPIFactory<TabsWindowsAPI>::GetForProfile(context); |
59 } | 52 } |
60 | 53 |
61 TabsEventRouter* TabsWindowsAPI::tabs_event_router() { | 54 TabsEventRouter* TabsWindowsAPI::tabs_event_router() { |
62 if (!tabs_event_router_.get()) | 55 if (!tabs_event_router_.get()) |
63 tabs_event_router_.reset(new TabsEventRouter(profile_)); | 56 tabs_event_router_.reset( |
| 57 new TabsEventRouter(Profile::FromBrowserContext(browser_context_))); |
64 return tabs_event_router_.get(); | 58 return tabs_event_router_.get(); |
65 } | 59 } |
66 | 60 |
67 WindowsEventRouter* TabsWindowsAPI::windows_event_router() { | 61 WindowsEventRouter* TabsWindowsAPI::windows_event_router() { |
68 if (!windows_event_router_) | 62 if (!windows_event_router_) |
69 windows_event_router_.reset(new WindowsEventRouter(profile_)); | 63 windows_event_router_.reset( |
| 64 new WindowsEventRouter(Profile::FromBrowserContext(browser_context_))); |
70 return windows_event_router_.get(); | 65 return windows_event_router_.get(); |
71 } | 66 } |
72 | 67 |
73 void TabsWindowsAPI::Shutdown() { | 68 void TabsWindowsAPI::Shutdown() { |
74 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); | 69 ExtensionSystem::Get(browser_context_)->event_router()->UnregisterObserver( |
| 70 this); |
75 } | 71 } |
76 | 72 |
77 static base::LazyInstance<ProfileKeyedAPIFactory<TabsWindowsAPI> > | 73 static base::LazyInstance<ProfileKeyedAPIFactory<TabsWindowsAPI> > |
78 g_factory = LAZY_INSTANCE_INITIALIZER; | 74 g_factory = LAZY_INSTANCE_INITIALIZER; |
79 | 75 |
80 ProfileKeyedAPIFactory<TabsWindowsAPI>* TabsWindowsAPI::GetFactoryInstance() { | 76 ProfileKeyedAPIFactory<TabsWindowsAPI>* TabsWindowsAPI::GetFactoryInstance() { |
81 return g_factory.Pointer(); | 77 return g_factory.Pointer(); |
82 } | 78 } |
83 | 79 |
84 void TabsWindowsAPI::OnListenerAdded(const EventListenerInfo& details) { | 80 void TabsWindowsAPI::OnListenerAdded(const EventListenerInfo& details) { |
85 // Initialize the event routers. | 81 // Initialize the event routers. |
86 tabs_event_router(); | 82 tabs_event_router(); |
87 windows_event_router(); | 83 windows_event_router(); |
88 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); | 84 ExtensionSystem::Get(browser_context_)->event_router()->UnregisterObserver( |
| 85 this); |
89 } | 86 } |
90 | 87 |
91 } // namespace extensions | 88 } // namespace extensions |
OLD | NEW |