• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H
6 #define EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H
7 
8 #include "base/callback.h"
9 #include "base/version.h"
10 
11 class GURL;
12 
13 namespace extensions {
14 
15 namespace core_api {
16 namespace runtime {
17 struct PlatformInfo;
18 }
19 }
20 
21 class Extension;
22 class UpdateObserver;
23 
24 // This is a delegate interface for chrome.runtime API behavior. Clients must
25 // vend some implementation of this interface through
26 // ExtensionsBrowserClient::CreateRuntimeAPIDelegate.
27 class RuntimeAPIDelegate {
28  public:
29   struct UpdateCheckResult {
30     bool success;
31     std::string response;
32     std::string version;
33 
34     UpdateCheckResult(bool success,
35                       const std::string& response,
36                       const std::string& version);
37   };
38 
~RuntimeAPIDelegate()39   virtual ~RuntimeAPIDelegate() {}
40 
41   // The callback given to RequestUpdateCheck.
42   typedef base::Callback<void(const UpdateCheckResult&)> UpdateCheckCallback;
43 
44   // Registers an UpdateObserver on behalf of the runtime API.
45   virtual void AddUpdateObserver(UpdateObserver* observer) = 0;
46 
47   // Unregisters an UpdateObserver on behalf of the runtime API.
48   virtual void RemoveUpdateObserver(UpdateObserver* observer) = 0;
49 
50   // Determines an extension's previously installed version if applicable.
51   virtual base::Version GetPreviousExtensionVersion(
52       const Extension* extension) = 0;
53 
54   // Reloads an extension.
55   virtual void ReloadExtension(const std::string& extension_id) = 0;
56 
57   // Requests an extensions update update check. Returns |false| if updates
58   // are disabled. Otherwise |callback| is called with the result of the
59   // update check.
60   virtual bool CheckForUpdates(const std::string& extension_id,
61                                const UpdateCheckCallback& callback) = 0;
62 
63   // Navigates the browser to a URL on behalf of the runtime API.
64   virtual void OpenURL(const GURL& uninstall_url) = 0;
65 
66   // Populates platform info to be provided by the getPlatformInfo function.
67   // Returns false iff no info is provided.
68   virtual bool GetPlatformInfo(core_api::runtime::PlatformInfo* info) = 0;
69 
70   // Request a restart of the host device. Returns false iff the device
71   // will not be restarted.
72   virtual bool RestartDevice(std::string* error_message) = 0;
73 };
74 
75 }  // namespace extensions
76 
77 #endif  // EXTENSIONS_BROWSER_API_RUNTIME_RUNTIME_API_DELEGATE_H
78