| Index: chrome/browser/extensions/extension_service.h
|
| diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h
|
| index 7b025ad690cb47b3303dd5be45e6641294ec5eb8..f95bb4851fda8db4d6c9619babdeea5cb22dfe7f 100644
|
| --- a/chrome/browser/extensions/extension_service.h
|
| +++ b/chrome/browser/extensions/extension_service.h
|
| @@ -107,8 +107,9 @@ class ExtensionServiceInterface : public syncer::SyncableService {
|
| const FilePath& path,
|
| const GURL& download_url,
|
| extensions::CrxInstaller** out_crx_installer) = 0;
|
| - virtual const extensions::Extension* GetExtensionById(const std::string& id,
|
| - bool include_disabled) const = 0;
|
| + virtual const extensions::Extension* GetExtensionById(
|
| + const std::string& id,
|
| + bool include_disabled) const = 0;
|
| virtual const extensions::Extension* GetInstalledExtension(
|
| const std::string& id) const = 0;
|
|
|
| @@ -211,14 +212,15 @@ class ExtensionService
|
| virtual const ExtensionSet* extensions() const OVERRIDE;
|
| virtual const ExtensionSet* disabled_extensions() const OVERRIDE;
|
| const ExtensionSet* terminated_extensions() const;
|
| + const ExtensionSet* blacklisted_extensions() const;
|
|
|
| - // Returns a set of all installed, disabled, and terminated extensions and
|
| - // transfers ownership to caller.
|
| - const ExtensionSet* GenerateInstalledExtensionsSet() const;
|
| + // Returns a set of all installed, disabled, blacklisted, and terminated
|
| + // extensions.
|
| + scoped_ptr<const ExtensionSet> GenerateInstalledExtensionsSet() const;
|
|
|
| // Returns a set of all extensions disabled by the sideload wipeout
|
| // initiative.
|
| - const ExtensionSet* GetWipedOutExtensions() const;
|
| + scoped_ptr<const ExtensionSet> GetWipedOutExtensions() const;
|
|
|
| // Gets the object managing the set of pending extensions.
|
| virtual extensions::PendingExtensionManager*
|
| @@ -305,17 +307,34 @@ class ExtensionService
|
| // Called when the associated Profile is going to be destroyed.
|
| void Shutdown();
|
|
|
| - // Look up an extension by ID. Does not include terminated
|
| + // Look up an extension by ID. Does not include terminated
|
| // extensions.
|
| virtual const extensions::Extension* GetExtensionById(
|
| const std::string& id, bool include_disabled) const OVERRIDE;
|
|
|
| + enum IncludeFlag {
|
| + INCLUDE_NONE = 0,
|
| + INCLUDE_ENABLED = 1 << 0,
|
| + INCLUDE_DISABLED = 1 << 1,
|
| + INCLUDE_TERMINATED = 1 << 2,
|
| + INCLUDE_BLACKLISTED = 1 << 3,
|
| + INCLUDE_EVERYTHING = (1 << 4) - 1,
|
| + };
|
| +
|
| + // Look up an extension by ID, selecting which sets to look in:
|
| + // * extensions() --> INCLUDE_ENABLED
|
| + // * disabled_extensions() --> INCLUDE_DISABLED
|
| + // * terminated_extensions() --> INCLUDE_TERMINATED
|
| + // * blacklisted_extensions() --> INCLUDE_BLACKLISTED
|
| + const extensions::Extension* GetExtensionById(const std::string& id,
|
| + int include_mask) const;
|
| +
|
| // Looks up a terminated (crashed) extension by ID.
|
| const extensions::Extension*
|
| GetTerminatedExtension(const std::string& id) const;
|
|
|
| // Looks up an extension by ID, regardless of whether it's enabled,
|
| - // disabled, or terminated.
|
| + // disabled, blacklisted, or terminated.
|
| virtual const extensions::Extension* GetInstalledExtension(
|
| const std::string& id) const OVERRIDE;
|
|
|
| @@ -742,13 +761,6 @@ class ExtensionService
|
| const extensions::ExtensionSyncData& extension_sync_data,
|
| syncer::ModelType type);
|
|
|
| - enum IncludeFlag {
|
| - INCLUDE_NONE = 0,
|
| - INCLUDE_ENABLED = 1 << 0,
|
| - INCLUDE_DISABLED = 1 << 1,
|
| - INCLUDE_TERMINATED = 1 << 2
|
| - };
|
| -
|
| // Events to be fired after an extension is reloaded.
|
| enum PostReloadEvents {
|
| EVENT_NONE = 0,
|
| @@ -756,12 +768,6 @@ class ExtensionService
|
| EVENT_RESTARTED = 1 << 1,
|
| };
|
|
|
| - // Look up an extension by ID, optionally including either or both of enabled
|
| - // and disabled extensions.
|
| - const extensions::Extension* GetExtensionByIdInternal(
|
| - const std::string& id,
|
| - int include_mask) const;
|
| -
|
| // Adds the given extension to the list of terminated extensions if
|
| // it is not already there and unloads it.
|
| void TrackTerminatedExtension(const extensions::Extension* extension);
|
| @@ -844,15 +850,23 @@ class ExtensionService
|
| // extensions::Blacklist::Observer implementation.
|
| virtual void OnBlacklistUpdated() OVERRIDE;
|
|
|
| + // Manages the blacklisted extensions, intended as callback from
|
| + // Blacklist::GetBlacklistedIDs.
|
| + void ManageBlacklist(const std::set<std::string>& old_blacklisted_ids,
|
| + const std::set<std::string>& new_blacklisted_ids);
|
| +
|
| // The normal profile associated with this ExtensionService.
|
| Profile* profile_;
|
|
|
| // The ExtensionSystem for the profile above.
|
| extensions::ExtensionSystem* system_;
|
|
|
| - // Preferences for the owning profile (weak reference).
|
| + // Preferences for the owning profile.
|
| extensions::ExtensionPrefs* extension_prefs_;
|
|
|
| + // Blacklist for the owning profile.
|
| + extensions::Blacklist* blacklist_;
|
| +
|
| // Settings for the owning profile.
|
| scoped_ptr<extensions::SettingsFrontend> settings_frontend_;
|
|
|
| @@ -865,6 +879,12 @@ class ExtensionService
|
| // The list of installed extensions that have been terminated.
|
| ExtensionSet terminated_extensions_;
|
|
|
| + // The list of installed extensions that have been blacklisted. Generally
|
| + // these shouldn't be considered as installed by the extension platform: we
|
| + // only keep them around so that if extensions are blacklisted by mistake
|
| + // they can easily be un-blacklisted.
|
| + ExtensionSet blacklisted_extensions_;
|
| +
|
| // The list of extension updates that are waiting to be installed.
|
| ExtensionSet pending_extension_updates_;
|
|
|
|
|