12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright 2022 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "components/permissions/permission_request_queue.h"
- #include "base/stl_util.h"
- #include "components/permissions/features.h"
- namespace permissions {
- PermissionRequestQueue::PermissionRequestQueue() = default;
- PermissionRequestQueue::~PermissionRequestQueue() = default;
- bool PermissionRequestQueue::IsEmpty() {
- return queued_requests_.empty();
- }
- size_t PermissionRequestQueue::Count() {
- return queued_requests_.size();
- }
- size_t PermissionRequestQueue::Count(PermissionRequest* request) {
- return base::STLCount(queued_requests_, request);
- }
- void PermissionRequestQueue::Push(permissions::PermissionRequest* request) {
- if (base::FeatureList::IsEnabled(features::kPermissionQuietChip) &&
- !base::FeatureList::IsEnabled(features::kPermissionChip)) {
- queued_requests_.push_front(request);
- } else {
- queued_requests_.push_back(request);
- }
- }
- PermissionRequest* PermissionRequestQueue::Pop() {
- PermissionRequest* next = Peek();
- if (base::FeatureList::IsEnabled(features::kPermissionChip))
- queued_requests_.pop_back();
- else
- queued_requests_.pop_front();
- return next;
- }
- PermissionRequest* PermissionRequestQueue::Peek() {
- return base::FeatureList::IsEnabled(features::kPermissionChip)
- ? queued_requests_.back()
- : queued_requests_.front();
- }
- PermissionRequest* PermissionRequestQueue::FindDuplicate(
- PermissionRequest* request) {
- for (PermissionRequest* queued_request : queued_requests_) {
- if (request->IsDuplicateOf(queued_request)) {
- return queued_request;
- }
- }
- return nullptr;
- }
- PermissionRequestQueue::iterator PermissionRequestQueue::begin() {
- return queued_requests_.begin();
- }
- PermissionRequestQueue::iterator PermissionRequestQueue::end() {
- return queued_requests_.end();
- }
- }; // namespace permissions
|