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

Side by Side Diff: chrome/browser/extensions/extension_service.h

Issue 6965018: Install CRX updates one at a time. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 18 matching lines...) Expand all
29 #include "chrome/browser/extensions/extension_toolbar_model.h" 29 #include "chrome/browser/extensions/extension_toolbar_model.h"
30 #include "chrome/browser/extensions/extensions_quota_service.h" 30 #include "chrome/browser/extensions/extensions_quota_service.h"
31 #include "chrome/browser/extensions/external_extension_provider_interface.h" 31 #include "chrome/browser/extensions/external_extension_provider_interface.h"
32 #include "chrome/browser/extensions/pending_extension_manager.h" 32 #include "chrome/browser/extensions/pending_extension_manager.h"
33 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h" 33 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h"
34 #include "chrome/browser/prefs/pref_change_registrar.h" 34 #include "chrome/browser/prefs/pref_change_registrar.h"
35 #include "chrome/common/extensions/extension.h" 35 #include "chrome/common/extensions/extension.h"
36 #include "content/browser/browser_thread.h" 36 #include "content/browser/browser_thread.h"
37 #include "content/common/notification_observer.h" 37 #include "content/common/notification_observer.h"
38 #include "content/common/notification_registrar.h" 38 #include "content/common/notification_registrar.h"
39 #include "content/common/notification_source.h"
39 #include "content/common/property_bag.h" 40 #include "content/common/property_bag.h"
40 41
41 class CrxInstaller; 42 class CrxInstaller;
42 class ExtensionBrowserEventRouter; 43 class ExtensionBrowserEventRouter;
43 class ExtensionContentSettingsStore; 44 class ExtensionContentSettingsStore;
44 class ExtensionInstallUI; 45 class ExtensionInstallUI;
45 class ExtensionPreferenceEventRouter; 46 class ExtensionPreferenceEventRouter;
46 class ExtensionServiceBackend; 47 class ExtensionServiceBackend;
47 struct ExtensionSyncData; 48 struct ExtensionSyncData;
48 class ExtensionToolbarModel; 49 class ExtensionToolbarModel;
49 class ExtensionUpdater; 50 class ExtensionUpdater;
50 class GURL; 51 class GURL;
51 class PendingExtensionManager; 52 class PendingExtensionManager;
52 class Profile; 53 class Profile;
53 class Version; 54 class Version;
54 55
55 // This is an interface class to encapsulate the dependencies that 56 // This is an interface class to encapsulate the dependencies that
56 // various classes have on ExtensionService. This allows easy mocking. 57 // various classes have on ExtensionService. This allows easy mocking.
57 class ExtensionServiceInterface { 58 class ExtensionServiceInterface {
58 public: 59 public:
59 // A function that returns true if the given extension should be 60 // A function that returns true if the given extension should be
60 // included and false if it should be filtered out. Identical to 61 // included and false if it should be filtered out. Identical to
61 // PendingExtensionInfo::ShouldAllowInstallPredicate. 62 // PendingExtensionInfo::ShouldAllowInstallPredicate.
62 typedef bool (*ExtensionFilter)(const Extension&); 63 typedef bool (*ExtensionFilter)(const Extension&);
63 64
64 virtual ~ExtensionServiceInterface() {} 65 virtual ~ExtensionServiceInterface() {}
65 virtual const ExtensionList* extensions() const = 0; 66 virtual const ExtensionList* extensions() const = 0;
66 virtual PendingExtensionManager* pending_extension_manager() = 0; 67 virtual PendingExtensionManager* pending_extension_manager() = 0;
67 virtual void UpdateExtension(const std::string& id, 68 virtual bool UpdateExtension(
68 const FilePath& path, 69 const std::string& id,
69 const GURL& download_url) = 0; 70 const FilePath& path,
71 const GURL& download_url,
72 Source<CrxInstaller>* out_install_notification_source) = 0;
Matt Perry 2011/05/31 21:34:25 Why a Source? Let's just pass a raw pointer out.
Sam Kerner (Chrome) 2011/05/31 23:16:15 Done.
70 virtual const Extension* GetExtensionById(const std::string& id, 73 virtual const Extension* GetExtensionById(const std::string& id,
71 bool include_disabled) const = 0; 74 bool include_disabled) const = 0;
72 virtual const Extension* GetInstalledExtension( 75 virtual const Extension* GetInstalledExtension(
73 const std::string& id) const = 0; 76 const std::string& id) const = 0;
74 77
75 virtual bool IsExtensionEnabled(const std::string& extension_id) const = 0; 78 virtual bool IsExtensionEnabled(const std::string& extension_id) const = 0;
76 virtual bool IsExternalExtensionUninstalled( 79 virtual bool IsExternalExtensionUninstalled(
77 const std::string& extension_id) const = 0; 80 const std::string& extension_id) const = 0;
78 81
79 virtual void UpdateExtensionBlacklist( 82 virtual void UpdateExtensionBlacklist(
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 258
256 // Looks up an extension by ID, regardless of whether it's enabled, 259 // Looks up an extension by ID, regardless of whether it's enabled,
257 // disabled, or terminated. 260 // disabled, or terminated.
258 virtual const Extension* GetInstalledExtension( 261 virtual const Extension* GetInstalledExtension(
259 const std::string& id) const OVERRIDE; 262 const std::string& id) const OVERRIDE;
260 263
261 // Updates a currently-installed extension with the contents from 264 // Updates a currently-installed extension with the contents from
262 // |extension_path|. 265 // |extension_path|.
263 // TODO(aa): This method can be removed. ExtensionUpdater could use 266 // TODO(aa): This method can be removed. ExtensionUpdater could use
264 // CrxInstaller directly instead. 267 // CrxInstaller directly instead.
265 virtual void UpdateExtension(const std::string& id, 268 virtual bool UpdateExtension(
266 const FilePath& extension_path, 269 const std::string& id,
267 const GURL& download_url) OVERRIDE; 270 const FilePath& extension_path,
271 const GURL& download_url,
272 Source<CrxInstaller>* out_install_notification_source) OVERRIDE;
268 273
269 // Reloads the specified extension. 274 // Reloads the specified extension.
270 void ReloadExtension(const std::string& extension_id); 275 void ReloadExtension(const std::string& extension_id);
271 276
272 // Uninstalls the specified extension. Callers should only call this method 277 // Uninstalls the specified extension. Callers should only call this method
273 // with extensions that exist. |external_uninstall| is a magical parameter 278 // with extensions that exist. |external_uninstall| is a magical parameter
274 // that is only used to send information to ExtensionPrefs, which external 279 // that is only used to send information to ExtensionPrefs, which external
275 // callers should never set to true. 280 // callers should never set to true.
276 // TODO(aa): Remove |external_uninstall| -- this information should be passed 281 // TODO(aa): Remove |external_uninstall| -- this information should be passed
277 // to ExtensionPrefs some other way. 282 // to ExtensionPrefs some other way.
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 NaClModuleInfoList nacl_module_list_; 701 NaClModuleInfoList nacl_module_list_;
697 702
698 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 703 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
699 InstallAppsWithUnlimtedStorage); 704 InstallAppsWithUnlimtedStorage);
700 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 705 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
701 InstallAppsAndCheckStorageProtection); 706 InstallAppsAndCheckStorageProtection);
702 DISALLOW_COPY_AND_ASSIGN(ExtensionService); 707 DISALLOW_COPY_AND_ASSIGN(ExtensionService);
703 }; 708 };
704 709
705 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 710 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698