| Index: extensions/browser/api/runtime/runtime_api.h
|
| diff --git a/chrome/browser/extensions/api/runtime/runtime_api.h b/extensions/browser/api/runtime/runtime_api.h
|
| similarity index 67%
|
| rename from chrome/browser/extensions/api/runtime/runtime_api.h
|
| rename to extensions/browser/api/runtime/runtime_api.h
|
| index f648be145339a15b6571cbcbfbc9e0fb1e5533ff..cccab2e5de0515d29235cb594adafcff8ddabf05 100644
|
| --- a/chrome/browser/extensions/api/runtime/runtime_api.h
|
| +++ b/extensions/browser/api/runtime/runtime_api.h
|
| @@ -2,20 +2,19 @@
|
| // 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_
|
| +#ifndef EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_H_
|
| +#define EXTENSIONS_BROWSER_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/api/runtime/runtime_api_delegate.h"
|
| #include "extensions/browser/browser_context_keyed_api_factory.h"
|
| +#include "extensions/browser/extension_function.h"
|
| #include "extensions/browser/process_manager_observer.h"
|
| #include "extensions/browser/update_observer.h"
|
| -
|
| -class Profile;
|
| +#include "extensions/common/api/runtime.h"
|
|
|
| namespace base {
|
| class Version;
|
| @@ -26,6 +25,13 @@ class BrowserContext;
|
| }
|
|
|
| namespace extensions {
|
| +
|
| +namespace core_api {
|
| +namespace runtime {
|
| +struct PlatformInfo;
|
| +}
|
| +}
|
| +
|
| class Extension;
|
| class ExtensionHost;
|
|
|
| @@ -47,7 +53,12 @@ class RuntimeAPI : public BrowserContextKeyedAPI,
|
| const content::NotificationSource& source,
|
| const content::NotificationDetails& details) OVERRIDE;
|
|
|
| - void MaybeReloadExtension(const std::string& extension_id);
|
| + void ReloadExtension(const std::string& extension_id);
|
| + bool CheckForUpdates(const std::string& extension_id,
|
| + const RuntimeAPIDelegate::UpdateCheckCallback& callback);
|
| + void OpenURL(const GURL& uninstall_url);
|
| + bool GetPlatformInfo(core_api::runtime::PlatformInfo* info);
|
| + bool RestartDevice(std::string* error_message);
|
|
|
| private:
|
| friend class BrowserContextKeyedAPIFactory<RuntimeAPI>;
|
| @@ -70,23 +81,16 @@ class RuntimeAPI : public BrowserContextKeyedAPI,
|
| // ProcessManagerObserver implementation:
|
| virtual void OnBackgroundHostStartup(const Extension* extension) OVERRIDE;
|
|
|
| + scoped_ptr<RuntimeAPIDelegate> delegate_;
|
| +
|
| 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);
|
| };
|
|
|
| @@ -104,108 +108,99 @@ class RuntimeEventRouter {
|
|
|
| // Dispatches the onUpdateAvailable event to the given extension.
|
| static void DispatchOnUpdateAvailableEvent(
|
| - Profile* profile,
|
| + content::BrowserContext* context,
|
| const std::string& extension_id,
|
| const base::DictionaryValue* manifest);
|
|
|
| // Dispatches the onBrowserUpdateAvailable event to all extensions.
|
| - static void DispatchOnBrowserUpdateAvailableEvent(Profile* profile);
|
| + static void DispatchOnBrowserUpdateAvailableEvent(
|
| + content::BrowserContext* context);
|
|
|
| // Dispatches the onRestartRequired event to the given app.
|
| static void DispatchOnRestartRequiredEvent(
|
| - Profile* profile,
|
| + content::BrowserContext* context,
|
| const std::string& app_id,
|
| - api::runtime::OnRestartRequired::Reason reason);
|
| + core_api::runtime::OnRestartRequired::Reason reason);
|
|
|
| // Does any work needed at extension uninstall (e.g. load uninstall url).
|
| - static void OnExtensionUninstalled(Profile* profile,
|
| + static void OnExtensionUninstalled(content::BrowserContext* context,
|
| const std::string& extension_id);
|
| };
|
|
|
| -class RuntimeGetBackgroundPageFunction : public ChromeAsyncExtensionFunction {
|
| +class RuntimeGetBackgroundPageFunction : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.getBackgroundPage",
|
| RUNTIME_GETBACKGROUNDPAGE)
|
|
|
| protected:
|
| virtual ~RuntimeGetBackgroundPageFunction() {}
|
| - virtual bool RunAsync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
|
|
| private:
|
| void OnPageLoaded(ExtensionHost*);
|
| };
|
|
|
| -class RuntimeSetUninstallURLFunction : public ChromeSyncExtensionFunction {
|
| +class RuntimeSetUninstallURLFunction : public UIThreadExtensionFunction {
|
| public:
|
| - DECLARE_EXTENSION_FUNCTION("runtime.setUninstallURL",
|
| - RUNTIME_SETUNINSTALLURL)
|
| + DECLARE_EXTENSION_FUNCTION("runtime.setUninstallURL", RUNTIME_SETUNINSTALLURL)
|
|
|
| protected:
|
| virtual ~RuntimeSetUninstallURLFunction() {}
|
| - virtual bool RunSync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
| };
|
|
|
| -class RuntimeReloadFunction : public ChromeSyncExtensionFunction {
|
| +class RuntimeReloadFunction : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.reload", RUNTIME_RELOAD)
|
|
|
| protected:
|
| virtual ~RuntimeReloadFunction() {}
|
| - virtual bool RunSync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
| };
|
|
|
| -class RuntimeRequestUpdateCheckFunction : public ChromeAsyncExtensionFunction,
|
| - public content::NotificationObserver {
|
| +class RuntimeRequestUpdateCheckFunction : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.requestUpdateCheck",
|
| RUNTIME_REQUESTUPDATECHECK)
|
|
|
| - RuntimeRequestUpdateCheckFunction();
|
| protected:
|
| virtual ~RuntimeRequestUpdateCheckFunction() {}
|
| - virtual bool RunAsync() OVERRIDE;
|
| + virtual ResponseAction Run() 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_;
|
| + void CheckComplete(const RuntimeAPIDelegate::UpdateCheckResult& result);
|
| };
|
|
|
| -class RuntimeRestartFunction : public ChromeSyncExtensionFunction {
|
| +class RuntimeRestartFunction : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.restart", RUNTIME_RESTART)
|
|
|
| protected:
|
| virtual ~RuntimeRestartFunction() {}
|
| - virtual bool RunSync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
| };
|
|
|
| -class RuntimeGetPlatformInfoFunction : public ChromeSyncExtensionFunction {
|
| +class RuntimeGetPlatformInfoFunction : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.getPlatformInfo",
|
| RUNTIME_GETPLATFORMINFO);
|
| +
|
| protected:
|
| virtual ~RuntimeGetPlatformInfoFunction() {}
|
| - virtual bool RunSync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
| };
|
|
|
| class RuntimeGetPackageDirectoryEntryFunction
|
| - : public ChromeSyncExtensionFunction {
|
| + : public UIThreadExtensionFunction {
|
| public:
|
| DECLARE_EXTENSION_FUNCTION("runtime.getPackageDirectoryEntry",
|
| RUNTIME_GETPACKAGEDIRECTORYENTRY)
|
|
|
| protected:
|
| virtual ~RuntimeGetPackageDirectoryEntryFunction() {}
|
| - virtual bool RunSync() OVERRIDE;
|
| + virtual ResponseAction Run() OVERRIDE;
|
| };
|
|
|
| } // namespace extensions
|
|
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_RUNTIME_RUNTIME_API_H_
|
| +#endif // EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_H_
|
|
|