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

Unified Diff: extensions/browser/extension_prefs.cc

Issue 396033002: Support "always allow" for runtime script execution (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test attempt Created 6 years, 5 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: extensions/browser/extension_prefs.cc
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc
index 3e04d79de2df1916906599d736584ab4c2fabfdc..8423e9ed9d4fdc43ef128e66969ffb22cbbed49b 100644
--- a/extensions/browser/extension_prefs.cc
+++ b/extensions/browser/extension_prefs.cc
@@ -148,6 +148,7 @@ const char kPrefAPIs[] = "api";
const char kPrefManifestPermissions[] = "manifest_permissions";
const char kPrefExplicitHosts[] = "explicit_host";
const char kPrefScriptableHosts[] = "scriptable_host";
+const char kPrefPersistedPermissions[] = "persisted_permissions";
// The preference names for the old granted permissions scheme.
const char kPrefOldGrantedFullAccess[] = "granted_permissions.full";
@@ -1131,6 +1132,42 @@ void ExtensionPrefs::SetActivePermissions(
extension_id, kPrefActivePermissions, permissions);
}
+bool ExtensionPrefs::GetPersistedPermissions(
+ const std::string& extension_id,
+ URLPatternSet* persisted_permissions) {
+ CHECK(Extension::IdIsValid(extension_id));
+ return ReadPrefAsURLPatternSet(extension_id,
+ kPrefPersistedPermissions,
+ persisted_permissions,
+ UserScript::ValidUserScriptSchemes());
+}
+
+void ExtensionPrefs::AddPersistedPermission(const Extension* extension,
+ const URLPattern* pattern) {
+ DictionaryPrefUpdate update(prefs_, "extensions.settings");
+ base::DictionaryValue* dict = update.Get();
+ base::DictionaryValue* prefer = NULL;
+ dict->GetDictionary(extension->id(), &prefer);
+
+ base::ListValue* pattern_list = NULL;
+
+ if (!prefer->GetList(kPrefPersistedPermissions, &pattern_list)) {
+ prefer->Set(kPrefPersistedPermissions, new base::ListValue());
+ prefer->GetList(kPrefPersistedPermissions, &pattern_list);
+ }
+
+ pattern_list->Append(new base::StringValue(pattern->GetAsString()));
+}
+
+void ExtensionPrefs::ClearPersistedPermissions(const Extension* extension) {
+ DictionaryPrefUpdate update(prefs_, "extensions.settings");
+ base::DictionaryValue* dict = update.Get();
+ base::DictionaryValue* prefer = NULL;
+ dict->GetDictionary(extension->id(), &prefer);
+
+ prefer->Set(kPrefPersistedPermissions, new base::ListValue());
+}
+
void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id,
bool is_running) {
base::Value* value = new base::FundamentalValue(is_running);

Powered by Google App Engine
This is Rietveld 408576698