| Index: chrome/browser/extensions/external_component_loader.cc
|
| diff --git a/chrome/browser/extensions/external_component_loader.cc b/chrome/browser/extensions/external_component_loader.cc
|
| index 10eb0ec145c2570f7f632cc244533d967576b44e..39e65d15b216bbad1b5fed9e03a5f415c0e43c04 100644
|
| --- a/chrome/browser/extensions/external_component_loader.cc
|
| +++ b/chrome/browser/extensions/external_component_loader.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/extensions/external_component_loader.h"
|
|
|
| +#include "base/sha1.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/search/hotword_service_factory.h"
|
| @@ -28,6 +30,24 @@ ExternalComponentLoader::ExternalComponentLoader(Profile* profile)
|
|
|
| ExternalComponentLoader::~ExternalComponentLoader() {}
|
|
|
| +// static
|
| +bool ExternalComponentLoader::IsModifiable(
|
| + const extensions::Extension* extension) {
|
| + if (extension->location() == extensions::Manifest::EXTERNAL_COMPONENT) {
|
| + static const char* enhanced_extension_hashes[] = {
|
| + "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
|
| + "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
|
| + "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
|
| + };
|
| + std::string hash = base::SHA1HashString(extension->id());
|
| + hash = base::HexEncode(hash.c_str(), hash.length());
|
| + for (size_t i = 0; i < arraysize(enhanced_extension_hashes); i++)
|
| + if (hash == enhanced_extension_hashes[i])
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| void ExternalComponentLoader::StartLoading() {
|
| prefs_.reset(new base::DictionaryValue());
|
| std::string appId = extension_misc::kInAppPaymentsSupportAppId;
|
|
|