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

Side by Side Diff: chrome/browser/extensions/extension_system.cc

Issue 11359081: Lazy initialization for ProcessesEventRouter. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/extensions/extension_system.h" 5 #include "chrome/browser/extensions/extension_system.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/string_tokenizer.h" 10 #include "base/string_tokenizer.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/content_settings/cookie_settings.h" 12 #include "chrome/browser/content_settings/cookie_settings.h"
13 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" 13 #include "chrome/browser/extensions/api/alarms/alarm_manager.h"
14 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h" 14 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
15 #include "chrome/browser/extensions/api/messaging/message_service.h" 15 #include "chrome/browser/extensions/api/messaging/message_service.h"
16 #include "chrome/browser/extensions/api/processes/processes_api_service.h"
16 #include "chrome/browser/extensions/component_loader.h" 17 #include "chrome/browser/extensions/component_loader.h"
17 #include "chrome/browser/extensions/event_router.h" 18 #include "chrome/browser/extensions/event_router.h"
18 #include "chrome/browser/extensions/extension_devtools_manager.h" 19 #include "chrome/browser/extensions/extension_devtools_manager.h"
19 #include "chrome/browser/extensions/extension_error_reporter.h" 20 #include "chrome/browser/extensions/extension_error_reporter.h"
20 #include "chrome/browser/extensions/extension_info_map.h" 21 #include "chrome/browser/extensions/extension_info_map.h"
21 #include "chrome/browser/extensions/extension_pref_store.h" 22 #include "chrome/browser/extensions/extension_pref_store.h"
22 #include "chrome/browser/extensions/extension_pref_value_map.h" 23 #include "chrome/browser/extensions/extension_pref_value_map.h"
23 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" 24 #include "chrome/browser/extensions/extension_pref_value_map_factory.h"
24 #include "chrome/browser/extensions/extension_process_manager.h" 25 #include "chrome/browser/extensions/extension_process_manager.h"
25 #include "chrome/browser/extensions/extension_service.h" 26 #include "chrome/browser/extensions/extension_service.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 ExtensionSystem* ExtensionSystem::Get(Profile* profile) { 65 ExtensionSystem* ExtensionSystem::Get(Profile* profile) {
65 return ExtensionSystemFactory::GetForProfile(profile); 66 return ExtensionSystemFactory::GetForProfile(profile);
66 } 67 }
67 68
68 // 69 //
69 // ExtensionSystemImpl::Shared 70 // ExtensionSystemImpl::Shared
70 // 71 //
71 72
72 ExtensionSystemImpl::Shared::Shared(Profile* profile) 73 ExtensionSystemImpl::Shared::Shared(Profile* profile)
73 : profile_(profile) { 74 : profile_(profile) {
75
74 } 76 }
75 77
76 ExtensionSystemImpl::Shared::~Shared() { 78 ExtensionSystemImpl::Shared::~Shared() {
77 } 79 }
78 80
79 void ExtensionSystemImpl::Shared::InitPrefs() { 81 void ExtensionSystemImpl::Shared::InitPrefs() {
80 bool extensions_disabled = 82 bool extensions_disabled =
81 profile_->GetPrefs()->GetBoolean(prefs::kDisableExtensions) || 83 profile_->GetPrefs()->GetBoolean(prefs::kDisableExtensions) ||
82 CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableExtensions); 84 CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableExtensions);
83 extension_prefs_.reset(new ExtensionPrefs( 85 extension_prefs_.reset(new ExtensionPrefs(
(...skipping 21 matching lines...) Expand all
105 lazy_background_task_queue_.reset(new LazyBackgroundTaskQueue(profile_)); 107 lazy_background_task_queue_.reset(new LazyBackgroundTaskQueue(profile_));
106 message_service_.reset(new MessageService(lazy_background_task_queue_.get())); 108 message_service_.reset(new MessageService(lazy_background_task_queue_.get()));
107 extension_event_router_.reset(new EventRouter(profile_, 109 extension_event_router_.reset(new EventRouter(profile_,
108 extension_prefs_.get())); 110 extension_prefs_.get()));
109 navigation_observer_.reset(new NavigationObserver(profile_)); 111 navigation_observer_.reset(new NavigationObserver(profile_));
110 112
111 ExtensionErrorReporter::Init(true); // allow noisy errors. 113 ExtensionErrorReporter::Init(true); // allow noisy errors.
112 114
113 user_script_master_ = new UserScriptMaster(profile_); 115 user_script_master_ = new UserScriptMaster(profile_);
114 116
117 // Initialize services that register with the event router.
118 // TODO(yoz): crbug.com/159265: This shouldn't be here, because of dependency
119 // issues, but unfortunately extension startup ordering is complicated.
120 ProcessesAPIService::Get(profile_);
Yoyo Zhou 2012/11/07 03:25:19 This is the unfortunate part. The observers are r
Aaron Boodman 2012/11/07 04:08:20 Move EventRouter construction into ExtensionSystem
Yoyo Zhou 2012/11/07 22:53:36 This turned out to be the best solution. I had to
121
115 bool autoupdate_enabled = true; 122 bool autoupdate_enabled = true;
116 #if defined(OS_CHROMEOS) 123 #if defined(OS_CHROMEOS)
117 if (!extensions_enabled) 124 if (!extensions_enabled)
118 autoupdate_enabled = false; 125 autoupdate_enabled = false;
119 else 126 else
120 autoupdate_enabled = !command_line->HasSwitch(switches::kGuestSession); 127 autoupdate_enabled = !command_line->HasSwitch(switches::kGuestSession);
121 #endif 128 #endif
122 extension_service_.reset(new ExtensionService( 129 extension_service_.reset(new ExtensionService(
123 profile_, 130 profile_,
124 CommandLine::ForCurrentProcess(), 131 CommandLine::ForCurrentProcess(),
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 400 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
394 const std::string& extension_id, 401 const std::string& extension_id,
395 const extension_misc::UnloadedExtensionReason reason) { 402 const extension_misc::UnloadedExtensionReason reason) {
396 BrowserThread::PostTask( 403 BrowserThread::PostTask(
397 BrowserThread::IO, FROM_HERE, 404 BrowserThread::IO, FROM_HERE,
398 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 405 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
399 extension_id, reason)); 406 extension_id, reason));
400 } 407 }
401 408
402 } // namespace extensions 409 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/profiles/profile_dependency_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698