OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_impl.h" | 5 #include "chrome/browser/extensions/extension_system_impl.h" |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 ExtensionManagementFactory::GetForBrowserContext(profile_) | 135 ExtensionManagementFactory::GetForBrowserContext(profile_) |
136 ->GetProviders()); | 136 ->GetProviders()); |
137 | 137 |
138 #if defined(OS_CHROMEOS) | 138 #if defined(OS_CHROMEOS) |
139 if (device_local_account_management_policy_provider_) { | 139 if (device_local_account_management_policy_provider_) { |
140 management_policy_->RegisterProvider( | 140 management_policy_->RegisterProvider( |
141 device_local_account_management_policy_provider_.get()); | 141 device_local_account_management_policy_provider_.get()); |
142 } | 142 } |
143 #endif // defined(OS_CHROMEOS) | 143 #endif // defined(OS_CHROMEOS) |
144 | 144 |
145 management_policy_->RegisterProvider(install_verifier_.get()); | 145 management_policy_->RegisterProvider(InstallVerifier::Get(profile_)); |
146 } | 146 } |
147 | 147 |
148 namespace { | 148 namespace { |
149 | 149 |
150 class ContentVerifierDelegateImpl : public ContentVerifierDelegate { | 150 class ContentVerifierDelegateImpl : public ContentVerifierDelegate { |
151 public: | 151 public: |
152 explicit ContentVerifierDelegateImpl(ExtensionService* service) | 152 explicit ContentVerifierDelegateImpl(ExtensionService* service) |
153 : service_(service->AsWeakPtr()), default_mode_(GetDefaultMode()) {} | 153 : service_(service->AsWeakPtr()), default_mode_(GetDefaultMode()) {} |
154 | 154 |
155 ~ContentVerifierDelegateImpl() override {} | 155 ~ContentVerifierDelegateImpl() override {} |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 #endif // defined(OS_CHROMEOS) | 317 #endif // defined(OS_CHROMEOS) |
318 extension_service_.reset(new ExtensionService( | 318 extension_service_.reset(new ExtensionService( |
319 profile_, base::CommandLine::ForCurrentProcess(), | 319 profile_, base::CommandLine::ForCurrentProcess(), |
320 profile_->GetPath().AppendASCII(extensions::kInstallDirectoryName), | 320 profile_->GetPath().AppendASCII(extensions::kInstallDirectoryName), |
321 ExtensionPrefs::Get(profile_), Blacklist::Get(profile_), | 321 ExtensionPrefs::Get(profile_), Blacklist::Get(profile_), |
322 autoupdate_enabled, extensions_enabled, &ready_)); | 322 autoupdate_enabled, extensions_enabled, &ready_)); |
323 | 323 |
324 // These services must be registered before the ExtensionService tries to | 324 // These services must be registered before the ExtensionService tries to |
325 // load any extensions. | 325 // load any extensions. |
326 { | 326 { |
327 install_verifier_.reset( | 327 InstallVerifier::Get(profile_)->Init(); |
328 new InstallVerifier(ExtensionPrefs::Get(profile_), profile_)); | |
329 install_verifier_->Init(); | |
330 content_verifier_ = new ContentVerifier( | 328 content_verifier_ = new ContentVerifier( |
331 profile_, new ContentVerifierDelegateImpl(extension_service_.get())); | 329 profile_, new ContentVerifierDelegateImpl(extension_service_.get())); |
332 ContentVerifierDelegate::Mode mode = | 330 ContentVerifierDelegate::Mode mode = |
333 ContentVerifierDelegateImpl::GetDefaultMode(); | 331 ContentVerifierDelegateImpl::GetDefaultMode(); |
334 #if defined(OS_CHROMEOS) | 332 #if defined(OS_CHROMEOS) |
335 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); | 333 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); |
336 #endif // defined(OS_CHROMEOS) | 334 #endif // defined(OS_CHROMEOS) |
337 if (mode >= ContentVerifierDelegate::BOOTSTRAP) | 335 if (mode >= ContentVerifierDelegate::BOOTSTRAP) |
338 content_verifier_->Start(); | 336 content_verifier_->Start(); |
339 info_map()->SetContentVerifier(content_verifier_.get()); | 337 info_map()->SetContentVerifier(content_verifier_.get()); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 | 441 |
444 LazyBackgroundTaskQueue* | 442 LazyBackgroundTaskQueue* |
445 ExtensionSystemImpl::Shared::lazy_background_task_queue() { | 443 ExtensionSystemImpl::Shared::lazy_background_task_queue() { |
446 return lazy_background_task_queue_.get(); | 444 return lazy_background_task_queue_.get(); |
447 } | 445 } |
448 | 446 |
449 EventRouter* ExtensionSystemImpl::Shared::event_router() { | 447 EventRouter* ExtensionSystemImpl::Shared::event_router() { |
450 return event_router_.get(); | 448 return event_router_.get(); |
451 } | 449 } |
452 | 450 |
453 InstallVerifier* ExtensionSystemImpl::Shared::install_verifier() { | |
454 return install_verifier_.get(); | |
455 } | |
456 | |
457 QuotaService* ExtensionSystemImpl::Shared::quota_service() { | 451 QuotaService* ExtensionSystemImpl::Shared::quota_service() { |
458 return quota_service_.get(); | 452 return quota_service_.get(); |
459 } | 453 } |
460 | 454 |
461 ContentVerifier* ExtensionSystemImpl::Shared::content_verifier() { | 455 ContentVerifier* ExtensionSystemImpl::Shared::content_verifier() { |
462 return content_verifier_.get(); | 456 return content_verifier_.get(); |
463 } | 457 } |
464 | 458 |
465 // | 459 // |
466 // ExtensionSystemImpl | 460 // ExtensionSystemImpl |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 } | 522 } |
529 | 523 |
530 EventRouter* ExtensionSystemImpl::event_router() { | 524 EventRouter* ExtensionSystemImpl::event_router() { |
531 return shared_->event_router(); | 525 return shared_->event_router(); |
532 } | 526 } |
533 | 527 |
534 const OneShotEvent& ExtensionSystemImpl::ready() const { | 528 const OneShotEvent& ExtensionSystemImpl::ready() const { |
535 return shared_->ready(); | 529 return shared_->ready(); |
536 } | 530 } |
537 | 531 |
538 InstallVerifier* ExtensionSystemImpl::install_verifier() { | |
539 return shared_->install_verifier(); | |
540 } | |
541 | |
542 QuotaService* ExtensionSystemImpl::quota_service() { | 532 QuotaService* ExtensionSystemImpl::quota_service() { |
543 return shared_->quota_service(); | 533 return shared_->quota_service(); |
544 } | 534 } |
545 | 535 |
546 ContentVerifier* ExtensionSystemImpl::content_verifier() { | 536 ContentVerifier* ExtensionSystemImpl::content_verifier() { |
547 return shared_->content_verifier(); | 537 return shared_->content_verifier(); |
548 } | 538 } |
549 | 539 |
550 scoped_ptr<ExtensionSet> ExtensionSystemImpl::GetDependentExtensions( | 540 scoped_ptr<ExtensionSet> ExtensionSystemImpl::GetDependentExtensions( |
551 const Extension* extension) { | 541 const Extension* extension) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( | 574 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( |
585 const std::string& extension_id, | 575 const std::string& extension_id, |
586 const UnloadedExtensionInfo::Reason reason) { | 576 const UnloadedExtensionInfo::Reason reason) { |
587 BrowserThread::PostTask( | 577 BrowserThread::PostTask( |
588 BrowserThread::IO, | 578 BrowserThread::IO, |
589 FROM_HERE, | 579 FROM_HERE, |
590 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); | 580 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); |
591 } | 581 } |
592 | 582 |
593 } // namespace extensions | 583 } // namespace extensions |
OLD | NEW |