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

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

Issue 11649053: Banish boilerplate. Profile-keyed API factory for extension API classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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/extensions/api/tabs/tabs_windows_api.h" 5 #include "chrome/browser/extensions/api/tabs/tabs_windows_api.h"
6 6
7 #include "chrome/browser/extensions/api/tabs/tabs_windows_api_factory.h"
8 #include "chrome/browser/extensions/api/tabs/windows_event_router.h" 7 #include "chrome/browser/extensions/api/tabs/windows_event_router.h"
9 #include "chrome/browser/extensions/event_names.h" 8 #include "chrome/browser/extensions/event_names.h"
10 #include "chrome/browser/extensions/event_router.h" 9 #include "chrome/browser/extensions/event_router.h"
11 #include "chrome/browser/extensions/extension_system.h" 10 #include "chrome/browser/extensions/extension_system.h"
12 11
13 namespace extensions { 12 namespace extensions {
14 13
15 TabsWindowsAPI::TabsWindowsAPI(Profile* profile) 14 TabsWindowsAPI::TabsWindowsAPI(Profile* profile)
16 : profile_(profile) { 15 : profile_(profile) {
17 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 16 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
18 this, event_names::kOnWindowCreated); 17 this, event_names::kOnWindowCreated);
19 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 18 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
20 this, event_names::kOnWindowRemoved); 19 this, event_names::kOnWindowRemoved);
21 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver( 20 ExtensionSystem::Get(profile_)->event_router()->RegisterObserver(
22 this, event_names::kOnWindowFocusedChanged); 21 this, event_names::kOnWindowFocusedChanged);
23 } 22 }
24 23
25 TabsWindowsAPI::~TabsWindowsAPI() { 24 TabsWindowsAPI::~TabsWindowsAPI() {
26 } 25 }
27 26
28 // static 27 // static
29 TabsWindowsAPI* TabsWindowsAPI::Get(Profile* profile) { 28 TabsWindowsAPI* TabsWindowsAPI::Get(Profile* profile) {
30 return TabsWindowsAPIFactory::GetForProfile(profile); 29 return ProfileKeyedAPIFactory<TabsWindowsAPI>::GetForProfile(profile);
31 } 30 }
32 31
33 WindowsEventRouter* TabsWindowsAPI::windows_event_router() { 32 WindowsEventRouter* TabsWindowsAPI::windows_event_router() {
34 if (!windows_event_router_) 33 if (!windows_event_router_)
35 windows_event_router_.reset(new WindowsEventRouter(profile_)); 34 windows_event_router_.reset(new WindowsEventRouter(profile_));
36 return windows_event_router_.get(); 35 return windows_event_router_.get();
37 } 36 }
38 37
39 void TabsWindowsAPI::Shutdown() { 38 void TabsWindowsAPI::Shutdown() {
40 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); 39 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
41 } 40 }
42 41
43 void TabsWindowsAPI::OnListenerAdded( 42 void TabsWindowsAPI::OnListenerAdded(
44 const extensions::EventListenerInfo& details) { 43 const extensions::EventListenerInfo& details) {
45 windows_event_router(); 44 windows_event_router();
46 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); 45 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
47 } 46 }
48 47
49 } // namespace extensions 48 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698