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

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: Discriminate between explicit and scriptable hosts, other minor changes 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 efe3ba419ecf4e82d62b4b8ff5ac80204abbf91b..b83d22316295956b8de9e2a7adb54840a3f9e611 100644
--- a/extensions/browser/extension_prefs.cc
+++ b/extensions/browser/extension_prefs.cc
@@ -142,6 +142,7 @@ const char kPrefUserDraggedApp[] = "user_dragged_app_ntp";
// permissions because they may differ from those defined in the manifest.
const char kPrefActivePermissions[] = "active_permissions";
const char kPrefGrantedPermissions[] = "granted_permissions";
+const char kPrefPersistedPermissions[] = "persisted_permissions";
// The preference names for PermissionSet values.
const char kPrefAPIs[] = "api";
@@ -1133,6 +1134,28 @@ void ExtensionPrefs::SetActivePermissions(
extension_id, kPrefActivePermissions, permissions);
}
+PermissionSet* ExtensionPrefs::GetPersistedPermissions(
+ const std::string& extension_id) {
+ CHECK(Extension::IdIsValid(extension_id));
+ return ReadPrefAsPermissionSet(extension_id, kPrefPersistedPermissions);
+}
+
+void ExtensionPrefs::AddPersistedPermission(const std::string& extension_id,
+ const PermissionSet* permissions) {
+ scoped_refptr<PermissionSet> old_permissions(
+ GetPersistedPermissions(extension_id));
+ SetExtensionPrefPermissionSet(
+ extension_id,
+ kPrefPersistedPermissions,
+ PermissionSet::CreateUnion(old_permissions.get(), permissions));
+}
+
+void ExtensionPrefs::ClearPersistedPermissions(
+ const std::string& extension_id) {
+ SetExtensionPrefPermissionSet(
+ extension_id, kPrefPersistedPermissions, new PermissionSet());
+}
+
void ExtensionPrefs::SetExtensionRunning(const std::string& extension_id,
bool is_running) {
base::Value* value = new base::FundamentalValue(is_running);
« extensions/browser/extension_prefs.h ('K') | « extensions/browser/extension_prefs.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698