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

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: 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 7799f0d04dde7d06fae7238dd78a9b00f5a59883..5b1f22019895fab0aa1c1a63f6fd411410a661b9 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";
@@ -1130,6 +1131,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);
+ }
gpdavis 2014/07/15 21:56:38 If persisted permissions do not exist, we initiali
Devlin 2014/07/15 22:11:01 Probably an URLPattern. Url is too specific; Pref
+
+ pattern_list->Append(new base::StringValue(pattern->GetAsString()));
+}
+
+void ExtensionPrefs::ClearPersistedPermissions(const Extension* extension) {
gpdavis 2014/07/15 21:56:38 This method will allow us to place a "Clear persis
+ 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);
« chrome/browser/extensions/permissions_updater.cc ('K') | « extensions/browser/extension_prefs.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698