summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'extensions')
-rw-r--r--extensions/common/extension_messages.cc4
-rw-r--r--extensions/common/permissions/permissions_data.cc6
-rw-r--r--extensions/common/permissions/permissions_data.h13
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 {