123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // Copyright 2021 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/privacy_sandbox/privacy_sandbox_test_util.h"
- #include "base/feature_list.h"
- #include "components/content_settings/core/browser/cookie_settings.h"
- #include "components/content_settings/core/browser/host_content_settings_map.h"
- #include "components/content_settings/core/common/pref_names.h"
- #include "components/content_settings/core/test/content_settings_mock_provider.h"
- #include "components/content_settings/core/test/content_settings_test_utils.h"
- #include "components/privacy_sandbox/privacy_sandbox_features.h"
- #include "components/privacy_sandbox/privacy_sandbox_prefs.h"
- #include "components/sync_preferences/testing_pref_service_syncable.h"
- namespace privacy_sandbox_test_util {
- MockPrivacySandboxObserver::MockPrivacySandboxObserver() = default;
- MockPrivacySandboxObserver::~MockPrivacySandboxObserver() = default;
- MockPrivacySandboxSettingsDelegate::MockPrivacySandboxSettingsDelegate() =
- default;
- MockPrivacySandboxSettingsDelegate::~MockPrivacySandboxSettingsDelegate() =
- default;
- void SetupTestState(
- sync_preferences::TestingPrefServiceSyncable* testing_pref_service,
- HostContentSettingsMap* map,
- bool privacy_sandbox_enabled,
- bool block_third_party_cookies,
- ContentSetting default_cookie_setting,
- const std::vector<CookieContentSettingException>& user_cookie_exceptions,
- ContentSetting managed_cookie_setting,
- const std::vector<CookieContentSettingException>&
- managed_cookie_exceptions) {
- // Setup block-third-party-cookies settings.
- testing_pref_service->SetUserPref(
- prefs::kCookieControlsMode,
- std::make_unique<base::Value>(static_cast<int>(
- block_third_party_cookies
- ? content_settings::CookieControlsMode::kBlockThirdParty
- : content_settings::CookieControlsMode::kOff)));
- // Setup cookie content settings.
- auto user_provider = std::make_unique<content_settings::MockProvider>();
- auto managed_provider = std::make_unique<content_settings::MockProvider>();
- if (default_cookie_setting != kNoSetting) {
- user_provider->SetWebsiteSetting(
- ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(),
- ContentSettingsType::COOKIES, base::Value(default_cookie_setting));
- }
- for (const auto& exception : user_cookie_exceptions) {
- user_provider->SetWebsiteSetting(
- ContentSettingsPattern::FromString(exception.primary_pattern),
- ContentSettingsPattern::FromString(exception.secondary_pattern),
- ContentSettingsType::COOKIES, base::Value(exception.content_setting));
- }
- if (managed_cookie_setting != kNoSetting) {
- managed_provider->SetWebsiteSetting(
- ContentSettingsPattern::Wildcard(), ContentSettingsPattern::Wildcard(),
- ContentSettingsType::COOKIES, base::Value(managed_cookie_setting));
- }
- for (const auto& exception : managed_cookie_exceptions) {
- managed_provider->SetWebsiteSetting(
- ContentSettingsPattern::FromString(exception.primary_pattern),
- ContentSettingsPattern::FromString(exception.secondary_pattern),
- ContentSettingsType::COOKIES, base::Value(exception.content_setting));
- }
- content_settings::TestUtils::OverrideProvider(
- map, std::move(user_provider), HostContentSettingsMap::DEFAULT_PROVIDER);
- content_settings::TestUtils::OverrideProvider(
- map, std::move(managed_provider),
- HostContentSettingsMap::POLICY_PROVIDER);
- // Only adjust the Privacy Sandbox preference which should be being consulted
- // based on feature state.
- if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) {
- testing_pref_service->SetUserPref(
- prefs::kPrivacySandboxApisEnabledV2,
- std::make_unique<base::Value>(privacy_sandbox_enabled));
- } else {
- testing_pref_service->SetUserPref(
- prefs::kPrivacySandboxApisEnabled,
- std::make_unique<base::Value>(privacy_sandbox_enabled));
- }
- }
- } // namespace privacy_sandbox_test_util
|