1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/permissions/origin_keyed_permission_action_service.h"
8 #include "components/permissions/request_type.h"
10 namespace permissions {
12 OriginKeyedPermissionActionService::OriginKeyedPermissionActionService() =
14 OriginKeyedPermissionActionService::~OriginKeyedPermissionActionService() =
17 absl::optional<permissions::PermissionActionTime>
18 OriginKeyedPermissionActionService::GetLastActionEntry(
20 ContentSettingsType type) {
21 auto origin_it = map_.find(origin);
22 if (origin_it != map_.end()) {
23 auto content_settings_it = origin_it->second.find(type);
24 if (content_settings_it != origin_it->second.end()) {
25 return content_settings_it->second;
31 void OriginKeyedPermissionActionService::RecordAction(
33 ContentSettingsType type,
34 permissions::PermissionAction action) {
35 map_[origin][type] = std::make_pair(action, base::TimeTicks::Now());
38 void OriginKeyedPermissionActionService::RecordActionWithTimeForTesting(
40 ContentSettingsType type,
41 permissions::PermissionAction action,
42 base::TimeTicks time) {
43 map_[origin][type] = std::make_pair(action, time);
46 } // namespace permissions