Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4088)

Unified Diff: chrome/browser/extensions/api/runtime/runtime_api.cc

Issue 16844020: app_mode: Add runtime.onRestartRequired event. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: restore onBrowserUpdateAvailable and address comments in #2 Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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),

Powered by Google App Engine
This is Rietveld 408576698