Index: chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc |
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc b/chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc |
index dee3532c6c1dccffa5639db659c0640f440256cc..ea96dd648c7617533ffbaa5b71cc9c453eac2aac 100644 |
--- a/chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc |
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_update_service.cc |
@@ -41,6 +41,9 @@ KioskAppUpdateService::KioskAppUpdateService( |
if (automatic_reboot_manager_) |
automatic_reboot_manager_->AddObserver(this); |
+ |
+ if (KioskAppManager::Get()) |
+ KioskAppManager::Get()->AddObserver(this); |
} |
KioskAppUpdateService::~KioskAppUpdateService() { |
@@ -67,6 +70,8 @@ void KioskAppUpdateService::Shutdown() { |
extensions::ExtensionSystem::Get(profile_)->extension_service(); |
if (service) |
service->RemoveUpdateObserver(this); |
+ if (KioskAppManager::Get()) |
+ KioskAppManager::Get()->RemoveObserver(this); |
} |
void KioskAppUpdateService::OnAppUpdateAvailable( |
@@ -114,6 +119,18 @@ void KioskAppUpdateService::WillDestroyAutomaticRebootManager() { |
automatic_reboot_manager_ = NULL; |
} |
+void KioskAppUpdateService::OnKioskAppCacheUpdated(const std::string& app_id) { |
+ if (app_id != app_id_) |
+ return; |
+ |
+ extensions::RuntimeEventRouter::DispatchOnRestartRequiredEvent( |
+ profile_, |
+ app_id_, |
+ extensions::core_api::runtime::OnRestartRequired::REASON_APP_UPDATE); |
+ |
+ StartAppUpdateRestartTimer(); |
+} |
+ |
KioskAppUpdateServiceFactory::KioskAppUpdateServiceFactory() |
: BrowserContextKeyedServiceFactory( |
"KioskAppUpdateService", |