| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index 2cfc14495d5feff32ae24d9208049e49ab16d2bc..b4bfde998af0ab8f78bf2f361192d6436859fb82 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -350,7 +350,6 @@ ExtensionService::ExtensionService(Profile* profile,
|
| extensions_enabled_(extensions_enabled),
|
| show_extensions_prompts_(true),
|
| install_updates_when_idle_(true),
|
| - ready_(false),
|
| toolbar_model_(this),
|
| menu_manager_(profile),
|
| event_routers_initialized_(false),
|
| @@ -562,7 +561,7 @@ const Extension* ExtensionService::GetExtensionById(
|
| void ExtensionService::Init() {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| - DCHECK(!ready_); // Can't redo init.
|
| + DCHECK(!ready_.has_happened()); // Can't redo init.
|
| DCHECK_EQ(extensions_.size(), 0u);
|
|
|
| const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
|
| @@ -585,12 +584,13 @@ void ExtensionService::Init() {
|
| // import process.
|
|
|
| extensions::InstalledLoader(this).LoadAllExtensions();
|
| + SetReadyAndNotifyListeners();
|
| RegisterForImportFinished();
|
| } else {
|
| - // In this case, LoadAllExtensions() calls OnLoadedInstalledExtensions(),
|
| - // which calls SetReadyAndNotifyListeners().
|
| + // In this case, LoadAllExtensions() calls OnLoadedInstalledExtensions().
|
| component_loader_->LoadAll();
|
| extensions::InstalledLoader(this).LoadAllExtensions();
|
| + SetReadyAndNotifyListeners();
|
|
|
| // TODO(erikkay) this should probably be deferred to a future point
|
| // rather than running immediately at startup.
|
| @@ -1234,10 +1234,6 @@ extensions::ContentSettingsStore* ExtensionService::GetContentSettingsStore() {
|
| return extension_prefs()->content_settings_store();
|
| }
|
|
|
| -bool ExtensionService::is_ready() {
|
| - return ready_;
|
| -}
|
| -
|
| base::SequencedTaskRunner* ExtensionService::GetFileTaskRunner() {
|
| if (file_task_runner_)
|
| return file_task_runner_;
|
| @@ -1959,6 +1955,8 @@ void ExtensionService::ReloadExtensions() {
|
| UnloadAllExtensions();
|
| component_loader_->LoadAll();
|
| extensions::InstalledLoader(this).LoadAllExtensions();
|
| + // Don't call SetReadyAndNotifyListeners() since tests call this multiple
|
| + // times.
|
| }
|
|
|
| void ExtensionService::GarbageCollectExtensions() {
|
| @@ -2017,7 +2015,7 @@ void ExtensionService::SyncExtensionChangeIfNeeded(const Extension& extension) {
|
| }
|
|
|
| void ExtensionService::SetReadyAndNotifyListeners() {
|
| - ready_ = true;
|
| + ready_.MarkHappened();
|
| content::NotificationService::current()->Notify(
|
| chrome::NOTIFICATION_EXTENSIONS_READY,
|
| content::Source<Profile>(profile_),
|
| @@ -2029,8 +2027,6 @@ void ExtensionService::OnLoadedInstalledExtensions() {
|
| updater_->Start();
|
|
|
| OnBlacklistUpdated();
|
| -
|
| - SetReadyAndNotifyListeners();
|
| }
|
|
|
| void ExtensionService::AddExtension(const Extension* extension) {
|
|
|