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

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

Issue 7003098: Start refractoring extension permissions into ExtensionPermissionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: See if rebasing fixes the tests... Created 9 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/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index b5b7ae9f2abba597de3beb72a565ba886c4efee7..a8973f6ee595538c265252072264ae98867c28f8 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -747,6 +747,8 @@ bool ExtensionService::UpdateExtension(
installer->set_install_source(pending_extension_info.install_source());
else if (extension)
installer->set_install_source(extension->location());
+ if (pending_extension_info.install_silently())
+ installer->set_allow_silent_install(true);
installer->set_delete_source(true);
installer->set_original_url(download_url);
installer->set_install_cause(extension_misc::INSTALL_CAUSE_UPDATE);
@@ -965,11 +967,8 @@ void ExtensionService::GrantPermissions(const Extension* extension) {
// We only maintain the granted permissions prefs for INTERNAL extensions.
CHECK_EQ(Extension::INTERNAL, extension->location());
- URLPatternSet effective_hosts = extension->GetEffectiveHostPermissions();
extension_prefs_->AddGrantedPermissions(extension->id(),
- extension->HasFullPermissions(),
- extension->api_permissions(),
- effective_hosts);
+ extension->permission_set());
}
void ExtensionService::GrantPermissionsAndEnableExtension(
@@ -1208,18 +1207,17 @@ void ExtensionService::RecordPermissionMessagesHistogram(
base::Histogram* counter = base::LinearHistogram::FactoryGet(
histogram,
1,
- Extension::PermissionMessage::ID_ENUM_BOUNDARY,
- Extension::PermissionMessage::ID_ENUM_BOUNDARY + 1,
+ ExtensionPermissionMessage::kEnumBoundary,
+ ExtensionPermissionMessage::kEnumBoundary + 1,
base::Histogram::kUmaTargetedHistogramFlag);
- std::vector<Extension::PermissionMessage> permissions =
- e->GetPermissionMessages();
+ ExtensionPermissionMessages permissions = e->GetPermissionMessages();
if (permissions.empty()) {
- counter->Add(Extension::PermissionMessage::ID_NONE);
+ counter->Add(ExtensionPermissionMessage::kNone);
} else {
- std::vector<Extension::PermissionMessage>::iterator it;
- for (it = permissions.begin(); it != permissions.end(); ++it)
- counter->Add(it->message_id());
+ for (ExtensionPermissionMessages::iterator it = permissions.begin();
+ it != permissions.end(); ++it)
+ counter->Add(it->id());
}
}
@@ -1938,10 +1936,6 @@ void ExtensionService::DisableIfPrivilegeIncrease(const Extension* extension) {
// can upgrade without requiring this user's approval.
const Extension* old = GetExtensionByIdInternal(extension->id(),
true, true, false);
- bool granted_full_access;
- std::set<std::string> granted_apis;
- URLPatternSet granted_extent;
-
bool is_extension_upgrade = old != NULL;
bool is_privilege_increase = false;
@@ -1950,23 +1944,16 @@ void ExtensionService::DisableIfPrivilegeIncrease(const Extension* extension) {
if (extension->location() == Extension::INTERNAL) {
// Add all the recognized permissions if the granted permissions list
// hasn't been initialized yet.
- if (!extension_prefs_->GetGrantedPermissions(extension->id(),
- &granted_full_access,
- &granted_apis,
- &granted_extent)) {
- GrantPermissions(extension);
- CHECK(extension_prefs_->GetGrantedPermissions(extension->id(),
- &granted_full_access,
- &granted_apis,
- &granted_extent));
- }
+ scoped_ptr<ExtensionPermissionSet> granted_permissions(
+ extension_prefs_->GetGrantedPermissions(extension->id()));
+ CHECK(granted_permissions.get());
// Here, we check if an extension's privileges have increased in a manner
// that requires the user's approval. This could occur because the browser
// upgraded and recognized additional privileges, or an extension upgrades
// to a version that requires additional privileges.
- is_privilege_increase = Extension::IsPrivilegeIncrease(
- granted_full_access, granted_apis, granted_extent, extension);
+ is_privilege_increase =
+ granted_permissions->HasLessPrivilegesThan(extension->permission_set());
}
if (is_extension_upgrade) {
@@ -2023,7 +2010,6 @@ void ExtensionService::OnLoadSingleExtension(const Extension* extension) {
prompt->ShowPrompt();
return; // continues in SimpleExtensionLoadPrompt::InstallUI*
}
-
OnExtensionInstalled(extension);
}
« no previous file with comments | « chrome/browser/extensions/extension_prefs_unittest.cc ('k') | chrome/browser/extensions/extension_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698