Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1119)

Unified Diff: chrome/browser/extensions/external_component_loader.cc

Issue 445233002: Allow enhanced bookmarks external component extensions to be disabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: whitelist in ExternalComponentLoader Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698