summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/api/runtime/runtime_api_delegate.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/api/runtime/runtime_api_delegate.h')
-rw-r--r--chromium/extensions/browser/api/runtime/runtime_api_delegate.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/chromium/extensions/browser/api/runtime/runtime_api_delegate.h b/chromium/extensions/browser/api/runtime/runtime_api_delegate.h
new file mode 100644
index 00000000000..21e9a6e271c
--- /dev/null
+++ b/chromium/extensions/browser/api/runtime/runtime_api_delegate.h
@@ -0,0 +1,82 @@
+// Copyright 2014 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 EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H
+#define EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H
+
+#include "base/callback.h"
+#include "base/version.h"
+
+class GURL;
+
+namespace extensions {
+
+namespace api {
+namespace runtime {
+struct PlatformInfo;
+}
+}
+
+class Extension;
+class UpdateObserver;
+
+// This is a delegate interface for chrome.runtime API behavior. Clients must
+// vend some implementation of this interface through
+// ExtensionsBrowserClient::CreateRuntimeAPIDelegate.
+class RuntimeAPIDelegate {
+ public:
+ struct UpdateCheckResult {
+ bool success;
+ std::string response;
+ std::string version;
+
+ UpdateCheckResult(bool success,
+ const std::string& response,
+ const std::string& version);
+ };
+
+ virtual ~RuntimeAPIDelegate() {}
+
+ // The callback given to RequestUpdateCheck.
+ typedef base::Callback<void(const UpdateCheckResult&)> UpdateCheckCallback;
+
+ // Registers an UpdateObserver on behalf of the runtime API.
+ virtual void AddUpdateObserver(UpdateObserver* observer) = 0;
+
+ // Unregisters an UpdateObserver on behalf of the runtime API.
+ virtual void RemoveUpdateObserver(UpdateObserver* observer) = 0;
+
+ // Determines an extension's previously installed version if applicable.
+ virtual base::Version GetPreviousExtensionVersion(
+ const Extension* extension) = 0;
+
+ // Reloads an extension.
+ virtual void ReloadExtension(const std::string& extension_id) = 0;
+
+ // Requests an extensions update update check. Returns |false| if updates
+ // are disabled. Otherwise |callback| is called with the result of the
+ // update check.
+ virtual bool CheckForUpdates(const std::string& extension_id,
+ const UpdateCheckCallback& callback) = 0;
+
+ // Navigates the browser to a URL on behalf of the runtime API.
+ virtual void OpenURL(const GURL& uninstall_url) = 0;
+
+ // Populates platform info to be provided by the getPlatformInfo function.
+ // Returns false iff no info is provided.
+ virtual bool GetPlatformInfo(api::runtime::PlatformInfo* info) = 0;
+
+ // Request a restart of the host device. Returns false iff the device
+ // will not be restarted.
+ virtual bool RestartDevice(std::string* error_message) = 0;
+
+ // Open |extension|'s options page, if it has one. Returns true if an
+ // options page was opened, false otherwise. See the docs of the
+ // chrome.runtime.openOptionsPage function for the gritty details.
+ virtual bool OpenOptionsPage(const Extension* extension);
+};
+
+} // namespace extensions
+
+#endif // EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H