| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_EXTENSIONS_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "chrome/browser/extensions/external_extension_provider.h" | 22 #include "chrome/browser/extensions/external_extension_provider.h" |
| 23 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h" | 23 #include "chrome/browser/extensions/sandboxed_extension_unpacker.h" |
| 24 #include "chrome/common/extensions/extension.h" | 24 #include "chrome/common/extensions/extension.h" |
| 25 | 25 |
| 26 class Browser; | 26 class Browser; |
| 27 class DictionaryValue; | 27 class DictionaryValue; |
| 28 class Extension; | 28 class Extension; |
| 29 class ExtensionsServiceBackend; | 29 class ExtensionsServiceBackend; |
| 30 class ExtensionUpdater; | 30 class ExtensionUpdater; |
| 31 class GURL; | 31 class GURL; |
| 32 class MessageLoop; | |
| 33 class PrefService; | 32 class PrefService; |
| 34 class Profile; | 33 class Profile; |
| 35 class ResourceDispatcherHost; | 34 class ResourceDispatcherHost; |
| 36 class SiteInstance; | 35 class SiteInstance; |
| 37 | 36 |
| 38 typedef std::vector<Extension*> ExtensionList; | 37 typedef std::vector<Extension*> ExtensionList; |
| 39 | 38 |
| 40 // This is an interface class to encapsulate the dependencies that | 39 // This is an interface class to encapsulate the dependencies that |
| 41 // ExtensionUpdater has on ExtensionsService. This allows easy mocking. | 40 // ExtensionUpdater has on ExtensionsService. This allows easy mocking. |
| 42 class ExtensionUpdateService { | 41 class ExtensionUpdateService { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 | 73 |
| 75 // Determine if a given extension download should be treated as if it came | 74 // Determine if a given extension download should be treated as if it came |
| 76 // from the gallery. | 75 // from the gallery. |
| 77 static bool IsDownloadFromGallery(const GURL& download_url, | 76 static bool IsDownloadFromGallery(const GURL& download_url, |
| 78 const GURL& referrer_url); | 77 const GURL& referrer_url); |
| 79 | 78 |
| 80 ExtensionsService(Profile* profile, | 79 ExtensionsService(Profile* profile, |
| 81 const CommandLine* command_line, | 80 const CommandLine* command_line, |
| 82 PrefService* prefs, | 81 PrefService* prefs, |
| 83 const FilePath& install_directory, | 82 const FilePath& install_directory, |
| 84 MessageLoop* frontend_loop, | |
| 85 MessageLoop* backend_loop, | |
| 86 bool autoupdate_enabled); | 83 bool autoupdate_enabled); |
| 87 virtual ~ExtensionsService(); | 84 virtual ~ExtensionsService(); |
| 88 | 85 |
| 89 // Gets the list of currently installed extensions. | 86 // Gets the list of currently installed extensions. |
| 90 virtual const ExtensionList* extensions() const { return &extensions_; } | 87 virtual const ExtensionList* extensions() const { return &extensions_; } |
| 91 virtual const ExtensionList* disabled_extensions() const { | 88 virtual const ExtensionList* disabled_extensions() const { |
| 92 return &disabled_extensions_; | 89 return &disabled_extensions_; |
| 93 } | 90 } |
| 94 | 91 |
| 95 const FilePath& install_directory() const { return install_directory_; } | 92 const FilePath& install_directory() const { return install_directory_; } |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 | 237 |
| 241 // Handles sending notification that |extension| was unloaded. | 238 // Handles sending notification that |extension| was unloaded. |
| 242 void NotifyExtensionUnloaded(Extension* extension); | 239 void NotifyExtensionUnloaded(Extension* extension); |
| 243 | 240 |
| 244 // The profile this ExtensionsService is part of. | 241 // The profile this ExtensionsService is part of. |
| 245 Profile* profile_; | 242 Profile* profile_; |
| 246 | 243 |
| 247 // Preferences for the owning profile. | 244 // Preferences for the owning profile. |
| 248 scoped_ptr<ExtensionPrefs> extension_prefs_; | 245 scoped_ptr<ExtensionPrefs> extension_prefs_; |
| 249 | 246 |
| 250 // The message loop to use with the backend. | |
| 251 MessageLoop* backend_loop_; | |
| 252 | |
| 253 // The current list of installed extensions. | 247 // The current list of installed extensions. |
| 254 ExtensionList extensions_; | 248 ExtensionList extensions_; |
| 255 | 249 |
| 256 // The list of installed extensions that have been disabled. | 250 // The list of installed extensions that have been disabled. |
| 257 ExtensionList disabled_extensions_; | 251 ExtensionList disabled_extensions_; |
| 258 | 252 |
| 259 // The full path to the directory where extensions are installed. | 253 // The full path to the directory where extensions are installed. |
| 260 FilePath install_directory_; | 254 FilePath install_directory_; |
| 261 | 255 |
| 262 // Whether or not extensions are enabled. | 256 // Whether or not extensions are enabled. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 279 | 273 |
| 280 // Implements IO for the ExtensionsService. | 274 // Implements IO for the ExtensionsService. |
| 281 // TODO(aa): This can probably move into the .cc file. | 275 // TODO(aa): This can probably move into the .cc file. |
| 282 class ExtensionsServiceBackend | 276 class ExtensionsServiceBackend |
| 283 : public base::RefCountedThreadSafe<ExtensionsServiceBackend>, | 277 : public base::RefCountedThreadSafe<ExtensionsServiceBackend>, |
| 284 public ExternalExtensionProvider::Visitor { | 278 public ExternalExtensionProvider::Visitor { |
| 285 public: | 279 public: |
| 286 // |rdh| can be NULL in the case of test environment. | 280 // |rdh| can be NULL in the case of test environment. |
| 287 // |extension_prefs| contains a dictionary value that points to the extension | 281 // |extension_prefs| contains a dictionary value that points to the extension |
| 288 // preferences. | 282 // preferences. |
| 289 ExtensionsServiceBackend(const FilePath& install_directory, | 283 ExtensionsServiceBackend(const FilePath& install_directory); |
| 290 MessageLoop* frontend_loop); | |
| 291 | 284 |
| 292 virtual ~ExtensionsServiceBackend(); | 285 virtual ~ExtensionsServiceBackend(); |
| 293 | 286 |
| 294 // Loads a single extension from |path| where |path| is the top directory of | 287 // Loads a single extension from |path| where |path| is the top directory of |
| 295 // a specific extension where its manifest file lives. | 288 // a specific extension where its manifest file lives. |
| 296 // Errors are reported through ExtensionErrorReporter. On success, | 289 // Errors are reported through ExtensionErrorReporter. On success, |
| 297 // OnExtensionLoaded() is called. | 290 // OnExtensionLoaded() is called. |
| 298 // TODO(erikkay): It might be useful to be able to load a packed extension | 291 // TODO(erikkay): It might be useful to be able to load a packed extension |
| 299 // (presumably into memory) without installing it. | 292 // (presumably into memory) without installing it. |
| 300 void LoadSingleExtension(const FilePath &path, | 293 void LoadSingleExtension(const FilePath &path, |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 // This is a naked pointer which is set by each entry point. | 352 // This is a naked pointer which is set by each entry point. |
| 360 // The entry point is responsible for ensuring lifetime. | 353 // The entry point is responsible for ensuring lifetime. |
| 361 ExtensionsService* frontend_; | 354 ExtensionsService* frontend_; |
| 362 | 355 |
| 363 // The top-level extensions directory being installed to. | 356 // The top-level extensions directory being installed to. |
| 364 FilePath install_directory_; | 357 FilePath install_directory_; |
| 365 | 358 |
| 366 // Whether errors result in noisy alerts. | 359 // Whether errors result in noisy alerts. |
| 367 bool alert_on_error_; | 360 bool alert_on_error_; |
| 368 | 361 |
| 369 // The message loop to use to call the frontend. | |
| 370 MessageLoop* frontend_loop_; | |
| 371 | |
| 372 // A map of all external extension providers. | 362 // A map of all external extension providers. |
| 373 typedef std::map<Extension::Location, | 363 typedef std::map<Extension::Location, |
| 374 linked_ptr<ExternalExtensionProvider> > ProviderMap; | 364 linked_ptr<ExternalExtensionProvider> > ProviderMap; |
| 375 ProviderMap external_extension_providers_; | 365 ProviderMap external_extension_providers_; |
| 376 | 366 |
| 377 DISALLOW_COPY_AND_ASSIGN(ExtensionsServiceBackend); | 367 DISALLOW_COPY_AND_ASSIGN(ExtensionsServiceBackend); |
| 378 }; | 368 }; |
| 379 | 369 |
| 380 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ | 370 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ |
| OLD | NEW |