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

Side by Side Diff: apps/app_keep_alive_service.cc

Issue 172313004: Remove unused AppKeepAliveService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase (keep_alive_service) Created 6 years, 10 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 | « apps/app_keep_alive_service.h ('k') | apps/app_keep_alive_service_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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "apps/app_keep_alive_service.h"
6
7 #include "apps/app_lifetime_monitor.h"
8 #include "apps/app_lifetime_monitor_factory.h"
9 #include "base/message_loop/message_loop.h"
10 #include "chrome/browser/lifetime/application_lifetime.h"
11 #include "chrome/browser/profiles/profile.h"
12
13 namespace apps {
14
15 AppKeepAliveService::AppKeepAliveService(content::BrowserContext* context)
16 : context_(context), shut_down_(false) {
17 AppLifetimeMonitor* app_lifetime_monitor =
18 AppLifetimeMonitorFactory::GetForProfile(static_cast<Profile*>(context));
19 app_lifetime_monitor->AddObserver(this);
20 }
21
22 AppKeepAliveService::~AppKeepAliveService() {}
23
24 void AppKeepAliveService::Shutdown() {
25 AppLifetimeMonitor* app_lifetime_monitor =
26 AppLifetimeMonitorFactory::GetForProfile(static_cast<Profile*>(context_));
27 app_lifetime_monitor->RemoveObserver(this);
28 OnChromeTerminating();
29 }
30
31 void AppKeepAliveService::OnAppStart(Profile* profile,
32 const std::string& app_id) {
33 if (profile != context_ || shut_down_)
34 return;
35
36 if (running_apps_.insert(app_id).second)
37 chrome::IncrementKeepAliveCount();
38 }
39
40 void AppKeepAliveService::OnAppStop(Profile* profile,
41 const std::string& app_id) {
42 if (profile != context_)
43 return;
44
45 if (running_apps_.erase(app_id))
46 chrome::DecrementKeepAliveCount();
47 }
48
49 void AppKeepAliveService::OnAppActivated(Profile* profile,
50 const std::string& app_id) {}
51
52 void AppKeepAliveService::OnAppDeactivated(Profile* profile,
53 const std::string& app_id) {}
54
55 void AppKeepAliveService::OnChromeTerminating() {
56 shut_down_ = true;
57 size_t keep_alives = running_apps_.size();
58 running_apps_.clear();
59
60 // In some tests, the message loop isn't running during shutdown and ending
61 // the last keep alive in that case CHECKs.
62 if (!base::MessageLoop::current() ||
63 base::MessageLoop::current()->is_running()) {
64 while (keep_alives--)
65 chrome::DecrementKeepAliveCount();
66 }
67 }
68
69 } // namespace apps
OLDNEW
« no previous file with comments | « apps/app_keep_alive_service.h ('k') | apps/app_keep_alive_service_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698