Index: chrome/browser/extensions/extension_service.h |
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h |
index f2dc4b84f78ff79f7684e48fdb803f0d70d04d88..8df4b0907c27d25561008c202756eeaef220fdf6 100644 |
--- a/chrome/browser/extensions/extension_service.h |
+++ b/chrome/browser/extensions/extension_service.h |
@@ -61,7 +61,6 @@ class BrowserEventRouter; |
class ComponentLoader; |
class ContentSettingsStore; |
class CrxInstaller; |
-class Extension; |
class ExtensionActionStorageManager; |
class ExtensionSyncData; |
class ExtensionSystem; |
@@ -117,6 +116,7 @@ class ExtensionServiceInterface : public syncer::SyncableService { |
// themes sync to not use it directly. |
virtual void CheckForUpdatesSoon() = 0; |
+ virtual void AddExtensions(const extensions::ExtensionList& extensions) = 0; |
virtual void AddExtension(const extensions::Extension* extension) = 0; |
virtual void AddComponentExtension( |
const extensions::Extension* extension) = 0; |
@@ -428,19 +428,39 @@ class ExtensionService |
// Called when the initial extensions load has completed. |
virtual void OnLoadedInstalledExtensions(); |
- // Adds |extension| to this ExtensionService and notifies observers than an |
- // extension has been loaded. Called by the backend after an extension has |
- // been loaded from a file and installed. |
+ // Adds every extension in |extensions| to this ExtensionService and notifies |
+ // observers that the extensions have been loaded, then asynchronously checks |
+ // those against the blacklist. |
+ // |
+ // If possible, please check the blacklist ahead of time, since this method |
+ // may end up loading blacklisted extensions for a short period of time. |
+ virtual void AddExtensions( |
+ const extensions::ExtensionList& extensions) OVERRIDE; |
+ |
+ // Calls AddExtensions with a single extension, please see comment. |
virtual void AddExtension(const extensions::Extension* extension) OVERRIDE; |
// Check if we have preferences for the component extension and, if not or if |
// the stored version differs, install the extension (without requirements |
- // checking) before calling AddExtension. |
+ // checking) before calling AddNonBlacklistedExtension. |
virtual void AddComponentExtension(const extensions::Extension* extension) |
OVERRIDE; |
- // Called by the backend when an extension has been installed. |
- void OnExtensionInstalled( |
Matt Perry
2013/02/07 01:05:35
After thinking about it, I can see the reasoning b
Matt Perry
2013/02/07 01:10:23
Actually, lets just make it explicit. Keep OnExten
not at google - send to devlin
2013/02/07 02:11:37
Done.
|
+ // Instructs the extension service to install an extension some point in the |
+ // future, then runs |on_done|. |
+ // |
+ // If installation succeeds the callback will be passed true. If it fails |
+ // (e.g. due to blacklisting) then it will be passed false. |
+ void InstallExtensionAsync( |
+ const extensions::Extension* extension, |
+ const syncer::StringOrdinal& page_ordinal, |
+ bool has_requirement_errors, |
+ bool wait_for_idle, |
+ const base::Callback<void(bool /*success*/)>& on_done); |
+ |
+ // Instructs the extension service to install an extension now. No blacklist |
+ // checking is done. |
+ void InstallExtensionNow( |
const extensions::Extension* extension, |
const syncer::StringOrdinal& page_ordinal, |
bool has_requirement_errors, |
@@ -756,10 +776,13 @@ class ExtensionService |
// terminated extensions if it is there. |
void UntrackTerminatedExtension(const std::string& id); |
+ // Adds an extension to the service without checking any blacklist. |
+ bool AddNonBlacklistedExtension(const extensions::Extension* extension); |
+ |
// Update preferences for a new or updated extension; notify observers that |
// the extension is installed, e.g., to update event handlers on background |
// pages; and perform other extension install tasks before calling |
- // AddExtension. |
+ // AddNonBlacklistedExtension. |
void AddNewOrUpdatedExtension(const extensions::Extension* extension, |
extensions::Extension::State initial_state, |
const syncer::StringOrdinal& page_ordinal); |