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 #ifndef APPS_APP_KEEP_ALIVE_SERVICE_H_ 6 #define APPS_APP_KEEP_ALIVE_SERVICE_H_ 7 8 #include "apps/app_lifetime_monitor.h" 9 #include "components/browser_context_keyed_service/browser_context_keyed_service.h" 10 11 namespace apps { 12 13 class AppKeepAliveService : public BrowserContextKeyedService, 14 public AppLifetimeMonitor::Observer { 15 public: 16 AppKeepAliveService(content::BrowserContext* context); 17 virtual ~AppKeepAliveService(); 18 virtual void Shutdown() OVERRIDE; 19 20 // AppLifetimeMonitor::Observer: 21 virtual void OnAppStart(Profile* profile, const std::string& app_id) OVERRIDE; 22 virtual void OnAppStop(Profile* profile, const std::string& app_id) OVERRIDE; 23 virtual void OnAppActivated(Profile* profile, 24 const std::string& app_id) OVERRIDE; 25 virtual void OnAppDeactivated(Profile* profile, 26 const std::string& app_id) OVERRIDE; 27 virtual void OnChromeTerminating() OVERRIDE; 28 29 private: 30 content::BrowserContext* context_; 31 std::set<std::string> running_apps_; 32 bool shut_down_; 33 34 DISALLOW_COPY_AND_ASSIGN(AppKeepAliveService); 35 }; 36 37 } // namespace apps 38 39 #endif // APPS_APP_KEEP_ALIVE_SERVICE_H_ 40