diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/common/extension_messages.cc | 4 | ||||
-rw-r--r-- | extensions/common/permissions/permissions_data.cc | 6 | ||||
-rw-r--r-- | extensions/common/permissions/permissions_data.h | 13 |
3 files changed, 13 insertions, 10 deletions
diff --git a/extensions/common/extension_messages.cc b/extensions/common/extension_messages.cc index 41b8023..e7fdb51 100644 --- a/extensions/common/extension_messages.cc +++ b/extensions/common/extension_messages.cc @@ -60,8 +60,8 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( id(extension->id()), creation_flags(extension->creation_flags()) { if (include_tab_permissions) { - const extensions::PermissionsData::TabPermissionsMap& tab_permissions = - extension->permissions_data()->tab_specific_permissions(); + extensions::PermissionsData::TabPermissionsMap tab_permissions = + extension->permissions_data()->CopyTabSpecificPermissionsMap(); for (const auto& pair : tab_permissions) { tab_specific_permissions[pair.first] = ExtensionMsg_PermissionSetStruct(*pair.second); diff --git a/extensions/common/permissions/permissions_data.cc b/extensions/common/permissions/permissions_data.cc index fb909d0..0488f0a1 100644 --- a/extensions/common/permissions/permissions_data.cc +++ b/extensions/common/permissions/permissions_data.cc @@ -320,6 +320,12 @@ bool PermissionsData::CanCaptureVisiblePage(int tab_id, return false; } +PermissionsData::TabPermissionsMap +PermissionsData::CopyTabSpecificPermissionsMap() const { + base::AutoLock auto_lock(runtime_lock_); + return tab_specific_permissions_; +} + scoped_refptr<const PermissionSet> PermissionsData::GetTabSpecificPermissions( int tab_id) const { base::AutoLock auto_lock(runtime_lock_); diff --git a/extensions/common/permissions/permissions_data.h b/extensions/common/permissions/permissions_data.h index e0f9b10..6a84566 100644 --- a/extensions/common/permissions/permissions_data.h +++ b/extensions/common/permissions/permissions_data.h @@ -201,24 +201,21 @@ class PermissionsData { // page itself. bool CanCaptureVisiblePage(int tab_id, std::string* error) const; - const scoped_refptr<const PermissionSet>& active_permissions() const { + // Returns the tab permissions map. + TabPermissionsMap CopyTabSpecificPermissionsMap() const; + + scoped_refptr<const PermissionSet> active_permissions() const { // We lock so that we can't also be setting the permissions while returning. base::AutoLock auto_lock(runtime_lock_); return active_permissions_unsafe_; } - const scoped_refptr<const PermissionSet>& withheld_permissions() const { + scoped_refptr<const PermissionSet> withheld_permissions() const { // We lock so that we can't also be setting the permissions while returning. base::AutoLock auto_lock(runtime_lock_); return withheld_permissions_unsafe_; } - const TabPermissionsMap& tab_specific_permissions() const { - // We lock so that we can't also be setting the permissions while returning. - base::AutoLock auto_lock(runtime_lock_); - return tab_specific_permissions_; - } - #if defined(UNIT_TEST) scoped_refptr<const PermissionSet> GetTabSpecificPermissionsForTesting( int tab_id) const { |