| OLD | NEW |
| 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 | 106 |
| 107 virtual void UpdateExtensionBlacklist( | 107 virtual void UpdateExtensionBlacklist( |
| 108 const std::vector<std::string>& blacklist) = 0; | 108 const std::vector<std::string>& blacklist) = 0; |
| 109 virtual void CheckAdminBlacklist() = 0; | 109 virtual void CheckAdminBlacklist() = 0; |
| 110 | 110 |
| 111 // Safe to call multiple times in a row. | 111 // Safe to call multiple times in a row. |
| 112 // | 112 // |
| 113 // TODO(akalin): Remove this method (and others) once we refactor | 113 // TODO(akalin): Remove this method (and others) once we refactor |
| 114 // themes sync to not use it directly. | 114 // themes sync to not use it directly. |
| 115 virtual void CheckForUpdatesSoon() = 0; | 115 virtual void CheckForUpdatesSoon() = 0; |
| 116 |
| 117 virtual void AddExtension(const Extension* extension) = 0; |
| 118 |
| 119 virtual void UnloadExtension( |
| 120 const std::string& extension_id, |
| 121 extension_misc::UnloadedExtensionReason reason) = 0; |
| 122 |
| 123 virtual bool is_ready() = 0; |
| 116 }; | 124 }; |
| 117 | 125 |
| 118 // Manages installed and running Chromium extensions. | 126 // Manages installed and running Chromium extensions. |
| 119 class ExtensionService | 127 class ExtensionService |
| 120 : public ExtensionServiceInterface, | 128 : public ExtensionServiceInterface, |
| 121 public ExternalExtensionProviderInterface::VisitorInterface, | 129 public ExternalExtensionProviderInterface::VisitorInterface, |
| 122 public base::SupportsWeakPtr<ExtensionService>, | 130 public base::SupportsWeakPtr<ExtensionService>, |
| 123 public content::NotificationObserver { | 131 public content::NotificationObserver { |
| 124 public: | 132 public: |
| 125 using base::SupportsWeakPtr<ExtensionService>::AsWeakPtr; | 133 using base::SupportsWeakPtr<ExtensionService>::AsWeakPtr; |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 void GrantPermissionsAndEnableExtension(const Extension* extension); | 310 void GrantPermissionsAndEnableExtension(const Extension* extension); |
| 303 | 311 |
| 304 // Sets the |extension|'s active permissions to |permissions|. | 312 // Sets the |extension|'s active permissions to |permissions|. |
| 305 void UpdateActivePermissions(const Extension* extension, | 313 void UpdateActivePermissions(const Extension* extension, |
| 306 const ExtensionPermissionSet* permissions); | 314 const ExtensionPermissionSet* permissions); |
| 307 | 315 |
| 308 // Check for updates (or potentially new extensions from external providers) | 316 // Check for updates (or potentially new extensions from external providers) |
| 309 void CheckForExternalUpdates(); | 317 void CheckForExternalUpdates(); |
| 310 | 318 |
| 311 // Unload the specified extension. | 319 // Unload the specified extension. |
| 312 void UnloadExtension(const std::string& extension_id, | 320 virtual void UnloadExtension( |
| 313 extension_misc::UnloadedExtensionReason reason); | 321 const std::string& extension_id, |
| 322 extension_misc::UnloadedExtensionReason reason); |
| 314 | 323 |
| 315 // Unload all extensions. This is currently only called on shutdown, and | 324 // Unload all extensions. This is currently only called on shutdown, and |
| 316 // does not send notifications. | 325 // does not send notifications. |
| 317 void UnloadAllExtensions(); | 326 void UnloadAllExtensions(); |
| 318 | 327 |
| 319 // Called only by testing. | 328 // Called only by testing. |
| 320 void ReloadExtensions(); | 329 void ReloadExtensions(); |
| 321 | 330 |
| 322 // Scan the extension directory and clean up the cruft. | 331 // Scan the extension directory and clean up the cruft. |
| 323 void GarbageCollectExtensions(); | 332 void GarbageCollectExtensions(); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 350 // Returns the icon to display in the omnibox popup window for the given | 359 // Returns the icon to display in the omnibox popup window for the given |
| 351 // extension. | 360 // extension. |
| 352 const SkBitmap& GetOmniboxPopupIcon(const std::string& extension_id); | 361 const SkBitmap& GetOmniboxPopupIcon(const std::string& extension_id); |
| 353 | 362 |
| 354 // Called when the initial extensions load has completed. | 363 // Called when the initial extensions load has completed. |
| 355 virtual void OnLoadedInstalledExtensions(); | 364 virtual void OnLoadedInstalledExtensions(); |
| 356 | 365 |
| 357 // Adds |extension| to this ExtensionService and notifies observers than an | 366 // Adds |extension| to this ExtensionService and notifies observers than an |
| 358 // extension has been loaded. Called by the backend after an extension has | 367 // extension has been loaded. Called by the backend after an extension has |
| 359 // been loaded from a file and installed. | 368 // been loaded from a file and installed. |
| 360 void AddExtension(const Extension* extension); | 369 virtual void AddExtension(const Extension* extension); |
| 361 | 370 |
| 362 // Called by the backend when an extension has been installed. | 371 // Called by the backend when an extension has been installed. |
| 363 void OnExtensionInstalled( | 372 void OnExtensionInstalled( |
| 364 const Extension* extension, bool from_webstore, int page_index); | 373 const Extension* extension, bool from_webstore, int page_index); |
| 365 | 374 |
| 366 // Initializes the |extension|'s active permission set and disables the | 375 // Initializes the |extension|'s active permission set and disables the |
| 367 // extension if the privilege level has increased (e.g., due to an upgrade). | 376 // extension if the privilege level has increased (e.g., due to an upgrade). |
| 368 void InitializePermissions(const Extension* extension); | 377 void InitializePermissions(const Extension* extension); |
| 369 | 378 |
| 370 // Go through each extensions in pref, unload blacklisted extensions | 379 // Go through each extensions in pref, unload blacklisted extensions |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 | 414 |
| 406 // TODO(skerner): Change to const ExtensionPrefs& extension_prefs() const, | 415 // TODO(skerner): Change to const ExtensionPrefs& extension_prefs() const, |
| 407 // ExtensionPrefs* mutable_extension_prefs(). | 416 // ExtensionPrefs* mutable_extension_prefs(). |
| 408 ExtensionPrefs* extension_prefs(); | 417 ExtensionPrefs* extension_prefs(); |
| 409 | 418 |
| 410 ExtensionSettingsFrontend* extension_settings_frontend(); | 419 ExtensionSettingsFrontend* extension_settings_frontend(); |
| 411 | 420 |
| 412 ExtensionContentSettingsStore* GetExtensionContentSettingsStore(); | 421 ExtensionContentSettingsStore* GetExtensionContentSettingsStore(); |
| 413 | 422 |
| 414 // Whether the extension service is ready. | 423 // Whether the extension service is ready. |
| 415 bool is_ready() { return ready_; } | 424 virtual bool is_ready() { return ready_; } |
| 416 | 425 |
| 417 extensions::ComponentLoader* component_loader() { | 426 extensions::ComponentLoader* component_loader() { |
| 418 return component_loader_.get(); | 427 return component_loader_.get(); |
| 419 } | 428 } |
| 420 | 429 |
| 421 // Note that this may return NULL if autoupdate is not turned on. | 430 // Note that this may return NULL if autoupdate is not turned on. |
| 422 ExtensionUpdater* updater(); | 431 ExtensionUpdater* updater(); |
| 423 | 432 |
| 424 ExtensionToolbarModel* toolbar_model() { return &toolbar_model_; } | 433 ExtensionToolbarModel* toolbar_model() { return &toolbar_model_; } |
| 425 | 434 |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 789 ExtensionWarningSet extension_warnings_; | 798 ExtensionWarningSet extension_warnings_; |
| 790 | 799 |
| 791 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, | 800 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, |
| 792 InstallAppsWithUnlimtedStorage); | 801 InstallAppsWithUnlimtedStorage); |
| 793 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, | 802 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, |
| 794 InstallAppsAndCheckStorageProtection); | 803 InstallAppsAndCheckStorageProtection); |
| 795 DISALLOW_COPY_AND_ASSIGN(ExtensionService); | 804 DISALLOW_COPY_AND_ASSIGN(ExtensionService); |
| 796 }; | 805 }; |
| 797 | 806 |
| 798 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ | 807 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ |
| OLD | NEW |