Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/extensions/component_loader.h" | |
| 13 #include "chrome/browser/content_settings/cookie_settings.h" | 12 #include "chrome/browser/content_settings/cookie_settings.h" |
| 14 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" | 13 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" |
| 15 #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/serial/serial_connection.h" | |
| 16 #include "chrome/browser/extensions/api/socket/socket.h" | |
| 17 #include "chrome/browser/extensions/api/usb/usb_device_resource.h" | |
| 18 #include "chrome/browser/extensions/component_loader.h" | |
| 16 #include "chrome/browser/extensions/extension_devtools_manager.h" | 19 #include "chrome/browser/extensions/extension_devtools_manager.h" |
| 17 #include "chrome/browser/extensions/extension_error_reporter.h" | 20 #include "chrome/browser/extensions/extension_error_reporter.h" |
| 18 #include "chrome/browser/extensions/extension_event_router.h" | 21 #include "chrome/browser/extensions/extension_event_router.h" |
| 19 #include "chrome/browser/extensions/extension_info_map.h" | 22 #include "chrome/browser/extensions/extension_info_map.h" |
| 20 #include "chrome/browser/extensions/extension_message_service.h" | 23 #include "chrome/browser/extensions/extension_message_service.h" |
| 21 #include "chrome/browser/extensions/extension_navigation_observer.h" | 24 #include "chrome/browser/extensions/extension_navigation_observer.h" |
| 22 #include "chrome/browser/extensions/extension_pref_store.h" | 25 #include "chrome/browser/extensions/extension_pref_store.h" |
| 23 #include "chrome/browser/extensions/extension_pref_value_map.h" | 26 #include "chrome/browser/extensions/extension_pref_value_map.h" |
| 24 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" | 27 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" |
| 25 #include "chrome/browser/extensions/extension_process_manager.h" | 28 #include "chrome/browser/extensions/extension_process_manager.h" |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 271 | 274 |
| 272 const CommandLine* command_line = CommandLine::ForCurrentProcess(); | 275 const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 273 if (command_line->HasSwitch( | 276 if (command_line->HasSwitch( |
| 274 switches::kEnableExtensionTimelineApi)) { | 277 switches::kEnableExtensionTimelineApi)) { |
| 275 extension_devtools_manager_ = new ExtensionDevToolsManager(profile_); | 278 extension_devtools_manager_ = new ExtensionDevToolsManager(profile_); |
| 276 } | 279 } |
| 277 | 280 |
| 278 shared_->InitInfoMap(); | 281 shared_->InitInfoMap(); |
| 279 | 282 |
| 280 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); | 283 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); |
| 281 alarm_manager_.reset(new AlarmManager(profile_, | 284 alarm_manager_.reset(new AlarmManager(profile_, &base::Time::Now)); |
| 282 &base::Time::Now)); | 285 |
| 286 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>()); | |
| 287 serial_connection_manager_->set_thread_id(BrowserThread::FILE); | |
|
asargent_no_longer_on_chrome
2012/07/16 18:08:25
Had you considered making the thread id either an
miket_OOO
2012/07/16 19:46:02
That's a good idea. I had something in my head abo
| |
| 288 | |
| 289 socket_manager_.reset(new ApiResourceManager<Socket>()); | |
| 290 socket_manager_->set_thread_id(BrowserThread::IO); | |
| 291 | |
| 292 usb_device_resource_manager_.reset( | |
| 293 new ApiResourceManager<UsbDeviceResource>()); | |
| 294 usb_device_resource_manager_->set_thread_id(BrowserThread::IO); | |
| 283 | 295 |
| 284 shared_->Init(extensions_enabled); | 296 shared_->Init(extensions_enabled); |
| 285 } | 297 } |
| 286 | 298 |
| 287 ExtensionService* ExtensionSystemImpl::extension_service() { | 299 ExtensionService* ExtensionSystemImpl::extension_service() { |
| 288 return shared_->extension_service(); | 300 return shared_->extension_service(); |
| 289 } | 301 } |
| 290 | 302 |
| 291 ManagementPolicy* ExtensionSystemImpl::management_policy() { | 303 ManagementPolicy* ExtensionSystemImpl::management_policy() { |
| 292 return shared_->management_policy(); | 304 return shared_->management_policy(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 327 } | 339 } |
| 328 | 340 |
| 329 ExtensionEventRouter* ExtensionSystemImpl::event_router() { | 341 ExtensionEventRouter* ExtensionSystemImpl::event_router() { |
| 330 return shared_->event_router(); | 342 return shared_->event_router(); |
| 331 } | 343 } |
| 332 | 344 |
| 333 RulesRegistryService* ExtensionSystemImpl::rules_registry_service() { | 345 RulesRegistryService* ExtensionSystemImpl::rules_registry_service() { |
| 334 return shared_->rules_registry_service(); | 346 return shared_->rules_registry_service(); |
| 335 } | 347 } |
| 336 | 348 |
| 349 ApiResourceManager<SerialConnection>* | |
| 350 ExtensionSystemImpl::serial_connection_manager() { | |
| 351 return serial_connection_manager_.get(); | |
| 352 } | |
| 353 | |
| 354 ApiResourceManager<Socket>*ExtensionSystemImpl::socket_manager() { | |
| 355 return socket_manager_.get(); | |
| 356 } | |
| 357 | |
| 358 ApiResourceManager<UsbDeviceResource>* | |
| 359 ExtensionSystemImpl::usb_device_resource_manager() { | |
| 360 return usb_device_resource_manager_.get(); | |
| 361 } | |
| 362 | |
| 337 void ExtensionSystemImpl::RegisterExtensionWithRequestContexts( | 363 void ExtensionSystemImpl::RegisterExtensionWithRequestContexts( |
| 338 const Extension* extension) { | 364 const Extension* extension) { |
| 339 base::Time install_time; | 365 base::Time install_time; |
| 340 if (extension->location() != Extension::COMPONENT) { | 366 if (extension->location() != Extension::COMPONENT) { |
| 341 install_time = extension_service()->extension_prefs()-> | 367 install_time = extension_service()->extension_prefs()-> |
| 342 GetInstallTime(extension->id()); | 368 GetInstallTime(extension->id()); |
| 343 } | 369 } |
| 344 bool incognito_enabled = | 370 bool incognito_enabled = |
| 345 extension_service()->IsIncognitoEnabled(extension->id()); | 371 extension_service()->IsIncognitoEnabled(extension->id()); |
| 346 BrowserThread::PostTask( | 372 BrowserThread::PostTask( |
| 347 BrowserThread::IO, FROM_HERE, | 373 BrowserThread::IO, FROM_HERE, |
| 348 base::Bind(&ExtensionInfoMap::AddExtension, info_map(), | 374 base::Bind(&ExtensionInfoMap::AddExtension, info_map(), |
| 349 make_scoped_refptr(extension), install_time, | 375 make_scoped_refptr(extension), install_time, |
| 350 incognito_enabled)); | 376 incognito_enabled)); |
| 351 } | 377 } |
| 352 | 378 |
| 353 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( | 379 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( |
| 354 const std::string& extension_id, | 380 const std::string& extension_id, |
| 355 const extension_misc::UnloadedExtensionReason reason) { | 381 const extension_misc::UnloadedExtensionReason reason) { |
| 356 BrowserThread::PostTask( | 382 BrowserThread::PostTask( |
| 357 BrowserThread::IO, FROM_HERE, | 383 BrowserThread::IO, FROM_HERE, |
| 358 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), | 384 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), |
| 359 extension_id, reason)); | 385 extension_id, reason)); |
| 360 } | 386 } |
| 361 | 387 |
| 362 } // namespace extensions | 388 } // namespace extensions |
| OLD | NEW |