Index: chrome/browser/extensions/extension_service.h |
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h |
index 9e4206c5ec52c2aca46140d20b4cb2f435a0c3c2..0f54748902357228017e122d71af8927d158fd6d 100644 |
--- a/chrome/browser/extensions/extension_service.h |
+++ b/chrome/browser/extensions/extension_service.h |
@@ -99,6 +99,7 @@ class ExtensionService |
: public base::RefCountedThreadSafe<ExtensionService, |
BrowserThread::DeleteOnUIThread>, |
public ExtensionUpdateService, |
+ public ExternalExtensionProvider::Visitor, |
public NotificationObserver { |
public: |
// Information about a registered component extension. |
@@ -297,10 +298,6 @@ class ExtensionService |
// Check for updates (or potentially new extensions from external providers) |
void CheckForExternalUpdates(); |
- // Copies the list of force-installed extensions from the user PrefService |
- // to ExternalPolicyExtensionProvider. |
- void UpdateExternalPolicyExtensionProvider(); |
- |
// Unload the specified extension. |
void UnloadExtension(const std::string& extension_id, |
UnloadedExtensionInfo::Reason reason); |
@@ -342,13 +339,6 @@ class ExtensionService |
// extension. |
const SkBitmap& GetOmniboxPopupIcon(const std::string& extension_id); |
- // Clear all ExternalExtensionProviders. |
- void ClearProvidersForTesting(); |
- |
- // Sets an ExternalExtensionProvider for the service to use during testing. |
- // Takes ownership of |test_provider|. |
- void AddProviderForTesting(ExternalExtensionProvider* test_provider); |
- |
// Called when the initial extensions load has completed. |
virtual void OnLoadedInstalledExtensions(); |
@@ -358,12 +348,6 @@ class ExtensionService |
// Called by the backend when an extension has been installed. |
void OnExtensionInstalled(const Extension* extension); |
- // Called by the backend when an external extension is found. |
- void OnExternalExtensionFileFound(const std::string& id, |
- const std::string& version, |
- const FilePath& path, |
- Extension::Location location); |
- |
// Checks if the privileges requested by |extension| have increased, and if |
// so, disables the extension and prompts the user to approve the change. |
void DisableIfPrivilegeIncrease(const Extension* extension); |
@@ -425,6 +409,29 @@ class ExtensionService |
// view has been created. |
void DidCreateRenderViewForBackgroundPage(ExtensionHost* host); |
+ // For the extension in |version_path| with |id|, check to see if it's an |
+ // externally managed extension. If so, uninstall it. |
+ void CheckExternalUninstall(const std::string& id); |
+ |
+ // Clear all ExternalExtensionProviders. |
+ void ClearProvidersForTesting(); |
+ |
+ // Adds an ExternalExtensionProvider for the service to use during testing. |
+ // Takes ownership of |test_provider|. |
+ void AddProviderForTesting(ExternalExtensionProvider* test_provider); |
+ |
+ // ExternalExtensionProvider::Visitor implementation. |
+ virtual void OnExternalExtensionFileFound(const std::string& id, |
+ const Version* version, |
+ const FilePath& path, |
+ Extension::Location location); |
+ |
+ virtual void OnExternalExtensionUpdateUrlFound(const std::string& id, |
+ const GURL& update_url, |
+ Extension::Location location); |
+ |
+ virtual void OnExternalProviderReady(); |
+ |
// NotificationObserver |
virtual void Observe(NotificationType type, |
const NotificationSource& source, |
@@ -589,6 +596,16 @@ class ExtensionService |
// Flag to make sure event routers are only initialized once. |
bool event_routers_initialized_; |
+ // A collection of external extension providers. Each provider reads |
+ // a source of external extension information. Examples include the |
+ // windows registry and external_extensions.json. |
+ ProviderCollection external_extension_providers_; |
+ |
+ // Set to true by OnExternalExtensionUpdateUrlFound() when an external |
+ // extension URL is found. Used in CheckForExternalUpdates() to see |
+ // if an update check is needed to install pending extensions. |
+ bool external_extension_added_; |
+ |
FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, |
UpdatePendingExtensionAlreadyInstalled); |
FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, |