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

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

Issue 264743014: Move chrome.runtime to //extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: prevent runtime impl from handling invalid update versions Created 6 years, 7 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.h
diff --git a/chrome/browser/extensions/api/runtime/runtime_api.h b/chrome/browser/extensions/api/runtime/runtime_api.h
deleted file mode 100644
index f648be145339a15b6571cbcbfbc9e0fb1e5533ff..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/runtime/runtime_api.h
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_RUNTIME_RUNTIME_API_H_
-#define CHROME_BROWSER_EXTENSIONS_API_RUNTIME_RUNTIME_API_H_
-
-#include <string>
-
-#include "chrome/browser/extensions/chrome_extension_function.h"
-#include "chrome/common/extensions/api/runtime.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "extensions/browser/browser_context_keyed_api_factory.h"
-#include "extensions/browser/process_manager_observer.h"
-#include "extensions/browser/update_observer.h"
-
-class Profile;
-
-namespace base {
-class Version;
-}
-
-namespace content {
-class BrowserContext;
-}
-
-namespace extensions {
-class Extension;
-class ExtensionHost;
-
-// Runtime API dispatches onStartup, onInstalled, and similar events to
-// extensions. There is one instance shared between a browser context and
-// its related incognito instance.
-class RuntimeAPI : public BrowserContextKeyedAPI,
- public content::NotificationObserver,
- public UpdateObserver,
- public ProcessManagerObserver {
- public:
- static BrowserContextKeyedAPIFactory<RuntimeAPI>* GetFactoryInstance();
-
- explicit RuntimeAPI(content::BrowserContext* context);
- virtual ~RuntimeAPI();
-
- // content::NotificationObserver overrides:
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- void MaybeReloadExtension(const std::string& extension_id);
-
- private:
- friend class BrowserContextKeyedAPIFactory<RuntimeAPI>;
-
- void OnExtensionsReady();
- void OnExtensionLoaded(const Extension* extension);
- void OnExtensionInstalled(const Extension* extension);
- void OnExtensionUninstalled(const Extension* extension);
-
- // BrowserContextKeyedAPI implementation:
- static const char* service_name() { return "RuntimeAPI"; }
- static const bool kServiceRedirectedInIncognito = true;
- static const bool kServiceIsNULLWhileTesting = true;
- virtual void Shutdown() OVERRIDE;
-
- // extensions::UpdateObserver overrides:
- virtual void OnAppUpdateAvailable(const Extension* extension) OVERRIDE;
- virtual void OnChromeUpdateAvailable() OVERRIDE;
-
- // ProcessManagerObserver implementation:
- virtual void OnBackgroundHostStartup(const Extension* extension) OVERRIDE;
-
- content::BrowserContext* browser_context_;
-
- // True if we should dispatch the chrome.runtime.onInstalled event with
- // reason "chrome_update" upon loading each extension.
- bool dispatch_chrome_updated_event_;
-
- // Whether the API registered with the ExtensionService to receive
- // update notifications.
- bool registered_for_updates_;
-
- content::NotificationRegistrar registrar_;
-
- // Map to prevent extensions from getting stuck in reload loops. Maps
- // extension id to the last time it was reloaded and the number of times
- // it was reloaded with not enough time in between reloads.
- std::map<std::string, std::pair<base::TimeTicks, int> > last_reload_time_;
-
- DISALLOW_COPY_AND_ASSIGN(RuntimeAPI);
-};
-
-class RuntimeEventRouter {
- public:
- // Dispatches the onStartup event to all currently-loaded extensions.
- static void DispatchOnStartupEvent(content::BrowserContext* context,
- const std::string& extension_id);
-
- // Dispatches the onInstalled event to the given extension.
- static void DispatchOnInstalledEvent(content::BrowserContext* context,
- const std::string& extension_id,
- const base::Version& old_version,
- bool chrome_updated);
-
- // Dispatches the onUpdateAvailable event to the given extension.
- static void DispatchOnUpdateAvailableEvent(
- Profile* profile,
- const std::string& extension_id,
- const base::DictionaryValue* manifest);
-
- // Dispatches the onBrowserUpdateAvailable event to all extensions.
- static void DispatchOnBrowserUpdateAvailableEvent(Profile* profile);
-
- // Dispatches the onRestartRequired event to the given app.
- static void DispatchOnRestartRequiredEvent(
- Profile* profile,
- const std::string& app_id,
- api::runtime::OnRestartRequired::Reason reason);
-
- // Does any work needed at extension uninstall (e.g. load uninstall url).
- static void OnExtensionUninstalled(Profile* profile,
- const std::string& extension_id);
-};
-
-class RuntimeGetBackgroundPageFunction : public ChromeAsyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.getBackgroundPage",
- RUNTIME_GETBACKGROUNDPAGE)
-
- protected:
- virtual ~RuntimeGetBackgroundPageFunction() {}
- virtual bool RunAsync() OVERRIDE;
-
- private:
- void OnPageLoaded(ExtensionHost*);
-};
-
-class RuntimeSetUninstallURLFunction : public ChromeSyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.setUninstallURL",
- RUNTIME_SETUNINSTALLURL)
-
- protected:
- virtual ~RuntimeSetUninstallURLFunction() {}
- virtual bool RunSync() OVERRIDE;
-};
-
-class RuntimeReloadFunction : public ChromeSyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.reload", RUNTIME_RELOAD)
-
- protected:
- virtual ~RuntimeReloadFunction() {}
- virtual bool RunSync() OVERRIDE;
-};
-
-class RuntimeRequestUpdateCheckFunction : public ChromeAsyncExtensionFunction,
- public content::NotificationObserver {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.requestUpdateCheck",
- RUNTIME_REQUESTUPDATECHECK)
-
- RuntimeRequestUpdateCheckFunction();
- protected:
- virtual ~RuntimeRequestUpdateCheckFunction() {}
- virtual bool RunAsync() OVERRIDE;
-
- // Implements content::NotificationObserver interface.
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
- private:
- void CheckComplete();
- void ReplyUpdateFound(const std::string& version);
-
- content::NotificationRegistrar registrar_;
- bool did_reply_;
-};
-
-class RuntimeRestartFunction : public ChromeSyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.restart", RUNTIME_RESTART)
-
- protected:
- virtual ~RuntimeRestartFunction() {}
- virtual bool RunSync() OVERRIDE;
-};
-
-class RuntimeGetPlatformInfoFunction : public ChromeSyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.getPlatformInfo",
- RUNTIME_GETPLATFORMINFO);
- protected:
- virtual ~RuntimeGetPlatformInfoFunction() {}
- virtual bool RunSync() OVERRIDE;
-};
-
-class RuntimeGetPackageDirectoryEntryFunction
- : public ChromeSyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("runtime.getPackageDirectoryEntry",
- RUNTIME_GETPACKAGEDIRECTORYENTRY)
-
- protected:
- virtual ~RuntimeGetPackageDirectoryEntryFunction() {}
- virtual bool RunSync() OVERRIDE;
-};
-
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_API_RUNTIME_RUNTIME_API_H_

Powered by Google App Engine
This is Rietveld 408576698