Index: chrome/common/extensions/extension.cc |
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc |
index 0f13369b7597cab95baabdd99c315bbea8bfe9d0..f683cf486cb901bf07634778243bb552ab897e78 100644 |
--- a/chrome/common/extensions/extension.cc |
+++ b/chrome/common/extensions/extension.cc |
@@ -37,6 +37,7 @@ |
#include "chrome/common/extensions/features/simple_feature_provider.h" |
#include "chrome/common/extensions/file_browser_handler.h" |
#include "chrome/common/extensions/manifest.h" |
+#include "chrome/common/extensions/permissions/permissions_info.h" |
#include "chrome/common/extensions/url_pattern_set.h" |
#include "chrome/common/extensions/user_script.h" |
#include "chrome/common/url_constants.h" |
@@ -281,8 +282,8 @@ Extension::TtsVoice::~TtsVoice() {} |
Extension::OAuth2Info::OAuth2Info() {} |
Extension::OAuth2Info::~OAuth2Info() {} |
-ExtensionOAuth2Scopes Extension::OAuth2Info::GetScopesAsSet() { |
- ExtensionOAuth2Scopes result; |
+OAuth2Scopes Extension::OAuth2Info::GetScopesAsSet() { |
+ OAuth2Scopes result; |
std::copy(scopes.begin(), scopes.end(), |
std::inserter(result, result.begin())); |
return result; |
@@ -1306,7 +1307,7 @@ bool Extension::LoadLaunchContainer(string16* error) { |
} |
bool Extension::LoadSharedFeatures( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
if (!LoadDescription(error) || |
!LoadHomepageURL(error) || |
@@ -1784,7 +1785,7 @@ bool Extension::LoadBackgroundScripts(const std::string& key, string16* error) { |
} |
bool Extension::LoadBackgroundPage( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
if (is_platform_app()) { |
return LoadBackgroundPage( |
@@ -1801,7 +1802,7 @@ bool Extension::LoadBackgroundPage( |
bool Extension::LoadBackgroundPage( |
const std::string& key, |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
base::Value* background_page_value = NULL; |
if (!manifest_->Get(key, &background_page_value)) |
@@ -1823,7 +1824,7 @@ bool Extension::LoadBackgroundPage( |
background_url_ = GURL(background_str); |
// Make sure "background" permission is set. |
- if (!api_permissions.count(ExtensionAPIPermission::kBackground)) { |
+ if (!api_permissions.count(APIPermission::kBackground)) { |
*error = ASCIIToUTF16(errors::kBackgroundPermissionNeeded); |
return false; |
} |
@@ -1848,7 +1849,7 @@ bool Extension::LoadBackgroundPage( |
} |
bool Extension::LoadBackgroundPersistent( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
if (is_platform_app()) { |
background_page_is_persistent_ = false; |
@@ -1873,7 +1874,7 @@ bool Extension::LoadBackgroundPersistent( |
} |
bool Extension::LoadBackgroundAllowJSAccess( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
Value* allow_js_access = NULL; |
if (!manifest_->Get(keys::kBackgroundAllowJsAccess, &allow_js_access)) |
@@ -2050,7 +2051,7 @@ bool Extension::LoadWebIntentServices(string16* error) { |
return true; |
} |
bool Extension::LoadExtensionFeatures( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
if (manifest_->HasKey(keys::kConvertedFromUserScript)) |
manifest_->GetBoolean(keys::kConvertedFromUserScript, |
@@ -2086,7 +2087,7 @@ bool Extension::LoadDevToolsPage(string16* error) { |
} |
bool Extension::LoadInputComponents( |
- const ExtensionAPIPermissionSet& api_permissions, |
+ const APIPermissionSet& api_permissions, |
string16* error) { |
if (!manifest_->HasKey(keys::kInputComponents)) |
return true; |
@@ -2712,7 +2713,7 @@ bool Extension::LoadContentSecurityPolicy(string16* error) { |
} |
bool Extension::LoadAppIsolation( |
- const ExtensionAPIPermissionSet& api_permissions, string16* error) { |
+ const APIPermissionSet& api_permissions, string16* error) { |
// Platform apps always get isolated storage. |
if (is_platform_app()) { |
is_storage_isolated_ = true; |
@@ -2721,7 +2722,7 @@ bool Extension::LoadAppIsolation( |
// Other apps only get it if it is requested _and_ experimental APIs are |
// enabled. |
- if (!api_permissions.count(ExtensionAPIPermission::kExperimental) || |
+ if (!api_permissions.count(APIPermission::kExperimental) || |
!is_app()) { |
return true; |
} |
@@ -3063,9 +3064,9 @@ bool Extension::InitFromValue(int flags, string16* error) { |
base::AutoLock auto_lock(runtime_data_lock_); |
// Initialize permissions with an empty, default permission set. |
- runtime_data_.SetActivePermissions(new ExtensionPermissionSet()); |
- optional_permission_set_ = new ExtensionPermissionSet(); |
- required_permission_set_ = new ExtensionPermissionSet(); |
+ runtime_data_.SetActivePermissions(new PermissionSet()); |
+ optional_permission_set_ = new PermissionSet(); |
+ required_permission_set_ = new PermissionSet(); |
creation_flags_ = flags; |
@@ -3093,7 +3094,7 @@ bool Extension::InitFromValue(int flags, string16* error) { |
if (is_app() && !LoadAppFeatures(error)) |
return false; |
- ExtensionAPIPermissionSet api_permissions; |
+ APIPermissionSet api_permissions; |
URLPatternSet host_permissions; |
if (!ParsePermissions(keys::kPermissions, |
error, |
@@ -3102,7 +3103,7 @@ bool Extension::InitFromValue(int flags, string16* error) { |
return false; |
} |
- ExtensionAPIPermissionSet optional_api_permissions; |
+ APIPermissionSet optional_api_permissions; |
URLPatternSet optional_host_permissions; |
if (!ParsePermissions(keys::kOptionalPermissions, |
error, |
@@ -3128,11 +3129,11 @@ bool Extension::InitFromValue(int flags, string16* error) { |
return false; |
} |
- runtime_data_.SetActivePermissions(new ExtensionPermissionSet( |
+ runtime_data_.SetActivePermissions(new PermissionSet( |
this, api_permissions, host_permissions, oauth2_info_.GetScopesAsSet())); |
- required_permission_set_ = new ExtensionPermissionSet( |
+ required_permission_set_ = new PermissionSet( |
this, api_permissions, host_permissions, oauth2_info_.GetScopesAsSet()); |
- optional_permission_set_ = new ExtensionPermissionSet( |
+ optional_permission_set_ = new PermissionSet( |
optional_api_permissions, optional_host_permissions, URLPatternSet()); |
return true; |
@@ -3292,7 +3293,7 @@ GURL Extension::GetIconURL(int size, |
bool Extension::ParsePermissions(const char* key, |
string16* error, |
- ExtensionAPIPermissionSet* api_permissions, |
+ APIPermissionSet* api_permissions, |
URLPatternSet* host_permissions) { |
if (manifest_->HasKey(key)) { |
ListValue* permissions = NULL; |
@@ -3310,17 +3311,17 @@ bool Extension::ParsePermissions(const char* key, |
return false; |
} |
- // NOTE: We need to get the ExtensionAPIPermission before the Feature |
+ // NOTE: We need to get the APIPermission before the Feature |
// object because the feature system does not know about aliases. |
- ExtensionAPIPermission* permission = |
- ExtensionPermissionsInfo::GetInstance()->GetByName(permission_str); |
+ APIPermission* permission = |
+ PermissionsInfo::GetInstance()->GetByName(permission_str); |
if (permission) { |
extensions::SimpleFeatureProvider* permission_features = |
extensions::SimpleFeatureProvider::GetPermissionFeatures(); |
extensions::Feature* feature = |
permission_features->GetFeature(permission->name()); |
- // The feature should exist since we just got an ExtensionAPIPermission |
+ // The feature should exist since we just got an APIPermission |
// for it. The two systems should be updated together whenever a |
// permission is added. |
CHECK(feature); |
@@ -3341,7 +3342,7 @@ bool Extension::ParsePermissions(const char* key, |
continue; |
} |
- if (permission->id() == ExtensionAPIPermission::kExperimental) { |
+ if (permission->id() == APIPermission::kExperimental) { |
if (!CanSpecifyExperimentalPermission()) { |
*error = ASCIIToUTF16(errors::kExperimentalFlagRequired); |
return false; |
@@ -3398,7 +3399,7 @@ bool Extension::CanSilentlyIncreasePermissions() const { |
} |
bool Extension::CanSpecifyHostPermission(const URLPattern& pattern, |
- const ExtensionAPIPermissionSet& permissions) const { |
+ const APIPermissionSet& permissions) const { |
if (!pattern.match_all_urls() && |
pattern.MatchesScheme(chrome::kChromeUIScheme)) { |
// Regular extensions are only allowed access to chrome://favicon. |
@@ -3407,7 +3408,7 @@ bool Extension::CanSpecifyHostPermission(const URLPattern& pattern, |
// Experimental extensions are also allowed chrome://thumb. |
if (pattern.host() == chrome::kChromeUIThumbnailHost) { |
- return permissions.find(ExtensionAPIPermission::kExperimental) != |
+ return permissions.find(APIPermission::kExperimental) != |
permissions.end(); |
} |
@@ -3423,7 +3424,7 @@ bool Extension::CanSpecifyHostPermission(const URLPattern& pattern, |
} |
bool Extension::HasAPIPermission( |
- ExtensionAPIPermission::ID permission) const { |
+ APIPermission::ID permission) const { |
base::AutoLock auto_lock(runtime_data_lock_); |
return runtime_data_.GetActivePermissions()->HasAPIPermission(permission); |
} |
@@ -3463,10 +3464,10 @@ bool Extension::HasFullPermissions() const { |
return runtime_data_.GetActivePermissions()->HasEffectiveFullAccess(); |
} |
-ExtensionPermissionMessages Extension::GetPermissionMessages() const { |
+PermissionMessages Extension::GetPermissionMessages() const { |
base::AutoLock auto_lock(runtime_data_lock_); |
if (IsTrustedId(id())) |
- return ExtensionPermissionMessages(); |
+ return PermissionMessages(); |
else |
return runtime_data_.GetActivePermissions()->GetPermissionMessages(); |
} |
@@ -3480,12 +3481,12 @@ std::vector<string16> Extension::GetPermissionMessageStrings() const { |
} |
void Extension::SetActivePermissions( |
- const ExtensionPermissionSet* permissions) const { |
+ const PermissionSet* permissions) const { |
base::AutoLock auto_lock(runtime_data_lock_); |
runtime_data_.SetActivePermissions(permissions); |
} |
-scoped_refptr<const ExtensionPermissionSet> |
+scoped_refptr<const PermissionSet> |
Extension::GetActivePermissions() const { |
base::AutoLock auto_lock(runtime_data_lock_); |
return runtime_data_.GetActivePermissions(); |
@@ -3799,7 +3800,7 @@ bool Extension::CheckPlatformAppFeatures(std::string* utf8_error) { |
bool Extension::CheckConflictingFeatures(std::string* utf8_error) { |
if (has_lazy_background_page() && |
- HasAPIPermission(ExtensionAPIPermission::kWebRequest)) { |
+ HasAPIPermission(APIPermission::kWebRequest)) { |
*utf8_error = errors::kWebRequestConflictsWithLazyBackground; |
return false; |
} |
@@ -3810,17 +3811,17 @@ bool Extension::CheckConflictingFeatures(std::string* utf8_error) { |
ExtensionInfo::~ExtensionInfo() {} |
Extension::RuntimeData::RuntimeData() {} |
-Extension::RuntimeData::RuntimeData(const ExtensionPermissionSet* active) |
+Extension::RuntimeData::RuntimeData(const PermissionSet* active) |
: active_permissions_(active) {} |
Extension::RuntimeData::~RuntimeData() {} |
-scoped_refptr<const ExtensionPermissionSet> |
+scoped_refptr<const PermissionSet> |
Extension::RuntimeData::GetActivePermissions() const { |
return active_permissions_; |
} |
void Extension::RuntimeData::SetActivePermissions( |
- const ExtensionPermissionSet* active) { |
+ const PermissionSet* active) { |
active_permissions_ = active; |
} |
@@ -3854,7 +3855,7 @@ UnloadedExtensionInfo::UnloadedExtensionInfo( |
UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( |
const Extension* extension, |
- const ExtensionPermissionSet* permissions, |
+ const PermissionSet* permissions, |
Reason reason) |
: reason(reason), |
extension(extension), |