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

Side by Side Diff: apps/app_lifetime_monitor.cc

Issue 2729503007: Remove Profile usage from //apps (Closed)
Patch Set: deps Created 3 years, 8 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
« no previous file with comments | « apps/app_lifetime_monitor.h ('k') | apps/app_lifetime_monitor_factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "apps/app_lifetime_monitor.h" 5 #include "apps/app_lifetime_monitor.h"
6 6
7 #include "chrome/browser/profiles/profile.h" 7 #include "content/public/browser/browser_context.h"
8 #include "content/public/browser/notification_details.h" 8 #include "content/public/browser/notification_details.h"
9 #include "content/public/browser/notification_service.h" 9 #include "content/public/browser/notification_service.h"
10 #include "extensions/browser/app_window/app_window.h" 10 #include "extensions/browser/app_window/app_window.h"
11 #include "extensions/browser/extension_host.h" 11 #include "extensions/browser/extension_host.h"
12 #include "extensions/browser/notification_types.h" 12 #include "extensions/browser/notification_types.h"
13 #include "extensions/common/extension.h" 13 #include "extensions/common/extension.h"
14 14
15 namespace apps { 15 namespace apps {
16 16
17 using extensions::AppWindow; 17 using extensions::AppWindow;
18 using extensions::AppWindowRegistry; 18 using extensions::AppWindowRegistry;
19 using extensions::Extension; 19 using extensions::Extension;
20 using extensions::ExtensionHost; 20 using extensions::ExtensionHost;
21 21
22 AppLifetimeMonitor::AppLifetimeMonitor(Profile* profile) 22 AppLifetimeMonitor::AppLifetimeMonitor(content::BrowserContext* context)
23 : profile_(profile) { 23 : context_(context) {
24 registrar_.Add(this, 24 registrar_.Add(this,
25 extensions::NOTIFICATION_EXTENSION_HOST_DID_STOP_FIRST_LOAD, 25 extensions::NOTIFICATION_EXTENSION_HOST_DID_STOP_FIRST_LOAD,
26 content::NotificationService::AllSources()); 26 content::NotificationService::AllSources());
27 registrar_.Add(this, 27 registrar_.Add(this,
28 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, 28 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED,
29 content::NotificationService::AllSources()); 29 content::NotificationService::AllSources());
30 30
31 AppWindowRegistry* app_window_registry = 31 AppWindowRegistry* app_window_registry =
32 AppWindowRegistry::Factory::GetForBrowserContext(profile_, 32 AppWindowRegistry::Factory::GetForBrowserContext(context_,
33 false /* create */); 33 false /* create */);
34 DCHECK(app_window_registry); 34 DCHECK(app_window_registry);
35 app_window_registry->AddObserver(this); 35 app_window_registry->AddObserver(this);
36 } 36 }
37 37
38 AppLifetimeMonitor::~AppLifetimeMonitor() {} 38 AppLifetimeMonitor::~AppLifetimeMonitor() {}
39 39
40 void AppLifetimeMonitor::AddObserver(Observer* observer) { 40 void AppLifetimeMonitor::AddObserver(Observer* observer) {
41 observers_.AddObserver(observer); 41 observers_.AddObserver(observer);
42 } 42 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 return; 87 return;
88 88
89 // The app is being activated if this is the first window to become visible. 89 // The app is being activated if this is the first window to become visible.
90 if (was_hidden && !HasOtherVisibleAppWindows(app_window)) { 90 if (was_hidden && !HasOtherVisibleAppWindows(app_window)) {
91 NotifyAppActivated(app_window->extension_id()); 91 NotifyAppActivated(app_window->extension_id());
92 } 92 }
93 } 93 }
94 94
95 void AppLifetimeMonitor::Shutdown() { 95 void AppLifetimeMonitor::Shutdown() {
96 AppWindowRegistry* app_window_registry = 96 AppWindowRegistry* app_window_registry =
97 AppWindowRegistry::Factory::GetForBrowserContext(profile_, 97 AppWindowRegistry::Factory::GetForBrowserContext(context_,
98 false /* create */); 98 false /* create */);
99 if (app_window_registry) 99 if (app_window_registry)
100 app_window_registry->RemoveObserver(this); 100 app_window_registry->RemoveObserver(this);
101 } 101 }
102 102
103 bool AppLifetimeMonitor::HasOtherVisibleAppWindows( 103 bool AppLifetimeMonitor::HasOtherVisibleAppWindows(
104 AppWindow* app_window) const { 104 AppWindow* app_window) const {
105 AppWindowRegistry::AppWindowList windows = 105 AppWindowRegistry::AppWindowList windows =
106 AppWindowRegistry::Get(app_window->browser_context()) 106 AppWindowRegistry::Get(app_window->browser_context())
107 ->GetAppWindowsForApp(app_window->extension_id()); 107 ->GetAppWindowsForApp(app_window->extension_id());
108 108
109 for (AppWindowRegistry::AppWindowList::const_iterator i = windows.begin(); 109 for (AppWindowRegistry::AppWindowList::const_iterator i = windows.begin();
110 i != windows.end(); 110 i != windows.end();
111 ++i) { 111 ++i) {
112 if (*i != app_window && !(*i)->is_hidden()) 112 if (*i != app_window && !(*i)->is_hidden())
113 return true; 113 return true;
114 } 114 }
115 return false; 115 return false;
116 } 116 }
117 117
118 void AppLifetimeMonitor::NotifyAppStart(const std::string& app_id) { 118 void AppLifetimeMonitor::NotifyAppStart(const std::string& app_id) {
119 for (auto& observer : observers_) 119 for (auto& observer : observers_)
120 observer.OnAppStart(profile_, app_id); 120 observer.OnAppStart(context_, app_id);
121 } 121 }
122 122
123 void AppLifetimeMonitor::NotifyAppActivated(const std::string& app_id) { 123 void AppLifetimeMonitor::NotifyAppActivated(const std::string& app_id) {
124 for (auto& observer : observers_) 124 for (auto& observer : observers_)
125 observer.OnAppActivated(profile_, app_id); 125 observer.OnAppActivated(context_, app_id);
126 } 126 }
127 127
128 void AppLifetimeMonitor::NotifyAppDeactivated(const std::string& app_id) { 128 void AppLifetimeMonitor::NotifyAppDeactivated(const std::string& app_id) {
129 for (auto& observer : observers_) 129 for (auto& observer : observers_)
130 observer.OnAppDeactivated(profile_, app_id); 130 observer.OnAppDeactivated(context_, app_id);
131 } 131 }
132 132
133 void AppLifetimeMonitor::NotifyAppStop(const std::string& app_id) { 133 void AppLifetimeMonitor::NotifyAppStop(const std::string& app_id) {
134 for (auto& observer : observers_) 134 for (auto& observer : observers_)
135 observer.OnAppStop(profile_, app_id); 135 observer.OnAppStop(context_, app_id);
136 } 136 }
137 137
138 } // namespace apps 138 } // namespace apps
OLDNEW
« no previous file with comments | « apps/app_lifetime_monitor.h ('k') | apps/app_lifetime_monitor_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698