| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "extensions/common/permissions/api_permission_set.h" | 5 #include "extensions/common/permissions/api_permission_set.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 const base::string16& parameter) | 190 const base::string16& parameter) |
| 191 : std::pair<APIPermission::ID, base::string16>(id, parameter) { | 191 : std::pair<APIPermission::ID, base::string16>(id, parameter) { |
| 192 } | 192 } |
| 193 | 193 |
| 194 PermissionID::~PermissionID() { | 194 PermissionID::~PermissionID() { |
| 195 } | 195 } |
| 196 | 196 |
| 197 PermissionIDSet::PermissionIDSet() { | 197 PermissionIDSet::PermissionIDSet() { |
| 198 } | 198 } |
| 199 | 199 |
| 200 PermissionIDSet::PermissionIDSet( | |
| 201 std::initializer_list<APIPermission::ID> permissions) { | |
| 202 for (auto permission : permissions) { | |
| 203 permissions_.insert(PermissionID(permission)); | |
| 204 } | |
| 205 } | |
| 206 | |
| 207 PermissionIDSet::PermissionIDSet(const PermissionIDSet& other) = default; | 200 PermissionIDSet::PermissionIDSet(const PermissionIDSet& other) = default; |
| 208 | 201 |
| 209 PermissionIDSet::~PermissionIDSet() { | 202 PermissionIDSet::~PermissionIDSet() { |
| 210 } | 203 } |
| 211 | 204 |
| 212 void PermissionIDSet::insert(APIPermission::ID permission_id) { | 205 void PermissionIDSet::insert(APIPermission::ID permission_id) { |
| 213 insert(permission_id, base::string16()); | 206 insert(permission_id, base::string16()); |
| 214 } | 207 } |
| 215 | 208 |
| 216 void PermissionIDSet::insert(APIPermission::ID permission_id, | 209 void PermissionIDSet::insert(APIPermission::ID permission_id, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 236 | 229 |
| 237 std::vector<base::string16> PermissionIDSet::GetAllPermissionParameters() | 230 std::vector<base::string16> PermissionIDSet::GetAllPermissionParameters() |
| 238 const { | 231 const { |
| 239 std::vector<base::string16> params; | 232 std::vector<base::string16> params; |
| 240 for (const auto& permission : permissions_) { | 233 for (const auto& permission : permissions_) { |
| 241 params.push_back(permission.parameter()); | 234 params.push_back(permission.parameter()); |
| 242 } | 235 } |
| 243 return params; | 236 return params; |
| 244 } | 237 } |
| 245 | 238 |
| 246 bool PermissionIDSet::ContainsID(PermissionID permission_id) const { | |
| 247 auto it = permissions_.lower_bound(permission_id); | |
| 248 return it != permissions_.end() && it->id() == permission_id.id(); | |
| 249 } | |
| 250 | |
| 251 bool PermissionIDSet::ContainsID(APIPermission::ID permission_id) const { | 239 bool PermissionIDSet::ContainsID(APIPermission::ID permission_id) const { |
| 252 return ContainsID(PermissionID(permission_id)); | 240 auto it = permissions_.lower_bound(PermissionID(permission_id)); |
| 241 return it != permissions_.end() && it->id() == permission_id; |
| 253 } | 242 } |
| 254 | 243 |
| 255 bool PermissionIDSet::ContainsAllIDs( | 244 bool PermissionIDSet::ContainsAllIDs( |
| 256 const std::set<APIPermission::ID>& permission_ids) const { | 245 const std::set<APIPermission::ID>& permission_ids) const { |
| 257 return std::includes(permissions_.begin(), permissions_.end(), | 246 return std::includes(permissions_.begin(), permissions_.end(), |
| 258 permission_ids.begin(), permission_ids.end(), | 247 permission_ids.begin(), permission_ids.end(), |
| 259 [] (const PermissionIDCompareHelper& lhs, | 248 [] (const PermissionIDCompareHelper& lhs, |
| 260 const PermissionIDCompareHelper& rhs) { | 249 const PermissionIDCompareHelper& rhs) { |
| 261 return lhs.id < rhs.id; | 250 return lhs.id < rhs.id; |
| 262 }); | 251 }); |
| 263 } | 252 } |
| 264 | 253 |
| 265 bool PermissionIDSet::ContainsAnyID( | 254 bool PermissionIDSet::ContainsAnyID( |
| 266 const std::set<APIPermission::ID>& permission_ids) const { | 255 const std::set<APIPermission::ID>& permission_ids) const { |
| 267 for (APIPermission::ID id : permission_ids) { | 256 for (APIPermission::ID id : permission_ids) { |
| 268 if (ContainsID(id)) | 257 if (ContainsID(id)) |
| 269 return true; | 258 return true; |
| 270 } | 259 } |
| 271 return false; | 260 return false; |
| 272 } | 261 } |
| 273 | 262 |
| 274 bool PermissionIDSet::ContainsAnyID(const PermissionIDSet& other) const { | |
| 275 for (const auto& id : other) { | |
| 276 if (ContainsID(id)) | |
| 277 return true; | |
| 278 } | |
| 279 return false; | |
| 280 } | |
| 281 | |
| 282 PermissionIDSet PermissionIDSet::GetAllPermissionsWithID( | 263 PermissionIDSet PermissionIDSet::GetAllPermissionsWithID( |
| 283 APIPermission::ID permission_id) const { | 264 APIPermission::ID permission_id) const { |
| 284 PermissionIDSet subset; | 265 PermissionIDSet subset; |
| 285 auto it = permissions_.lower_bound(PermissionID(permission_id)); | 266 auto it = permissions_.lower_bound(PermissionID(permission_id)); |
| 286 while (it != permissions_.end() && it->id() == permission_id) { | 267 while (it != permissions_.end() && it->id() == permission_id) { |
| 287 subset.permissions_.insert(*it); | 268 subset.permissions_.insert(*it); |
| 288 ++it; | 269 ++it; |
| 289 } | 270 } |
| 290 return subset; | 271 return subset; |
| 291 } | 272 } |
| (...skipping 30 matching lines...) Expand all Loading... |
| 322 | 303 |
| 323 bool PermissionIDSet::empty() const { | 304 bool PermissionIDSet::empty() const { |
| 324 return permissions_.empty(); | 305 return permissions_.empty(); |
| 325 } | 306 } |
| 326 | 307 |
| 327 PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions) | 308 PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions) |
| 328 : permissions_(permissions) { | 309 : permissions_(permissions) { |
| 329 } | 310 } |
| 330 | 311 |
| 331 } // namespace extensions | 312 } // namespace extensions |
| OLD | NEW |