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..0c64ba7b4583025401ed01206daef8184b07cc16 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> |
|
bartfab (slow)
2013/06/21 18:18:13
What is this used for?
xiyuan
2013/06/21 18:33:18
For std::pair used in old code in this file.
|
| + |
| +#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" |
| @@ -36,6 +40,7 @@ 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 +49,9 @@ const char kInstallReasonUpdate[] = "update"; |
| const char kInstallReasonInstall[] = "install"; |
| const char kInstallPreviousVersion[] = "previousVersion"; |
| const char kInvalidUrlError[] = "Invalid URL."; |
| +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"; |
| @@ -182,8 +190,38 @@ void RuntimeEventRouter::DispatchOnBrowserUpdateAvailableEvent( |
| } |
| // static |
| +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; |
|
bartfab (slow)
2013/06/21 18:18:13
Nit: s/reboot/restart/
xiyuan
2013/06/21 18:33:18
Done.
|
| + return; |
| + } |
| + |
| + DCHECK(system->event_router()); |
| + 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), |