summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-14 17:00:51 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-14 17:00:51 +0000
commit9b63a6ac918a0bb4f4697f8f45350f355655ea12 (patch)
tree920e30c071f6a3fef25fa7270420cd08b6891a20 /apps
parentb17dee89d058f1c5c2e3391a6ccff97143ae961c (diff)
downloadchromium_src-9b63a6ac918a0bb4f4697f8f45350f355655ea12.zip
chromium_src-9b63a6ac918a0bb4f4697f8f45350f355655ea12.tar.gz
chromium_src-9b63a6ac918a0bb4f4697f8f45350f355655ea12.tar.bz2
Revert 199970 "Restart apps that don't listen to onRestarted() b..."
This breaks unit_tests:BrowserCommandControllerTest.IncognitoModeOnSigninAllowedPrefChange in debug builds. The waterfall seems to not be running with DCHECKs on so this passed by unnoticed, but it causes failures in the CQ which is using DCHECKs. See also crbug.com/240718 Here's a failure build: http://build.chromium.org/p/tryserver.chromium/builders/linux_rel/builds/127560 Local bisect found this test breaks after this CL but not before. > 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 TBR=koz@chromium.org Review URL: https://codereview.chromium.org/15031005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200016 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps')
-rw-r--r--apps/app_restore_service.cc43
-rw-r--r--apps/app_restore_service.h14
-rw-r--r--apps/app_restore_service_factory.cc2
3 files changed, 1 insertions, 58 deletions
diff --git a/apps/app_restore_service.cc b/apps/app_restore_service.cc
index 08d5988..f8932fb 100644
--- a/apps/app_restore_service.cc
+++ b/apps/app_restore_service.cc
@@ -8,11 +8,9 @@
#include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h"
#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_host.h"
-#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/platform_app_launcher.h"
-#include "chrome/browser/ui/extensions/shell_window.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_set.h"
@@ -57,9 +55,6 @@ AppRestoreService::AppRestoreService(Profile* profile)
registrar_.Add(
this, chrome::NOTIFICATION_APP_TERMINATING,
content::NotificationService::AllSources());
- extensions::ShellWindowRegistry* shell_window_registry =
- extensions::ShellWindowRegistry::Get(profile);
- shell_window_registry->AddObserver(this);
}
void AppRestoreService::HandleStartup(bool should_restore_apps) {
@@ -107,32 +102,11 @@ void AppRestoreService::Observe(int type,
// Stop listening to NOTIFICATION_EXTENSION_HOST_DESTROYED in particular
// as all extension hosts will be destroyed as a result of shutdown.
registrar_.RemoveAll();
- // Stop listening to the ShellWindowRegistry for window closes, because
- // all windows will be closed as a result of shutdown.
- extensions::ShellWindowRegistry* shell_window_registry =
- extensions::ShellWindowRegistry::Get(profile_);
- shell_window_registry->RemoveObserver(this);
break;
}
}
}
-void AppRestoreService::OnShellWindowAdded(ShellWindow* shell_window) {
- RecordIfAppHasWindows(shell_window->extension_id());
-}
-
-void AppRestoreService::OnShellWindowIconChanged(ShellWindow* shell_window) {
-}
-
-void AppRestoreService::OnShellWindowRemoved(ShellWindow* shell_window) {
- RecordIfAppHasWindows(shell_window->extension_id());
-}
-
-void AppRestoreService::Shutdown() {
- extensions::ShellWindowRegistry* shell_window_registry =
- extensions::ShellWindowRegistry::Get(profile_);
- shell_window_registry->RemoveObserver(this);
-}
void AppRestoreService::RecordAppStart(const std::string& extension_id) {
ExtensionPrefs* extension_prefs =
@@ -148,23 +122,6 @@ void AppRestoreService::RecordAppStop(const std::string& extension_id) {
extension_prefs, extension_id);
}
-void AppRestoreService::RecordIfAppHasWindows(
- const std::string& id) {
- ExtensionService* extension_service =
- ExtensionSystem::Get(profile_)->extension_service();
- ExtensionPrefs* extension_prefs = extension_service->extension_prefs();
-
- // If the extension isn't running then we will already have recorded whether
- // it had windows or not.
- if (!extension_prefs->IsExtensionRunning(id))
- return;
-
- extensions::ShellWindowRegistry* shell_window_registry =
- extensions::ShellWindowRegistry::Get(profile_);
- bool has_windows = !shell_window_registry->GetShellWindowsForApp(id).empty();
- extension_prefs->SetHasWindows(id, has_windows);
-}
-
void AppRestoreService::RestoreApp(
const Extension* extension,
const std::vector<SavedFileEntry>& file_entries) {
diff --git a/apps/app_restore_service.h b/apps/app_restore_service.h
index 287a21c..f27c83c 100644
--- a/apps/app_restore_service.h
+++ b/apps/app_restore_service.h
@@ -8,7 +8,6 @@
#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"
@@ -30,8 +29,7 @@ namespace apps {
// Tracks what apps need to be restarted when the browser restarts.
class AppRestoreService : public ProfileKeyedService,
- public content::NotificationObserver,
- public extensions::ShellWindowRegistry::Observer {
+ public content::NotificationObserver {
public:
// Returns true if apps should be restored on the current platform, given
// whether this new browser process launched due to a restart.
@@ -49,18 +47,8 @@ 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);
diff --git a/apps/app_restore_service_factory.cc b/apps/app_restore_service_factory.cc
index 091487e..71dd80b 100644
--- a/apps/app_restore_service_factory.cc
+++ b/apps/app_restore_service_factory.cc
@@ -5,7 +5,6 @@
#include "apps/app_restore_service_factory.h"
#include "apps/app_restore_service.h"
-#include "chrome/browser/extensions/shell_window_registry.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_dependency_manager.h"
@@ -31,7 +30,6 @@ AppRestoreServiceFactory* AppRestoreServiceFactory::GetInstance() {
AppRestoreServiceFactory::AppRestoreServiceFactory()
: ProfileKeyedServiceFactory("AppRestoreService",
ProfileDependencyManager::GetInstance()) {
- DependsOn(extensions::ShellWindowRegistry::Factory::GetInstance());
}
AppRestoreServiceFactory::~AppRestoreServiceFactory() {