Chromium Code Reviews| 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 const std::initializer_list<APIPermission::ID>& permissions) { | |
|
Devlin
2017/02/10 19:54:46
nit: if we make this a pass-by-value (or rvalue re
Ivan Šandrk
2017/02/13 13:18:20
This doesn't really compile. I've tried getting it
Devlin
2017/02/13 22:33:59
Oh, grr, you're right. Not something you should h
| |
| 202 for (auto permission : permissions) { | |
| 203 permissions_.insert(PermissionID(permission)); | |
| 204 } | |
| 205 } | |
| 206 | |
| 200 PermissionIDSet::PermissionIDSet(const PermissionIDSet& other) = default; | 207 PermissionIDSet::PermissionIDSet(const PermissionIDSet& other) = default; |
| 201 | 208 |
| 202 PermissionIDSet::~PermissionIDSet() { | 209 PermissionIDSet::~PermissionIDSet() { |
| 203 } | 210 } |
| 204 | 211 |
| 205 void PermissionIDSet::insert(APIPermission::ID permission_id) { | 212 void PermissionIDSet::insert(APIPermission::ID permission_id) { |
| 206 insert(permission_id, base::string16()); | 213 insert(permission_id, base::string16()); |
| 207 } | 214 } |
| 208 | 215 |
| 209 void PermissionIDSet::insert(APIPermission::ID permission_id, | 216 void PermissionIDSet::insert(APIPermission::ID permission_id, |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 229 | 236 |
| 230 std::vector<base::string16> PermissionIDSet::GetAllPermissionParameters() | 237 std::vector<base::string16> PermissionIDSet::GetAllPermissionParameters() |
| 231 const { | 238 const { |
| 232 std::vector<base::string16> params; | 239 std::vector<base::string16> params; |
| 233 for (const auto& permission : permissions_) { | 240 for (const auto& permission : permissions_) { |
| 234 params.push_back(permission.parameter()); | 241 params.push_back(permission.parameter()); |
| 235 } | 242 } |
| 236 return params; | 243 return params; |
| 237 } | 244 } |
| 238 | 245 |
| 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 | |
| 239 bool PermissionIDSet::ContainsID(APIPermission::ID permission_id) const { | 251 bool PermissionIDSet::ContainsID(APIPermission::ID permission_id) const { |
| 240 auto it = permissions_.lower_bound(PermissionID(permission_id)); | 252 return ContainsID(PermissionID(permission_id)); |
| 241 return it != permissions_.end() && it->id() == permission_id; | |
| 242 } | 253 } |
| 243 | 254 |
| 244 bool PermissionIDSet::ContainsAllIDs( | 255 bool PermissionIDSet::ContainsAllIDs( |
| 245 const std::set<APIPermission::ID>& permission_ids) const { | 256 const std::set<APIPermission::ID>& permission_ids) const { |
| 246 return std::includes(permissions_.begin(), permissions_.end(), | 257 return std::includes(permissions_.begin(), permissions_.end(), |
| 247 permission_ids.begin(), permission_ids.end(), | 258 permission_ids.begin(), permission_ids.end(), |
| 248 [] (const PermissionIDCompareHelper& lhs, | 259 [] (const PermissionIDCompareHelper& lhs, |
| 249 const PermissionIDCompareHelper& rhs) { | 260 const PermissionIDCompareHelper& rhs) { |
| 250 return lhs.id < rhs.id; | 261 return lhs.id < rhs.id; |
| 251 }); | 262 }); |
| 252 } | 263 } |
| 253 | 264 |
| 254 bool PermissionIDSet::ContainsAnyID( | 265 bool PermissionIDSet::ContainsAnyID( |
| 255 const std::set<APIPermission::ID>& permission_ids) const { | 266 const std::set<APIPermission::ID>& permission_ids) const { |
| 256 for (APIPermission::ID id : permission_ids) { | 267 for (APIPermission::ID id : permission_ids) { |
| 257 if (ContainsID(id)) | 268 if (ContainsID(id)) |
| 258 return true; | 269 return true; |
| 259 } | 270 } |
| 260 return false; | 271 return false; |
| 261 } | 272 } |
| 262 | 273 |
| 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 | |
| 263 PermissionIDSet PermissionIDSet::GetAllPermissionsWithID( | 282 PermissionIDSet PermissionIDSet::GetAllPermissionsWithID( |
| 264 APIPermission::ID permission_id) const { | 283 APIPermission::ID permission_id) const { |
| 265 PermissionIDSet subset; | 284 PermissionIDSet subset; |
| 266 auto it = permissions_.lower_bound(PermissionID(permission_id)); | 285 auto it = permissions_.lower_bound(PermissionID(permission_id)); |
| 267 while (it != permissions_.end() && it->id() == permission_id) { | 286 while (it != permissions_.end() && it->id() == permission_id) { |
| 268 subset.permissions_.insert(*it); | 287 subset.permissions_.insert(*it); |
| 269 ++it; | 288 ++it; |
| 270 } | 289 } |
| 271 return subset; | 290 return subset; |
| 272 } | 291 } |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 303 | 322 |
| 304 bool PermissionIDSet::empty() const { | 323 bool PermissionIDSet::empty() const { |
| 305 return permissions_.empty(); | 324 return permissions_.empty(); |
| 306 } | 325 } |
| 307 | 326 |
| 308 PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions) | 327 PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions) |
| 309 : permissions_(permissions) { | 328 : permissions_(permissions) { |
| 310 } | 329 } |
| 311 | 330 |
| 312 } // namespace extensions | 331 } // namespace extensions |
| OLD | NEW |