diff options
author | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-14 12:50:45 +0000 |
---|---|---|
committer | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-14 12:50:45 +0000 |
commit | 0d025e14b6ce2f686e03974865467d98ee4f2b44 (patch) | |
tree | df239bfc20b5af5cc8b5533bce7c14a4383a1db2 /apps/app_restore_service.h | |
parent | 3a282dd9e76b74aac5d26bff4f2d08113a0bb0c1 (diff) | |
download | chromium_src-0d025e14b6ce2f686e03974865467d98ee4f2b44.zip chromium_src-0d025e14b6ce2f686e03974865467d98ee4f2b44.tar.gz chromium_src-0d025e14b6ce2f686e03974865467d98ee4f2b44.tar.bz2 |
Restart apps that don't listen to onRestarted() by sending them onLaunched().
We only do this if the app had windows opened the last time it was running,
otherwise apps that were running but had no windows may restart by opening
windows, which manifests as apps coming back on a restart after the user
already closed them.
BUG=230667,167740,162057
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=199406
Reverted: https://src.chromium.org/viewvc/chrome?view=rev&revision=199409
Review URL: https://chromiumcodereview.appspot.com/14878008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199970 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps/app_restore_service.h')
-rw-r--r-- | apps/app_restore_service.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/apps/app_restore_service.h b/apps/app_restore_service.h index f27c83c..287a21c 100644 --- a/apps/app_restore_service.h +++ b/apps/app_restore_service.h @@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "chrome/browser/extensions/shell_window_registry.h" #include "chrome/browser/profiles/profile_keyed_service.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -29,7 +30,8 @@ namespace apps { // Tracks what apps need to be restarted when the browser restarts. class AppRestoreService : public ProfileKeyedService, - public content::NotificationObserver { + public content::NotificationObserver, + public extensions::ShellWindowRegistry::Observer { public: // Returns true if apps should be restored on the current platform, given // whether this new browser process launched due to a restart. @@ -47,8 +49,18 @@ class AppRestoreService : public ProfileKeyedService, const content::NotificationSource& source, const content::NotificationDetails& details) OVERRIDE; + // extensions::ShellWindowRegistry::Observer. + virtual void OnShellWindowAdded(ShellWindow* shell_window) OVERRIDE; + virtual void OnShellWindowIconChanged(ShellWindow* shell_window) OVERRIDE; + virtual void OnShellWindowRemoved(ShellWindow* shell_window) OVERRIDE; + + // ProfileKeyedService. + virtual void Shutdown() OVERRIDE; + void RecordAppStart(const std::string& extension_id); void RecordAppStop(const std::string& extension_id); + void RecordIfAppHasWindows(const std::string& id); + void RestoreApp( const extensions::Extension* extension, const std::vector<SavedFileEntry>& file_entries); |