Chromium Code Reviews| Index: chrome/browser/extensions/api/runtime/runtime_api.cc |
| diff --git a/chrome/browser/extensions/api/runtime/runtime_api.cc b/chrome/browser/extensions/api/runtime/runtime_api.cc |
| index fd3a34311fc1e859cffea56dbc4f6497de9be92a..726b0329587a3990c705fd7ca624aae2dfbaf547 100644 |
| --- a/chrome/browser/extensions/api/runtime/runtime_api.cc |
| +++ b/chrome/browser/extensions/api/runtime/runtime_api.cc |
| @@ -4,7 +4,11 @@ |
| #include "chrome/browser/extensions/api/runtime/runtime_api.h" |
| +#include <utility> |
| + |
| +#include "base/logging.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/values.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/extensions/event_router.h" |
| #include "chrome/browser/extensions/extension_host.h" |
| @@ -34,8 +38,7 @@ namespace { |
| const char kOnStartupEvent[] = "runtime.onStartup"; |
| const char kOnInstalledEvent[] = "runtime.onInstalled"; |
| const char kOnUpdateAvailableEvent[] = "runtime.onUpdateAvailable"; |
| -const char kOnBrowserUpdateAvailableEvent[] = |
| - "runtime.onBrowserUpdateAvailable"; |
| +const char kOnRestartRequiredEvent[] = "runtime.onRestartRequired"; |
| const char kNoBackgroundPageError[] = "You do not have a background page."; |
| const char kPageLoadError[] = "Background page failed to load."; |
| const char kInstallReason[] = "reason"; |
| @@ -44,6 +47,10 @@ const char kInstallReasonUpdate[] = "update"; |
| const char kInstallReasonInstall[] = "install"; |
| const char kInstallPreviousVersion[] = "previousVersion"; |
| const char kInvalidUrlError[] = "Invalid URL."; |
| +const char kRestartReason[] = "reason"; |
|
bartfab (slow)
2013/06/21 06:27:58
Where is this one used?
xiyuan
2013/06/21 16:50:56
Not used and removed.
|
| +const char kRestartReasonAppUpdate[] = "app_update"; |
| +const char kRestartReasonOsUpdate[] = "os_update"; |
| +const char kRestartReasonPeriodic[] = "periodic"; |
| const char kUpdatesDisabledError[] = "Autoupdate is not enabled."; |
| const char kUpdateFound[] = "update_available"; |
| const char kUpdateNotFound[] = "no_update"; |
| @@ -168,22 +175,38 @@ void RuntimeEventRouter::DispatchOnUpdateAvailableEvent( |
| } |
| // static |
| -void RuntimeEventRouter::DispatchOnBrowserUpdateAvailableEvent( |
| - Profile* profile) { |
| +void RuntimeEventRouter::DispatchOnRestartRequiredEvent( |
| + Profile* profile, |
| + const std::string& app_id, |
| + RestartReason reason) { |
| ExtensionSystem* system = ExtensionSystem::Get(profile); |
| if (!system) |
| return; |
| scoped_ptr<ListValue> args(new ListValue); |
| + switch (reason) { |
| + case RESTART_REASON_APP_UPDATE: |
| + args->AppendString(kRestartReasonAppUpdate); |
| + break; |
| + case RESTART_REASON_OS_UPDATE: |
| + args->AppendString(kRestartReasonOsUpdate); |
| + break; |
| + case RESTART_REASON_PERIODIC: |
| + args->AppendString(kRestartReasonPeriodic); |
| + break; |
| + default: |
| + NOTREACHED() << "Unknown reboot reason=" << reason; |
| + return; |
| + } |
| + |
| DCHECK(system->event_router()); |
| - scoped_ptr<Event> event(new Event(kOnBrowserUpdateAvailableEvent, |
| - args.Pass())); |
| - system->event_router()->BroadcastEvent(event.Pass()); |
| + scoped_ptr<Event> event(new Event(kOnRestartRequiredEvent, args.Pass())); |
| + system->event_router()->DispatchEventToExtension(app_id, event.Pass()); |
| } |
| // static |
| void RuntimeEventRouter::OnExtensionUninstalled( |
| - Profile *profile, |
| + Profile* profile, |
| const std::string& extension_id) { |
| #if defined(ENABLE_EXTENSIONS) |
| GURL uninstall_url(GetUninstallUrl(ExtensionPrefs::Get(profile), |