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

Side by Side Diff: apps/app_lifetime_monitor.cc

Issue 23524005: Introduce AppsClient and use it in apps to get the loaded profiles list. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | apps/apps.gypi » ('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 "apps/shell_window.h" 7 #include "apps/shell_window.h"
8 #include "chrome/browser/chrome_notification_types.h" 8 #include "chrome/browser/chrome_notification_types.h"
9 #include "chrome/browser/extensions/extension_host.h" 9 #include "chrome/browser/extensions/extension_host.h"
10 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/extensions/extension.h" 11 #include "chrome/common/extensions/extension.h"
11 #include "content/public/browser/notification_details.h" 12 #include "content/public/browser/notification_details.h"
12 #include "content/public/browser/notification_service.h" 13 #include "content/public/browser/notification_service.h"
13 14
14 namespace apps { 15 namespace apps {
15 16
16 using extensions::Extension; 17 using extensions::Extension;
17 using extensions::ExtensionHost; 18 using extensions::ExtensionHost;
18 19
19 AppLifetimeMonitor::AppLifetimeMonitor(Profile* profile) 20 AppLifetimeMonitor::AppLifetimeMonitor(Profile* profile)
20 : profile_(profile) { 21 : profile_(profile) {
21 registrar_.Add( 22 registrar_.Add(
22 this, chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING, 23 this, chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING,
23 content::NotificationService::AllSources()); 24 content::NotificationService::AllSources());
24 registrar_.Add( 25 registrar_.Add(
25 this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, 26 this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED,
26 content::NotificationService::AllSources()); 27 content::NotificationService::AllSources());
27 registrar_.Add( 28 registrar_.Add(
28 this, chrome::NOTIFICATION_APP_TERMINATING, 29 this, chrome::NOTIFICATION_APP_TERMINATING,
29 content::NotificationService::AllSources()); 30 content::NotificationService::AllSources());
30 31
31 ShellWindowRegistry* shell_window_registry = 32 ShellWindowRegistry* shell_window_registry =
32 ShellWindowRegistry::Factory::GetForProfile( 33 ShellWindowRegistry::Factory::GetForBrowserContext(
33 profile_, false /* create */); 34 profile_, false /* create */);
34 DCHECK(shell_window_registry); 35 DCHECK(shell_window_registry);
35 shell_window_registry->AddObserver(this); 36 shell_window_registry->AddObserver(this);
36 } 37 }
37 38
38 AppLifetimeMonitor::~AppLifetimeMonitor() {} 39 AppLifetimeMonitor::~AppLifetimeMonitor() {}
39 40
40 void AppLifetimeMonitor::AddObserver(Observer* observer) { 41 void AppLifetimeMonitor::AddObserver(Observer* observer) {
41 observers_.AddObserver(observer); 42 observers_.AddObserver(observer);
42 } 43 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 void AppLifetimeMonitor::OnShellWindowRemoved(ShellWindow* shell_window) { 93 void AppLifetimeMonitor::OnShellWindowRemoved(ShellWindow* shell_window) {
93 ShellWindowRegistry::ShellWindowList windows = 94 ShellWindowRegistry::ShellWindowList windows =
94 ShellWindowRegistry::Get(shell_window->profile())-> 95 ShellWindowRegistry::Get(shell_window->profile())->
95 GetShellWindowsForApp(shell_window->extension_id()); 96 GetShellWindowsForApp(shell_window->extension_id());
96 if (windows.empty()) 97 if (windows.empty())
97 NotifyAppDeactivated(shell_window->extension_id()); 98 NotifyAppDeactivated(shell_window->extension_id());
98 } 99 }
99 100
100 void AppLifetimeMonitor::Shutdown() { 101 void AppLifetimeMonitor::Shutdown() {
101 ShellWindowRegistry* shell_window_registry = 102 ShellWindowRegistry* shell_window_registry =
102 ShellWindowRegistry::Factory::GetForProfile( 103 ShellWindowRegistry::Factory::GetForBrowserContext(
103 profile_, false /* create */); 104 profile_, false /* create */);
104 if (shell_window_registry) 105 if (shell_window_registry)
105 shell_window_registry->RemoveObserver(this); 106 shell_window_registry->RemoveObserver(this);
106 } 107 }
107 108
108 void AppLifetimeMonitor::NotifyAppStart(const std::string& app_id) { 109 void AppLifetimeMonitor::NotifyAppStart(const std::string& app_id) {
109 FOR_EACH_OBSERVER(Observer, observers_, OnAppStart(profile_, app_id)); 110 FOR_EACH_OBSERVER(Observer, observers_, OnAppStart(profile_, app_id));
110 } 111 }
111 112
112 void AppLifetimeMonitor::NotifyAppActivated(const std::string& app_id) { 113 void AppLifetimeMonitor::NotifyAppActivated(const std::string& app_id) {
113 FOR_EACH_OBSERVER(Observer, observers_, OnAppActivated(profile_, app_id)); 114 FOR_EACH_OBSERVER(Observer, observers_, OnAppActivated(profile_, app_id));
114 } 115 }
115 116
116 void AppLifetimeMonitor::NotifyAppDeactivated(const std::string& app_id) { 117 void AppLifetimeMonitor::NotifyAppDeactivated(const std::string& app_id) {
117 FOR_EACH_OBSERVER(Observer, observers_, OnAppDeactivated(profile_, app_id)); 118 FOR_EACH_OBSERVER(Observer, observers_, OnAppDeactivated(profile_, app_id));
118 } 119 }
119 120
120 void AppLifetimeMonitor::NotifyAppStop(const std::string& app_id) { 121 void AppLifetimeMonitor::NotifyAppStop(const std::string& app_id) {
121 FOR_EACH_OBSERVER(Observer, observers_, OnAppStop(profile_, app_id)); 122 FOR_EACH_OBSERVER(Observer, observers_, OnAppStop(profile_, app_id));
122 } 123 }
123 124
124 void AppLifetimeMonitor::NotifyChromeTerminating() { 125 void AppLifetimeMonitor::NotifyChromeTerminating() {
125 FOR_EACH_OBSERVER(Observer, observers_, OnChromeTerminating()); 126 FOR_EACH_OBSERVER(Observer, observers_, OnChromeTerminating());
126 } 127 }
127 128
128 } // namespace apps 129 } // namespace apps
OLDNEW
« no previous file with comments | « no previous file | apps/apps.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698