Index: chrome/browser/extensions/component_loader.h |
diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h |
index 02798b31b01616aacd5dc612546214c6831aee61..7e61e0bd652ecb2f4d0a5a349b545ed11b75f934 100644 |
--- a/chrome/browser/extensions/component_loader.h |
+++ b/chrome/browser/extensions/component_loader.h |
@@ -32,8 +32,17 @@ class ComponentLoader { |
return component_extensions_.size(); |
} |
- // Loads any registered component extensions. |
- void LoadAll(); |
+ // Creates and loads all registered component extensions, including those with |
+ // background pages. |
+ void BulkLoadAll(); |
+ |
+ // Create all registered component extensions, loading those without |
+ // background pages and deferring others until a call to BulkLoadDeferred. |
+ void BulkLoadDeferBackgroundPages(); |
+ |
+ // Load component extensions deferred in the last call to |
+ // BulkLoadDeferBackgroundPages. |
+ void BulkLoadDeferred(); |
// Clear the list of all registered extensions and unloads them from the |
// extension service. |
@@ -111,7 +120,8 @@ class ComponentLoader { |
const FilePath& root_directory); |
// Loads a registered component extension. |
- const Extension* Load(const ComponentExtensionInfo& info); |
+ void Load(const ComponentExtensionInfo& info, |
+ bool defer_if_has_background_page); |
void AddDefaultComponentExtensionsWithBackgroundPages( |
bool skip_session_components); |
@@ -140,6 +150,10 @@ class ComponentLoader { |
PrefChangeRegistrar pref_change_registrar_; |
+ // Extensions with background pages deferred by LoadAll(true). |
+ typedef std::vector<scoped_refptr<const Extension> > DeferredAtLoadExtensions; |
+ DeferredAtLoadExtensions deferred_at_load_extensions; |
+ |
DISALLOW_COPY_AND_ASSIGN(ComponentLoader); |
}; |