Index: chrome/browser/extensions/extension_service.h |
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h |
index 70cf33cdf5d8bdeae43f08931bc78ab055a24463..8fc0081163175bc4ae4f4bc70c7e36d578760a05 100644 |
--- a/chrome/browser/extensions/extension_service.h |
+++ b/chrome/browser/extensions/extension_service.h |
@@ -128,6 +128,8 @@ class ExtensionServiceInterface : public syncer::SyncableService { |
virtual void CheckForUpdatesSoon() = 0; |
virtual void AddExtension(const extensions::Extension* extension) = 0; |
+ virtual void AddComponentExtension( |
+ const extensions::Extension* extension) = 0; |
virtual void UnloadExtension( |
const std::string& extension_id, |
@@ -421,6 +423,12 @@ class ExtensionService |
// been loaded from a file and installed. |
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. |
+ virtual void AddComponentExtension(const extensions::Extension* extension) |
+ OVERRIDE; |
+ |
// Called by the backend when an extension has been installed. |
void OnExtensionInstalled( |
const extensions::Extension* extension, |
@@ -761,6 +769,15 @@ class ExtensionService |
// terminated extensions if it is there. |
void UntrackTerminatedExtension(const std::string& id); |
+ // 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. |
+ void AddNewOrUpdatedExtension( |
+ const extensions::Extension* extension, |
+ const syncer::StringOrdinal& page_ordinal, |
+ extensions::Extension::State initial_state); |
+ |
// Handles sending notification that |extension| was loaded. |
void NotifyExtensionLoaded(const extensions::Extension* extension); |