blob: 10a1e2a74a3b58d1415c61ed849d4b06d680258c [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/permissions/origin_keyed_permission_action_service.h"
#include <utility>
#include "components/permissions/request_type.h"
namespace permissions {
OriginKeyedPermissionActionService::OriginKeyedPermissionActionService() =
default;
OriginKeyedPermissionActionService::~OriginKeyedPermissionActionService() =
default;
std::optional<permissions::PermissionActionTime>
OriginKeyedPermissionActionService::GetLastActionEntry(
const GURL& origin,
ContentSettingsType type) {
auto origin_it = map_.find(origin);
if (origin_it != map_.end()) {
auto content_settings_it = origin_it->second.find(type);
if (content_settings_it != origin_it->second.end()) {
return content_settings_it->second;
}
}
return std::nullopt;
}
void OriginKeyedPermissionActionService::RecordAction(
const GURL& origin,
ContentSettingsType type,
permissions::PermissionAction action) {
map_[origin][type] = std::make_pair(action, base::TimeTicks::Now());
}
void OriginKeyedPermissionActionService::RecordActionWithTimeForTesting(
const GURL& origin,
ContentSettingsType type,
permissions::PermissionAction action,
base::TimeTicks time) {
map_[origin][type] = std::make_pair(action, time);
}
} // namespace permissions