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..cc7300a3316d6bf02e319204a0c071abe0e66006 100644 |
| --- a/chrome/browser/extensions/api/runtime/runtime_api.cc |
| +++ b/chrome/browser/extensions/api/runtime/runtime_api.cc |
| @@ -4,6 +4,8 @@ |
| #include "chrome/browser/extensions/api/runtime/runtime_api.h" |
| +#include <utility> |
| + |
| #include "base/memory/scoped_ptr.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/extensions/event_router.h" |
| @@ -36,6 +38,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 +47,10 @@ const char kInstallReasonUpdate[] = "update"; |
| const char kInstallReasonInstall[] = "install"; |
| const char kInstallPreviousVersion[] = "previousVersion"; |
| const char kInvalidUrlError[] = "Invalid URL."; |
| +const char kRestartReason[] = "reason"; |
| +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 +189,35 @@ 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); |
|
bartfab (slow)
2013/06/17 23:30:59
Nit: #include <base/values.h>
xiyuan
2013/06/20 02:17:12
Done.
|
| + 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; |
| + } |
|
bartfab (slow)
2013/06/17 23:30:59
Nit: Add a fallback with a DCHECK() for invalid |r
xiyuan
2013/06/20 02:17:12
Done.
|
| + |
| + DCHECK(system->event_router()); |
|
bartfab (slow)
2013/06/17 23:30:59
Nit: Include <base/logging.h>
xiyuan
2013/06/20 02:17:12
Done.
|
| + 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), |