Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: chrome/browser/extensions/extensions_service.h

Issue 4132005: Kill Extension::RuntimeData and move its guts to ExtensionsService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: oops Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 DefaultApps* default_apps() { return &default_apps_; } 178 DefaultApps* default_apps() { return &default_apps_; }
179 179
180 // Whether this extension can run in an incognito window. 180 // Whether this extension can run in an incognito window.
181 bool IsIncognitoEnabled(const Extension* extension); 181 bool IsIncognitoEnabled(const Extension* extension);
182 void SetIsIncognitoEnabled(const Extension* extension, bool enabled); 182 void SetIsIncognitoEnabled(const Extension* extension, bool enabled);
183 183
184 // Whether this extension can inject scripts into pages with file URLs. 184 // Whether this extension can inject scripts into pages with file URLs.
185 bool AllowFileAccess(const Extension* extension); 185 bool AllowFileAccess(const Extension* extension);
186 void SetAllowFileAccess(const Extension* extension, bool allow); 186 void SetAllowFileAccess(const Extension* extension, bool allow);
187 187
188 // Whether the background page, if any, is ready. We don't load other
189 // components until then. If there is no background page, we consider it to
190 // be ready.
191 bool IsBackgroundPageReady(const Extension* extension);
192 void SetBackgroundPageReady(const Extension* extension);
193
194 // Getter and setter for the flag that specifies whether the extension is
195 // being upgraded.
196 bool IsBeingUpgraded(const Extension* extension);
197 void SetBeingUpgraded(const Extension* extension, bool value);
198
188 // Initialize and start all installed extensions. 199 // Initialize and start all installed extensions.
189 void Init(); 200 void Init();
190 201
191 // Start up the extension event routers. 202 // Start up the extension event routers.
192 void InitEventRouters(); 203 void InitEventRouters();
193 204
194 // Look up an extension by ID. 205 // Look up an extension by ID.
195 const Extension* GetExtensionById(const std::string& id, 206 const Extension* GetExtensionById(const std::string& id,
196 bool include_disabled) { 207 bool include_disabled) {
197 return GetExtensionByIdInternal(id, true, include_disabled); 208 return GetExtensionByIdInternal(id, true, include_disabled);
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 const NotificationSource& source, 408 const NotificationSource& source,
398 const NotificationDetails& details); 409 const NotificationDetails& details);
399 410
400 // Whether there are any apps installed. Component apps are not included. 411 // Whether there are any apps installed. Component apps are not included.
401 bool HasApps() const; 412 bool HasApps() const;
402 413
403 // Gets the set of loaded app ids. Component apps are not included. 414 // Gets the set of loaded app ids. Component apps are not included.
404 ExtensionIdSet GetAppIds() const; 415 ExtensionIdSet GetAppIds() const;
405 416
406 private: 417 private:
407 virtual ~ExtensionsService();
408 friend class BrowserThread; 418 friend class BrowserThread;
409 friend class DeleteTask<ExtensionsService>; 419 friend class DeleteTask<ExtensionsService>;
410 420
421 // Contains Extension data that can change during the life of the process,
422 // but does not persist across restarts.
423 struct ExtensionRuntimeData {
424 // True if the background page is ready.
425 bool background_page_ready;
426
427 // True while the extension is being upgraded.
428 bool being_upgraded;
429
430 ExtensionRuntimeData();
431 ~ExtensionRuntimeData();
432 };
433 typedef std::map<std::string, ExtensionRuntimeData> ExtensionRuntimeDataMap;
434
435 virtual ~ExtensionsService();
436
411 // Clear all persistent data that may have been stored by the extension. 437 // Clear all persistent data that may have been stored by the extension.
412 void ClearExtensionData(const GURL& extension_url); 438 void ClearExtensionData(const GURL& extension_url);
413 439
414 // Look up an extension by ID, optionally including either or both of enabled 440 // Look up an extension by ID, optionally including either or both of enabled
415 // and disabled extensions. 441 // and disabled extensions.
416 const Extension* GetExtensionByIdInternal(const std::string& id, 442 const Extension* GetExtensionByIdInternal(const std::string& id,
417 bool include_enabled, 443 bool include_enabled,
418 bool include_disabled); 444 bool include_disabled);
419 445
420 // Like AddPendingExtension() but assumes an extension with the same 446 // Like AddPendingExtension() but assumes an extension with the same
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 478
453 // The current list of installed extensions. 479 // The current list of installed extensions.
454 ExtensionList extensions_; 480 ExtensionList extensions_;
455 481
456 // The list of installed extensions that have been disabled. 482 // The list of installed extensions that have been disabled.
457 ExtensionList disabled_extensions_; 483 ExtensionList disabled_extensions_;
458 484
459 // The set of pending extensions. 485 // The set of pending extensions.
460 PendingExtensionMap pending_extensions_; 486 PendingExtensionMap pending_extensions_;
461 487
488 // The map of extension IDs to their runtime data.
489 ExtensionRuntimeDataMap extension_runtime_data_;
490
462 // The full path to the directory where extensions are installed. 491 // The full path to the directory where extensions are installed.
463 FilePath install_directory_; 492 FilePath install_directory_;
464 493
465 // Whether or not extensions are enabled. 494 // Whether or not extensions are enabled.
466 bool extensions_enabled_; 495 bool extensions_enabled_;
467 496
468 // Whether to notify users when they attempt to install an extension. 497 // Whether to notify users when they attempt to install an extension.
469 bool show_extensions_prompts_; 498 bool show_extensions_prompts_;
470 499
471 // The backend that will do IO on behalf of this instance. 500 // The backend that will do IO on behalf of this instance.
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest, 565 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest,
537 UpdatePendingExtensionAlreadyInstalled); 566 UpdatePendingExtensionAlreadyInstalled);
538 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest, 567 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest,
539 InstallAppsWithUnlimtedStorage); 568 InstallAppsWithUnlimtedStorage);
540 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest, 569 FRIEND_TEST_ALL_PREFIXES(ExtensionsServiceTest,
541 InstallAppsAndCheckStorageProtection); 570 InstallAppsAndCheckStorageProtection);
542 DISALLOW_COPY_AND_ASSIGN(ExtensionsService); 571 DISALLOW_COPY_AND_ASSIGN(ExtensionsService);
543 }; 572 };
544 573
545 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_ 574 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_host.cc ('k') | chrome/browser/extensions/extensions_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698