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

Unified Diff: extensions/browser/extension_registry.cc

Issue 695133005: Temporarily disable extensions and sync while a profile is locked - Profiles Approach (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compiling is awesome Created 6 years, 1 month 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: extensions/browser/extension_registry.cc
diff --git a/extensions/browser/extension_registry.cc b/extensions/browser/extension_registry.cc
index 769539e971931a7368dcac90882b5422f25627aa..62891d89eedd0339a3cea59c1dc750aa4c455bee 100644
--- a/extensions/browser/extension_registry.cc
+++ b/extensions/browser/extension_registry.cc
@@ -21,11 +21,22 @@ ExtensionRegistry* ExtensionRegistry::Get(content::BrowserContext* context) {
scoped_ptr<ExtensionSet> ExtensionRegistry::GenerateInstalledExtensionsSet()
const {
+ return GenerateInstalledExtensionsSet(EVERYTHING).Pass();
+}
+
+scoped_ptr<ExtensionSet> ExtensionRegistry::GenerateInstalledExtensionsSet(
+ int include_mask) const {
scoped_ptr<ExtensionSet> installed_extensions(new ExtensionSet);
- installed_extensions->InsertAll(enabled_extensions_);
- installed_extensions->InsertAll(disabled_extensions_);
- installed_extensions->InsertAll(terminated_extensions_);
- installed_extensions->InsertAll(blacklisted_extensions_);
+ if (include_mask & IncludeFlag::ENABLED)
+ installed_extensions->InsertAll(enabled_extensions_);
+ if (include_mask & IncludeFlag::DISABLED)
+ installed_extensions->InsertAll(disabled_extensions_);
+ if (include_mask & IncludeFlag::TERMINATED)
+ installed_extensions->InsertAll(terminated_extensions_);
+ if (include_mask & IncludeFlag::BLACKLISTED)
+ installed_extensions->InsertAll(blacklisted_extensions_);
+ if (include_mask & IncludeFlag::BLOCKED)
+ installed_extensions->InsertAll(blocked_extensions_);
return installed_extensions.Pass();
}
@@ -108,6 +119,11 @@ const Extension* ExtensionRegistry::GetExtensionById(const std::string& id,
if (extension)
return extension;
}
+ if (include_mask & BLOCKED) {
+ const Extension* extension = blocked_extensions_.GetByID(lowercase_id);
+ if (extension)
+ return extension;
+ }
return NULL;
}
@@ -147,11 +163,21 @@ bool ExtensionRegistry::RemoveBlacklisted(const std::string& id) {
return blacklisted_extensions_.Remove(id);
}
+bool ExtensionRegistry::AddBlocked(
+ const scoped_refptr<const Extension>& extension) {
+ return blocked_extensions_.Insert(extension);
+}
+
+bool ExtensionRegistry::RemoveBlocked(const std::string& id) {
+ return blocked_extensions_.Remove(id);
+}
+
void ExtensionRegistry::ClearAll() {
enabled_extensions_.Clear();
disabled_extensions_.Clear();
terminated_extensions_.Clear();
blacklisted_extensions_.Clear();
+ blocked_extensions_.Clear();
}
void ExtensionRegistry::SetDisabledModificationCallback(

Powered by Google App Engine
This is Rietveld 408576698