Index: chrome/browser/extensions/extension_system.h |
diff --git a/chrome/browser/extensions/extension_system.h b/chrome/browser/extensions/extension_system.h |
index c2bdc609f84d2d17dc27648ae4ca335c980aac9a..d84376c40ec217a65a07e7bc299c33586fb37cd5 100644 |
--- a/chrome/browser/extensions/extension_system.h |
+++ b/chrome/browser/extensions/extension_system.h |
@@ -15,6 +15,7 @@ |
#include "chrome/browser/extensions/api/usb/usb_device_resource.h" |
#include "chrome/browser/profiles/profile_keyed_service.h" |
#include "chrome/common/extensions/extension_constants.h" |
+#include "extensions/common/one_shot_event.h" |
class ExtensionInfoMap; |
class ExtensionProcessManager; |
@@ -140,6 +141,15 @@ class ExtensionSystem : public ProfileKeyedService { |
virtual void UnregisterExtensionWithRequestContexts( |
const std::string& extension_id, |
const extension_misc::UnloadedExtensionReason reason) {} |
+ |
+ // Whether the extension system has completed its startup tasks. |
not at google - send to devlin
2013/05/16 15:51:08
The comment (and in a way, method name) implies th
Jeffrey Yasskin
2013/05/16 19:05:36
Good point; re-commented.
|
+ virtual const OneShotEvent& ready() const = 0; |
+ |
+ protected: |
+ friend class ::ExtensionService; |
+ // Called by the ExtensionService when it finishes loading extensions on |
+ // startup. |
+ virtual void ExtensionServiceReady() = 0; |
not at google - send to devlin
2013/05/16 15:51:08
I can see why ExtensionService owns this event, bu
Jeffrey Yasskin
2013/05/16 19:05:36
I agree that it's icky, and I tried your suggestio
not at google - send to devlin
2013/05/16 21:38:17
A constructor parameter to ExtensionService won't
Jeffrey Yasskin
2013/05/16 22:19:21
That seems to work and be cleaner that this callba
|
}; |
// The ExtensionSystem for ProfileImpl and OffTheRecordProfileImpl. |
@@ -189,6 +199,8 @@ class ExtensionSystemImpl : public ExtensionSystem { |
const std::string& extension_id, |
const extension_misc::UnloadedExtensionReason reason) OVERRIDE; |
+ virtual const OneShotEvent& ready() const OVERRIDE; |
+ |
private: |
friend class ExtensionSystemSharedFactory; |
@@ -220,6 +232,7 @@ class ExtensionSystemImpl : public ExtensionSystem { |
LazyBackgroundTaskQueue* lazy_background_task_queue(); |
EventRouter* event_router(); |
ExtensionWarningService* warning_service(); |
+ OneShotEvent* ready() { return &ready_; } |
private: |
Profile* profile_; |
@@ -249,8 +262,12 @@ class ExtensionSystemImpl : public ExtensionSystem { |
scoped_refptr<ExtensionInfoMap> extension_info_map_; |
scoped_ptr<ExtensionWarningService> extension_warning_service_; |
scoped_ptr<ExtensionWarningBadgeService> extension_warning_badge_service_; |
+ |
+ OneShotEvent ready_; |
}; |
+ virtual void ExtensionServiceReady() OVERRIDE; |
+ |
Profile* profile_; |
Shared* shared_; |