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/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 && |
|
elijahtaylor1
2014/10/22 16:40:01
As I stated in the other CL, this is probably ok.
Joao da Silva
2014/10/22 18:31:05
If you agree then it would be great to do this fix
elijahtaylor1
2014/10/22 19:57:49
I don't know much about external_loaders, but if w
Joao da Silva
2014/10/23 09:15:02
I think the drag-and-drop flow is the same as the
| |
| 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() && |
|
elijahtaylor1
2014/10/22 16:45:17
one rare-ish edge-case here to consider: It is pos
Joao da Silva
2014/10/22 18:31:05
Yes. Basically requests to install an extension vi
| |
| 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 |