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

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

Issue 10830278: Fix: create ExtensionInfoMap earlier. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: better fix Created 8 years, 4 months 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
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 state_store_.reset(new StateStore( 88 state_store_.reset(new StateStore(
89 profile_, 89 profile_,
90 profile_->GetPath().AppendASCII(ExtensionService::kStateStoreName))); 90 profile_->GetPath().AppendASCII(ExtensionService::kStateStoreName)));
91 } 91 }
92 92
93 void ExtensionSystemImpl::Shared::RegisterManagementPolicyProviders() { 93 void ExtensionSystemImpl::Shared::RegisterManagementPolicyProviders() {
94 DCHECK(extension_prefs_.get()); 94 DCHECK(extension_prefs_.get());
95 management_policy_->RegisterProvider(extension_prefs_.get()); 95 management_policy_->RegisterProvider(extension_prefs_.get());
96 } 96 }
97 97
98 void ExtensionSystemImpl::Shared::InitInfoMap() {
99 // The ExtensionInfoMap needs to be created before the
100 // ExtensionProcessManager.
101 extension_info_map_ = new ExtensionInfoMap();
102 }
103
104 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { 98 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
105 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 99 const CommandLine* command_line = CommandLine::ForCurrentProcess();
106 100
107 lazy_background_task_queue_.reset(new LazyBackgroundTaskQueue(profile_)); 101 lazy_background_task_queue_.reset(new LazyBackgroundTaskQueue(profile_));
108 message_service_.reset(new MessageService(lazy_background_task_queue_.get())); 102 message_service_.reset(new MessageService(lazy_background_task_queue_.get()));
109 extension_event_router_.reset(new EventRouter(profile_)); 103 extension_event_router_.reset(new EventRouter(profile_));
110 extension_navigation_observer_.reset( 104 extension_navigation_observer_.reset(
111 new ExtensionNavigationObserver(profile_)); 105 new ExtensionNavigationObserver(profile_));
112 106
113 ExtensionErrorReporter::Init(true); // allow noisy errors. 107 ExtensionErrorReporter::Init(true); // allow noisy errors.
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 202
209 ManagementPolicy* ExtensionSystemImpl::Shared::management_policy() { 203 ManagementPolicy* ExtensionSystemImpl::Shared::management_policy() {
210 return management_policy_.get(); 204 return management_policy_.get();
211 } 205 }
212 206
213 UserScriptMaster* ExtensionSystemImpl::Shared::user_script_master() { 207 UserScriptMaster* ExtensionSystemImpl::Shared::user_script_master() {
214 return user_script_master_.get(); 208 return user_script_master_.get();
215 } 209 }
216 210
217 ExtensionInfoMap* ExtensionSystemImpl::Shared::info_map() { 211 ExtensionInfoMap* ExtensionSystemImpl::Shared::info_map() {
212 if (!extension_info_map_)
213 extension_info_map_ = new ExtensionInfoMap();
218 return extension_info_map_.get(); 214 return extension_info_map_.get();
219 } 215 }
220 216
221 LazyBackgroundTaskQueue* 217 LazyBackgroundTaskQueue*
222 ExtensionSystemImpl::Shared::lazy_background_task_queue() { 218 ExtensionSystemImpl::Shared::lazy_background_task_queue() {
223 return lazy_background_task_queue_.get(); 219 return lazy_background_task_queue_.get();
224 } 220 }
225 221
226 MessageService* ExtensionSystemImpl::Shared::message_service() { 222 MessageService* ExtensionSystemImpl::Shared::message_service() {
227 return message_service_.get(); 223 return message_service_.get();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 DCHECK(!profile_->IsOffTheRecord()); 256 DCHECK(!profile_->IsOffTheRecord());
261 if (user_script_master() || extension_service()) 257 if (user_script_master() || extension_service())
262 return; // Already initialized. 258 return; // Already initialized.
263 259
264 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 260 const CommandLine* command_line = CommandLine::ForCurrentProcess();
265 if (command_line->HasSwitch( 261 if (command_line->HasSwitch(
266 switches::kEnableExtensionTimelineApi)) { 262 switches::kEnableExtensionTimelineApi)) {
267 extension_devtools_manager_ = new ExtensionDevToolsManager(profile_); 263 extension_devtools_manager_ = new ExtensionDevToolsManager(profile_);
268 } 264 }
269 265
270 shared_->InitInfoMap(); 266 // The ExtensionInfoMap needs to be created before the
267 // ExtensionProcessManager.
268 shared_->info_map();
271 269
272 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); 270 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_));
273 alarm_manager_.reset(new AlarmManager(profile_, &base::Time::Now)); 271 alarm_manager_.reset(new AlarmManager(profile_, &base::Time::Now));
274 272
275 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>( 273 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>(
276 BrowserThread::FILE)); 274 BrowserThread::FILE));
277 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO)); 275 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO));
278 usb_device_resource_manager_.reset( 276 usb_device_resource_manager_.reset(
279 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO)); 277 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO));
280 278
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 376 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
379 const std::string& extension_id, 377 const std::string& extension_id,
380 const extension_misc::UnloadedExtensionReason reason) { 378 const extension_misc::UnloadedExtensionReason reason) {
381 BrowserThread::PostTask( 379 BrowserThread::PostTask(
382 BrowserThread::IO, FROM_HERE, 380 BrowserThread::IO, FROM_HERE,
383 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 381 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
384 extension_id, reason)); 382 extension_id, reason));
385 } 383 }
386 384
387 } // namespace extensions 385 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698