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

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

Issue 348313003: Create withheld permissions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Test fix Created 6 years, 6 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/permissions_updater.cc
diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc
index 9d4a7b6f9dcabf2084940fc0ab69304650d20910..f25fe9f43391bc1ba82e41b0f9b26b582d950924 100644
--- a/chrome/browser/extensions/permissions_updater.cc
+++ b/chrome/browser/extensions/permissions_updater.cc
@@ -112,14 +112,23 @@ void PermissionsUpdater::InitializeActivePermissions(
PermissionsParser::GetRequiredPermissions(extension),
adjusted_active);
- SetActivePermissions(extension, adjusted_active);
+ extension->permissions_data()->InitializePermissions(adjusted_active,
+ extension);
+ // We record the active permissions after PermissionsData finishes
+ // initializing, so that we properly record any withheld permissions.
+ // TODO(rdevlin.cronin) This is badly factored. We should do all the
+ // initialization in one place - either here, in PermissionsData, or in some
+ // other object.
+ ExtensionPrefs::Get(browser_context_)->SetActivePermissions(
+ extension->id(), extension->permissions_data()->active_permissions());
}
void PermissionsUpdater::SetActivePermissions(
const Extension* extension, const PermissionSet* permissions) {
ExtensionPrefs::Get(browser_context_)->SetActivePermissions(
extension->id(), permissions);
- extension->permissions_data()->SetActivePermissions(permissions);
+ extension->permissions_data()->SetPermissions(
+ permissions, extension->permissions_data()->withheld_permissions());
}
void PermissionsUpdater::DispatchEvent(
@@ -168,12 +177,11 @@ void PermissionsUpdater::NotifyPermissionsUpdated(
content::Details<UpdatedExtensionPermissionsInfo>(&info));
ExtensionMsg_UpdatePermissions_Params params;
- params.reason_id = static_cast<int>(reason);
params.extension_id = extension->id();
- params.apis = changed->apis();
- params.manifest_permissions = changed->manifest_permissions();
- params.explicit_hosts = changed->explicit_hosts();
- params.scriptable_hosts = changed->scriptable_hosts();
+ params.active_permissions = ExtensionMsg_PermissionSetStruct(
+ extension->permissions_data()->active_permissions());
+ params.withheld_permissions = ExtensionMsg_PermissionSetStruct(
+ extension->permissions_data()->withheld_permissions());
// Send the new permissions to the renderers.
for (RenderProcessHost::iterator i(RenderProcessHost::AllHostsIterator());

Powered by Google App Engine
This is Rietveld 408576698