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/crx_installer.h" | 5 #include "chrome/browser/extensions/crx_installer.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 // TODO(crbug.com/420147): Move this code to a utility class to avoid | 479 // TODO(crbug.com/420147): Move this code to a utility class to avoid |
480 // duplication of SharedModuleService::CheckImports code. | 480 // duplication of SharedModuleService::CheckImports code. |
481 if (SharedModuleInfo::ImportsModules(extension())) { | 481 if (SharedModuleInfo::ImportsModules(extension())) { |
482 const std::vector<SharedModuleInfo::ImportInfo>& imports = | 482 const std::vector<SharedModuleInfo::ImportInfo>& imports = |
483 SharedModuleInfo::GetImports(extension()); | 483 SharedModuleInfo::GetImports(extension()); |
484 std::vector<SharedModuleInfo::ImportInfo>::const_iterator i; | 484 std::vector<SharedModuleInfo::ImportInfo>::const_iterator i; |
485 for (i = imports.begin(); i != imports.end(); ++i) { | 485 for (i = imports.begin(); i != imports.end(); ++i) { |
486 Version version_required(i->minimum_version); | 486 Version version_required(i->minimum_version); |
487 const Extension* imported_module = | 487 const Extension* imported_module = |
488 service->GetExtensionById(i->extension_id, true); | 488 service->GetExtensionById(i->extension_id, true); |
489 if (!imported_module) { | 489 if (imported_module && |
490 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( | 490 !SharedModuleInfo::IsSharedModule(imported_module)) { |
491 IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_FOUND, | |
492 base::ASCIIToUTF16(i->extension_id), | |
493 base::ASCIIToUTF16(i->minimum_version)))); | |
494 return; | |
495 } else if (imported_module && | |
496 !SharedModuleInfo::IsSharedModule(imported_module)) { | |
497 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( | 491 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( |
498 IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_SHARED_MODULE, | 492 IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_SHARED_MODULE, |
499 base::UTF8ToUTF16(imported_module->name())))); | 493 base::UTF8ToUTF16(imported_module->name())))); |
500 return; | 494 return; |
501 } else if (imported_module && (version_required.IsValid() && | 495 } else if (imported_module && (version_required.IsValid() && |
502 imported_module->version()->CompareTo( | 496 imported_module->version()->CompareTo( |
503 version_required) < 0)) { | 497 version_required) < 0)) { |
504 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( | 498 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( |
505 IDS_EXTENSION_INSTALL_DEPENDENCY_OLD_VERSION, | 499 IDS_EXTENSION_INSTALL_DEPENDENCY_OLD_VERSION, |
506 base::UTF8ToUTF16(imported_module->name()), | 500 base::UTF8ToUTF16(imported_module->name()), |
507 base::ASCIIToUTF16(i->minimum_version), | 501 base::ASCIIToUTF16(i->minimum_version), |
508 base::ASCIIToUTF16(imported_module->version()->GetString())))); | 502 base::ASCIIToUTF16(imported_module->version()->GetString())))); |
509 return; | 503 return; |
510 } else if (imported_module && | 504 } else if (imported_module && |
511 !SharedModuleInfo::IsExportAllowedByWhitelist(imported_module, | 505 !SharedModuleInfo::IsExportAllowedByWhitelist( |
512 extension()->id())) { | 506 imported_module, extension()->id())) { |
513 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( | 507 ReportFailureFromUIThread(CrxInstallerError(l10n_util::GetStringFUTF16( |
514 IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_WHITELISTED, | 508 IDS_EXTENSION_INSTALL_DEPENDENCY_NOT_WHITELISTED, |
515 base::UTF8ToUTF16(extension()->name()), | 509 base::UTF8ToUTF16(extension()->name()), |
516 base::UTF8ToUTF16(imported_module->name())))); | 510 base::UTF8ToUTF16(imported_module->name())))); |
517 return; | 511 return; |
518 } | 512 } |
519 } | 513 } |
520 } | 514 } |
521 | 515 |
522 // Run the policy, requirements and blacklist checks in parallel. | 516 // Run the policy, requirements and blacklist checks in parallel. |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
907 if (!prefs->DidExtensionEscalatePermissions(extension()->id())) | 901 if (!prefs->DidExtensionEscalatePermissions(extension()->id())) |
908 return; | 902 return; |
909 | 903 |
910 if (client_) { | 904 if (client_) { |
911 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort(). | 905 AddRef(); // Balanced in InstallUIProceed() and InstallUIAbort(). |
912 client_->ConfirmReEnable(this, extension()); | 906 client_->ConfirmReEnable(this, extension()); |
913 } | 907 } |
914 } | 908 } |
915 | 909 |
916 } // namespace extensions | 910 } // namespace extensions |
OLD | NEW |