blob: e24de988473b298d952f2ec54982771c7b4cea72 [file] [log] [blame]
# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//content/public/common/features.gni")
import("//extensions/buildflags/buildflags.gni")
import("//pdf/features.gni")
assert(is_win || is_mac || is_linux || is_chromeos || is_android)
source_set("content_settings") {
sources = [
"content_settings_manager_delegate.h",
"mixed_content_settings_tab_helper.h",
"one_time_permission_provider.h",
"page_specific_content_settings_delegate.h",
"sound_content_setting_observer.h",
]
public_deps = [
"//base",
"//chrome/browser/permissions",
"//chrome/browser/profiles:profile",
"//chrome/browser/safe_browsing:advanced_protection",
"//chrome/browser/ui/tabs:tabs_public",
"//components/browsing_data/content",
"//components/content_settings/browser",
"//components/content_settings/core/browser",
"//components/content_settings/core/common",
"//components/custom_handlers",
"//components/permissions",
"//components/prefs",
"//content/public/browser",
]
allow_circular_includes_from = []
if (is_android) {
sources += [
"javascript_optimizer_provider_android.h",
"request_desktop_site_web_contents_observer_android.h",
]
public_deps += [ "//chrome/browser/preferences:android" ]
} else {
sources += [
"generated_cookie_prefs.h",
"generated_javascript_optimizer_pref.h",
"generated_permission_prompting_behavior_pref.h",
]
if (enable_extensions) {
public_deps += [ "//chrome/browser/extensions" ]
# _perf* uses extensions and extensions uses pref.
allow_circular_includes_from = [ "//chrome/browser/extensions" ]
}
}
}
source_set("impl") {
public_deps = [ "//chrome/browser:browser_public_dependencies" ]
sources = [
"content_settings_manager_delegate.cc",
"mixed_content_settings_tab_helper.cc",
"one_time_permission_provider.cc",
"page_specific_content_settings_delegate.cc",
"sound_content_setting_observer.cc",
]
deps = [
":content_settings",
":content_settings_factory",
":content_settings_util",
"//chrome/browser:browser_process",
"//chrome/browser/media/webrtc",
"//chrome/browser/permissions",
"//chrome/browser/permissions/system",
"//chrome/browser/picture_in_picture",
"//chrome/browser/profiles",
"//chrome/browser/profiles:profile",
"//chrome/browser/search_engines",
"//components/content_settings/browser",
"//components/content_settings/core/browser",
"//components/content_settings/core/browser:cookie_settings",
"//components/pref_registry",
"//components/supervised_user/core/browser",
"//pdf:features",
"//services/metrics/public/cpp:ukm_builders",
"//ui/webui",
]
if (is_android) {
sources += [
"javascript_optimizer_provider_android.cc",
"request_desktop_site_web_contents_observer_android.cc",
]
deps += [
"//chrome/browser/notifications",
"//chrome/browser/notifications:notifications_java_enum_srcjar",
]
} else {
sources += [
"generated_cookie_prefs.cc",
"generated_javascript_optimizer_pref.cc",
"generated_permission_prompting_behavior_pref.cc",
]
deps += [
"//chrome/browser/ui/tabs",
"//components/guest_view/browser",
]
}
if (enable_extensions_core) {
deps += [ "//extensions/browser" ]
}
if (enable_pdf) {
deps += [ "//chrome/browser/pdf" ]
}
}
# Fixes circular deps with different components. For example -
# //c/b/permissions, //c/b/media/webrtc, etc.
source_set("content_settings_factory") {
sources = [
"cookie_settings_factory.h",
"host_content_settings_map_factory.h",
]
public_deps = [
"//base",
"//chrome/browser/profiles:profile",
]
}
source_set("content_settings_factory_impl") {
sources = [
"cookie_settings_factory.cc",
"host_content_settings_map_factory.cc",
]
deps = [
":content_settings",
":content_settings_factory",
"//chrome/browser/notifications",
"//chrome/browser/permissions",
"//chrome/browser/profiles",
"//chrome/browser/profiles:profile",
"//chrome/browser/search_engines",
"//chrome/browser/webid",
"//components/content_settings/core/browser",
"//components/content_settings/core/browser:cookie_settings",
"//components/permissions:permissions_common",
"//components/supervised_user/core/browser",
"//ui/webui",
]
public_deps = [ "//chrome/browser:browser_public_dependencies" ]
if (enable_extensions) {
deps += [ "//extensions/browser" ]
}
if (is_android) {
deps += [
"//chrome/browser/flags:flags_android",
"//chrome/browser/notifications:notifications_java_enum_srcjar",
]
}
}
# Fixes circular deps with different components. For example -
# //c/b/permissions, //c/b/media/webrtc, etc.
source_set("content_settings_util") {
sources = [ "chrome_content_settings_utils.h" ]
}
source_set("content_settings_util_impl") {
sources = [ "chrome_content_settings_utils.cc" ]
deps = [
":content_settings_util",
"//base",
"//content/public/browser",
]
public_deps = [ "//chrome/browser:browser_public_dependencies" ]
if (!is_android) {
deps += [
"//chrome/browser/ui/location_bar",
"//chrome/browser/ui/tabs:tab_strip",
]
}
}
if (!is_android) {
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"mixed_content_settings_tab_helper_browsertest.cc",
"sound_content_setting_observer_browsertest.cc",
]
deps = [
":content_settings",
":content_settings_factory",
"//base",
"//base/test:test_support",
"//chrome/browser/profiles:profile",
"//chrome/browser/ui",
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/content_settings",
"//chrome/test:test_support_ui",
"//components/content_settings/browser",
"//components/content_settings/core/browser",
"//components/network_session_configurator/common",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
"//net:test_support",
"//testing/gtest",
"//third_party/blink/public/common",
"//third_party/blink/public/common:headers",
"//url",
]
if (enable_extensions && enable_plugins) {
sources += [ "content_settings_browsertest.cc" ]
deps += [
"//build:chromeos_buildflags",
"//chrome/browser",
"//chrome/browser/ui/tabs:tab_strip",
"//chrome/common:chrome_features",
"//chrome/common:constants",
"//chrome/test:test_support",
"//components/browsing_data/content",
"//components/content_settings/core/browser:cookie_settings",
"//components/content_settings/core/common",
"//components/prefs",
"//content/public/common:buildflags",
"//pdf:buildflags",
"//services/network/public/cpp",
"//testing/gmock",
"//third_party/widevine/cdm:buildflags",
]
if (enable_pdf) {
deps += [ "//components/pdf/browser" ]
}
}
}
}
source_set("unit_tests") {
testonly = true
sources = [
"content_settings_default_provider_unittest.cc",
"content_settings_origin_value_map_unittest.cc",
"content_settings_policy_provider_unittest.cc",
"content_settings_pref_provider_unittest.cc",
"cookie_settings_factory_unittest.cc",
"host_content_settings_map_unittest.cc",
"mock_settings_observer.cc",
"mock_settings_observer.h",
"one_time_permission_provider_unittest.cc",
"page_specific_content_settings_unittest.cc",
"sound_content_setting_observer_unittest.cc",
]
public_deps = [
"//base",
"//components/content_settings/core/browser",
"//components/content_settings/core/common",
"//testing/gmock",
]
deps = [
":content_settings",
":content_settings_factory",
"//base/test:test_support",
"//build:chromeos_buildflags",
"//chrome/browser",
"//chrome/browser/permissions",
"//chrome/browser/prefs",
"//chrome/browser/profiles:profile",
"//chrome/browser/ui",
"//chrome/browser/ui/tabs:tab_enums",
"//chrome/common",
"//chrome/common:constants",
"//chrome/common:non_code_constants",
"//chrome/test:test_support",
"//components/client_hints/common",
"//components/content_settings/browser",
"//components/content_settings/core/browser:cookie_settings",
"//components/content_settings/core/browser:test_support",
"//components/content_settings/core/common:features",
"//components/content_settings/core/test:test_support",
"//components/permissions",
"//components/permissions:permissions_common",
"//components/pref_registry",
"//components/prefs",
"//components/prefs:test_support",
"//components/safe_browsing/core/common:features",
"//components/sync_preferences",
"//components/sync_preferences:test_support",
"//components/ukm:test_support",
"//components/ukm/content",
"//content/public/browser",
"//content/public/common:buildflags",
"//content/test:test_support",
"//media",
"//net",
"//testing/gtest",
"//third_party/blink/public/common:headers",
"//url",
]
if (is_android) {
sources += [ "javascript_optimizer_provider_android_unittest.cc" ]
} else {
sources += [
"generated_cookie_prefs_unittest.cc",
"generated_javascript_optimizer_pref_unittest.cc",
]
deps += [
"//chrome/browser/extensions",
"//chrome/browser/ui/tabs",
"//chrome/common/extensions",
"//chrome/common/extensions/api",
]
}
}