// 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 core_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 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(core_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; }; } // namespace extensions #endif // EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H