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

Side by Side Diff: chrome/browser/extensions/api/tabs/tabs_windows_api.cc

Issue 23724026: BrowserEventRouter -> TabsEventRouter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Yoyo's nits Created 7 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
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/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/windows_event_router.h" 9 #include "chrome/browser/extensions/api/tabs/windows_event_router.h"
9 #include "chrome/browser/extensions/event_router.h" 10 #include "chrome/browser/extensions/event_router.h"
10 #include "chrome/browser/extensions/extension_system.h" 11 #include "chrome/browser/extensions/extension_system.h"
12 #include "chrome/common/extensions/api/tabs.h"
11 #include "chrome/common/extensions/api/windows.h" 13 #include "chrome/common/extensions/api/windows.h"
12 14
13 namespace extensions { 15 namespace extensions {
14 16
15 namespace windows = api::windows; 17 TabsWindowsAPI::TabsWindowsAPI(Profile* profile) : profile_(profile) {
18 // Tabs API Events.
19 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
20 this, api::tabs::OnCreated::kEventName);
21 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
22 this, api::tabs::OnUpdated::kEventName);
23 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
24 this, api::tabs::OnMoved::kEventName);
25 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
26 this, api::tabs::OnSelectionChanged::kEventName);
27 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
28 this, api::tabs::OnActiveChanged::kEventName);
29 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
30 this, api::tabs::OnActivated::kEventName);
31 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
32 this, api::tabs::OnHighlightChanged::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);
16 43
17 TabsWindowsAPI::TabsWindowsAPI(Profile* profile) 44 // Windows API Events.
18 : profile_(profile) {
19 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 45 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
20 this, windows::OnCreated::kEventName); 46 this, api::windows::OnCreated::kEventName);
21 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 47 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
22 this, windows::OnRemoved::kEventName); 48 this, api::windows::OnRemoved::kEventName);
23 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 49 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
24 this, windows::OnFocusChanged::kEventName); 50 this, api::windows::OnFocusChanged::kEventName);
25 } 51 }
26 52
27 TabsWindowsAPI::~TabsWindowsAPI() { 53 TabsWindowsAPI::~TabsWindowsAPI() {
28 } 54 }
29 55
30 // static 56 // static
31 TabsWindowsAPI* TabsWindowsAPI::Get(Profile* profile) { 57 TabsWindowsAPI* TabsWindowsAPI::Get(Profile* profile) {
32 return ProfileKeyedAPIFactory<TabsWindowsAPI>::GetForProfile(profile); 58 return ProfileKeyedAPIFactory<TabsWindowsAPI>::GetForProfile(profile);
33 } 59 }
34 60
61 TabsEventRouter* TabsWindowsAPI::tabs_event_router() {
62 if (!tabs_event_router_.get())
63 tabs_event_router_.reset(new TabsEventRouter(profile_));
64 return tabs_event_router_.get();
65 }
66
35 WindowsEventRouter* TabsWindowsAPI::windows_event_router() { 67 WindowsEventRouter* TabsWindowsAPI::windows_event_router() {
36 if (!windows_event_router_) 68 if (!windows_event_router_)
37 windows_event_router_.reset(new WindowsEventRouter(profile_)); 69 windows_event_router_.reset(new WindowsEventRouter(profile_));
38 return windows_event_router_.get(); 70 return windows_event_router_.get();
39 } 71 }
40 72
41 void TabsWindowsAPI::Shutdown() { 73 void TabsWindowsAPI::Shutdown() {
42 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); 74 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
43 } 75 }
44 76
45 static base::LazyInstance<ProfileKeyedAPIFactory<TabsWindowsAPI> > 77 static base::LazyInstance<ProfileKeyedAPIFactory<TabsWindowsAPI> >
46 g_factory = LAZY_INSTANCE_INITIALIZER; 78 g_factory = LAZY_INSTANCE_INITIALIZER;
47 79
48 ProfileKeyedAPIFactory<TabsWindowsAPI>* TabsWindowsAPI::GetFactoryInstance() { 80 ProfileKeyedAPIFactory<TabsWindowsAPI>* TabsWindowsAPI::GetFactoryInstance() {
49 return &g_factory.Get(); 81 return &g_factory.Get();
50 } 82 }
51 83
52 void TabsWindowsAPI::OnListenerAdded( 84 void TabsWindowsAPI::OnListenerAdded(const EventListenerInfo& details) {
53 const extensions::EventListenerInfo& details) { 85 // Initialize the event routers.
86 tabs_event_router();
54 windows_event_router(); 87 windows_event_router();
55 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); 88 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
56 } 89 }
57 90
58 } // namespace extensions 91 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/tabs/tabs_windows_api.h ('k') | chrome/browser/extensions/browser_event_router.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698