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 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 replacements.SetQuery(query.c_str(), url::Component(0, query.length())); | 215 replacements.SetQuery(query.c_str(), url::Component(0, query.length())); |
216 return base_url.ReplaceComponents(replacements); | 216 return base_url.ReplaceComponents(replacements); |
217 } | 217 } |
218 | 218 |
219 virtual std::set<base::FilePath> GetBrowserImagePaths( | 219 virtual std::set<base::FilePath> GetBrowserImagePaths( |
220 const extensions::Extension* extension) OVERRIDE { | 220 const extensions::Extension* extension) OVERRIDE { |
221 return extension_file_util::GetBrowserImagePaths(extension); | 221 return extension_file_util::GetBrowserImagePaths(extension); |
222 } | 222 } |
223 | 223 |
224 virtual void VerifyFailed(const std::string& extension_id) OVERRIDE { | 224 virtual void VerifyFailed(const std::string& extension_id) OVERRIDE { |
225 if (service_) | 225 if (!service_) |
| 226 return; |
| 227 ExtensionRegistry* registry = ExtensionRegistry::Get(service_->profile()); |
| 228 const Extension* extension = |
| 229 registry->GetExtensionById(extension_id, ExtensionRegistry::EVERYTHING); |
| 230 if (!extension) |
| 231 return; |
| 232 Mode mode = ShouldBeVerified(*extension); |
| 233 if (mode >= ContentVerifierDelegate::ENFORCE) |
226 service_->DisableExtension(extension_id, Extension::DISABLE_CORRUPTED); | 234 service_->DisableExtension(extension_id, Extension::DISABLE_CORRUPTED); |
227 } | 235 } |
228 | 236 |
229 static Mode GetDefaultMode() { | 237 static Mode GetDefaultMode() { |
230 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 238 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
231 | 239 |
232 Mode experiment_value = NONE; | 240 Mode experiment_value = NONE; |
233 const std::string group = base::FieldTrialList::FindFullName( | 241 const std::string group = base::FieldTrialList::FindFullName( |
234 kContentVerificationExperimentName); | 242 kContentVerificationExperimentName); |
235 if (group == "EnforceStrict") | 243 if (group == "EnforceStrict") |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 install_verifier_.reset( | 325 install_verifier_.reset( |
318 new InstallVerifier(ExtensionPrefs::Get(profile_), profile_)); | 326 new InstallVerifier(ExtensionPrefs::Get(profile_), profile_)); |
319 install_verifier_->Init(); | 327 install_verifier_->Init(); |
320 content_verifier_ = new ContentVerifier( | 328 content_verifier_ = new ContentVerifier( |
321 profile_, new ContentVerifierDelegateImpl(extension_service_.get())); | 329 profile_, new ContentVerifierDelegateImpl(extension_service_.get())); |
322 ContentVerifierDelegate::Mode mode = | 330 ContentVerifierDelegate::Mode mode = |
323 ContentVerifierDelegateImpl::GetDefaultMode(); | 331 ContentVerifierDelegateImpl::GetDefaultMode(); |
324 #if defined(OS_CHROMEOS) | 332 #if defined(OS_CHROMEOS) |
325 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); | 333 mode = std::max(mode, ContentVerifierDelegate::BOOTSTRAP); |
326 #endif | 334 #endif |
327 if (mode > ContentVerifierDelegate::BOOTSTRAP) | 335 if (mode >= ContentVerifierDelegate::BOOTSTRAP) |
328 content_verifier_->Start(); | 336 content_verifier_->Start(); |
329 info_map()->SetContentVerifier(content_verifier_.get()); | 337 info_map()->SetContentVerifier(content_verifier_.get()); |
330 | 338 |
331 management_policy_.reset(new ManagementPolicy); | 339 management_policy_.reset(new ManagementPolicy); |
332 RegisterManagementPolicyProviders(); | 340 RegisterManagementPolicyProviders(); |
333 } | 341 } |
334 | 342 |
335 bool skip_session_extensions = false; | 343 bool skip_session_extensions = false; |
336 #if defined(OS_CHROMEOS) | 344 #if defined(OS_CHROMEOS) |
337 // Skip loading session extensions if we are not in a user session. | 345 // Skip loading session extensions if we are not in a user session. |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( | 620 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( |
613 const std::string& extension_id, | 621 const std::string& extension_id, |
614 const UnloadedExtensionInfo::Reason reason) { | 622 const UnloadedExtensionInfo::Reason reason) { |
615 BrowserThread::PostTask( | 623 BrowserThread::PostTask( |
616 BrowserThread::IO, | 624 BrowserThread::IO, |
617 FROM_HERE, | 625 FROM_HERE, |
618 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); | 626 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); |
619 } | 627 } |
620 | 628 |
621 } // namespace extensions | 629 } // namespace extensions |
OLD | NEW |