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

Side by Side Diff: chrome/common/extensions/extension.cc

Issue 10824149: Fix memory leak in ActiveTabPermissionManager. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 4 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 unified diff | Download patch
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include <ostream> 7 #include <ostream>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 3811 matching lines...) Expand 10 before | Expand all | Expand 10 after
3822 } 3822 }
3823 3823
3824 scoped_refptr<const PermissionSet> Extension::GetTabSpecificPermissions( 3824 scoped_refptr<const PermissionSet> Extension::GetTabSpecificPermissions(
3825 int tab_id) const { 3825 int tab_id) const {
3826 base::AutoLock auto_lock(runtime_data_lock_); 3826 base::AutoLock auto_lock(runtime_data_lock_);
3827 return runtime_data_.GetTabSpecificPermissions(tab_id); 3827 return runtime_data_.GetTabSpecificPermissions(tab_id);
3828 } 3828 }
3829 3829
3830 void Extension::UpdateTabSpecificPermissions( 3830 void Extension::UpdateTabSpecificPermissions(
3831 int tab_id, 3831 int tab_id,
3832 const PermissionSet* permissions) const { 3832 scoped_refptr<const PermissionSet> permissions) const {
3833 base::AutoLock auto_lock(runtime_data_lock_); 3833 base::AutoLock auto_lock(runtime_data_lock_);
3834 runtime_data_.UpdateTabSpecificPermissions(tab_id, permissions); 3834 runtime_data_.UpdateTabSpecificPermissions(tab_id, permissions);
3835 } 3835 }
3836 3836
3837 void Extension::ClearTabSpecificPermissions(int tab_id) const { 3837 void Extension::ClearTabSpecificPermissions(int tab_id) const {
3838 base::AutoLock auto_lock(runtime_data_lock_); 3838 base::AutoLock auto_lock(runtime_data_lock_);
3839 runtime_data_.ClearTabSpecificPermissions(tab_id); 3839 runtime_data_.ClearTabSpecificPermissions(tab_id);
3840 } 3840 }
3841 3841
3842 bool Extension::CheckPlatformAppFeatures(std::string* utf8_error) { 3842 bool Extension::CheckPlatformAppFeatures(std::string* utf8_error) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
3880 3880
3881 scoped_refptr<const PermissionSet> 3881 scoped_refptr<const PermissionSet>
3882 Extension::RuntimeData::GetTabSpecificPermissions(int tab_id) const { 3882 Extension::RuntimeData::GetTabSpecificPermissions(int tab_id) const {
3883 CHECK_GE(tab_id, 0); 3883 CHECK_GE(tab_id, 0);
3884 TabPermissionsMap::const_iterator it = tab_specific_permissions_.find(tab_id); 3884 TabPermissionsMap::const_iterator it = tab_specific_permissions_.find(tab_id);
3885 return (it != tab_specific_permissions_.end()) ? it->second : NULL; 3885 return (it != tab_specific_permissions_.end()) ? it->second : NULL;
3886 } 3886 }
3887 3887
3888 void Extension::RuntimeData::UpdateTabSpecificPermissions( 3888 void Extension::RuntimeData::UpdateTabSpecificPermissions(
3889 int tab_id, 3889 int tab_id,
3890 const PermissionSet* permissions) { 3890 scoped_refptr<const PermissionSet> permissions) {
3891 CHECK_GE(tab_id, 0); 3891 CHECK_GE(tab_id, 0);
3892 if (tab_specific_permissions_.count(tab_id)) { 3892 if (tab_specific_permissions_.count(tab_id)) {
3893 tab_specific_permissions_[tab_id] = PermissionSet::CreateUnion( 3893 tab_specific_permissions_[tab_id] = PermissionSet::CreateUnion(
3894 tab_specific_permissions_[tab_id], 3894 tab_specific_permissions_[tab_id],
3895 permissions); 3895 permissions.get());
3896 } else { 3896 } else {
3897 tab_specific_permissions_[tab_id] = permissions; 3897 tab_specific_permissions_[tab_id] = permissions;
3898 } 3898 }
3899 } 3899 }
3900 3900
3901 void Extension::RuntimeData::ClearTabSpecificPermissions(int tab_id) { 3901 void Extension::RuntimeData::ClearTabSpecificPermissions(int tab_id) {
3902 CHECK_GE(tab_id, 0); 3902 CHECK_GE(tab_id, 0);
3903 tab_specific_permissions_.erase(tab_id); 3903 tab_specific_permissions_.erase(tab_id);
3904 } 3904 }
3905 3905
3906 UnloadedExtensionInfo::UnloadedExtensionInfo( 3906 UnloadedExtensionInfo::UnloadedExtensionInfo(
3907 const Extension* extension, 3907 const Extension* extension,
3908 extension_misc::UnloadedExtensionReason reason) 3908 extension_misc::UnloadedExtensionReason reason)
3909 : reason(reason), 3909 : reason(reason),
3910 already_disabled(false), 3910 already_disabled(false),
3911 extension(extension) {} 3911 extension(extension) {}
3912 3912
3913 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 3913 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
3914 const Extension* extension, 3914 const Extension* extension,
3915 const PermissionSet* permissions, 3915 const PermissionSet* permissions,
3916 Reason reason) 3916 Reason reason)
3917 : reason(reason), 3917 : reason(reason),
3918 extension(extension), 3918 extension(extension),
3919 permissions(permissions) {} 3919 permissions(permissions) {}
3920 3920
3921 } // namespace extensions 3921 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698