Index: extensions/common/extension.cc |
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc |
index ada3b31af2313a14ab11e1f4f32d5f5e4d4cb401..aaf58e358b9ff758fe145f5eaf0dcf419806fafe 100644 |
--- a/extensions/common/extension.cc |
+++ b/extensions/common/extension.cc |
@@ -27,6 +27,7 @@ |
#include "extensions/common/manifest.h" |
#include "extensions/common/manifest_constants.h" |
#include "extensions/common/manifest_handler.h" |
+#include "extensions/common/manifest_handlers/permissions_parser.h" |
#include "extensions/common/permissions/api_permission_set.h" |
#include "extensions/common/permissions/permission_set.h" |
#include "extensions/common/permissions/permissions_data.h" |
@@ -287,15 +288,15 @@ GURL Extension::GetBaseURLFromExtensionId(const std::string& extension_id) { |
} |
bool Extension::HasAPIPermission(APIPermission::ID permission) const { |
- return PermissionsData::HasAPIPermission(this, permission); |
+ return PermissionsData::ForExtension(this)->HasAPIPermission(permission); |
} |
bool Extension::HasAPIPermission(const std::string& permission_name) const { |
- return PermissionsData::HasAPIPermission(this, permission_name); |
+ return PermissionsData::ForExtension(this)->HasAPIPermission(permission_name); |
} |
scoped_refptr<const PermissionSet> Extension::GetActivePermissions() const { |
- return PermissionsData::GetActivePermissions(this); |
+ return PermissionsData::ForExtension(this)->active_permissions(); |
} |
bool Extension::ShowConfigureContextMenus() const { |
@@ -541,8 +542,8 @@ bool Extension::InitFromValue(int flags, base::string16* error) { |
if (is_app() && !LoadAppFeatures(error)) |
return false; |
- permissions_data_.reset(new PermissionsData); |
- if (!permissions_data_->ParsePermissions(this, error)) |
+ permissions_parser_.reset(new PermissionsParser()); |
+ if (!permissions_parser_->Parse(this, error)) |
return false; |
if (manifest_->HasKey(keys::kConvertedFromUserScript)) { |
@@ -553,10 +554,12 @@ bool Extension::InitFromValue(int flags, base::string16* error) { |
if (!LoadSharedFeatures(error)) |
return false; |
+ permissions_parser_->Finalize(this); |
+ permissions_parser_.reset(); |
+ |
finished_parsing_manifest_ = true; |
- permissions_data_->InitializeManifestPermissions(this); |
- permissions_data_->FinalizePermissions(this); |
+ permissions_data_.reset(new PermissionsData(this)); |
return true; |
} |