1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
// Copyright 2020 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/test/test_permissions_client.h"
#include "components/content_settings/core/browser/cookie_settings.h"
#include "components/permissions/permission_actions_history.h"
#include "components/privacy_sandbox/tracking_protection_settings.h"
#include "components/sync_preferences/testing_pref_service_syncable.h"
#include "content/public/browser/web_contents.h"
namespace permissions {
namespace {
scoped_refptr<HostContentSettingsMap> CreateSettingsMap(
sync_preferences::TestingPrefServiceSyncable* prefs) {
HostContentSettingsMap::RegisterProfilePrefs(prefs->registry());
return base::MakeRefCounted<HostContentSettingsMap>(
prefs, false /* is_off_the_record */, false /* store_last_modified */,
false /* restore_session */, false /* should_record_metrics */);
}
} // namespace
TestPermissionsClient::TestPermissionsClient()
: settings_map_(CreateSettingsMap(&prefs_)),
autoblocker_(settings_map_.get()),
permission_actions_history_(&prefs_) {
PermissionActionsHistory::RegisterProfilePrefs(prefs_.registry());
}
TestPermissionsClient::~TestPermissionsClient() {
settings_map_->ShutdownOnUIThread();
}
HostContentSettingsMap* TestPermissionsClient::GetSettingsMap(
content::BrowserContext* browser_context) {
return settings_map_.get();
}
scoped_refptr<content_settings::CookieSettings>
TestPermissionsClient::GetCookieSettings(
content::BrowserContext* browser_context) {
return nullptr;
}
privacy_sandbox::TrackingProtectionSettings*
TestPermissionsClient::GetTrackingProtectionSettings(
content::BrowserContext* browser_context) {
return nullptr;
}
bool TestPermissionsClient::IsSubresourceFilterActivated(
content::BrowserContext* browser_context,
const GURL& url) {
return false;
}
OriginKeyedPermissionActionService*
TestPermissionsClient::GetOriginKeyedPermissionActionService(
content::BrowserContext* browser_context) {
return &origin_keyed_permission_action_service_;
}
PermissionActionsHistory* TestPermissionsClient::GetPermissionActionsHistory(
content::BrowserContext* browser_context) {
return &permission_actions_history_;
}
PermissionDecisionAutoBlocker*
TestPermissionsClient::GetPermissionDecisionAutoBlocker(
content::BrowserContext* browser_context) {
return &autoblocker_;
}
ObjectPermissionContextBase* TestPermissionsClient::GetChooserContext(
content::BrowserContext* browser_context,
ContentSettingsType type) {
return nullptr;
}
void TestPermissionsClient::GetUkmSourceId(
content::BrowserContext* browser_context,
content::WebContents* web_contents,
const GURL& requesting_origin,
GetUkmSourceIdCallback callback) {
if (web_contents) {
ukm::SourceId source_id =
web_contents->GetPrimaryMainFrame()->GetPageUkmSourceId();
std::move(callback).Run(source_id);
} else {
std::move(callback).Run(absl::nullopt);
}
}
bool TestPermissionsClient::HasDevicePermission(
ContentSettingsType type) const {
return has_device_permission_;
}
bool TestPermissionsClient::CanRequestDevicePermission(
ContentSettingsType type) const {
return can_request_device_permission_;
}
void TestPermissionsClient::SetHasDevicePermission(bool has_device_permission) {
has_device_permission_ = has_device_permission;
}
void TestPermissionsClient::SetCanRequestDevicePermission(
bool can_request_device_permission) {
can_request_device_permission_ = can_request_device_permission;
}
} // namespace permissions
|