blob: 5b1841f0e4ccd0096427d839289ece2a9fda3deb [file]
# 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.
import("//build/config/chromeos/ui_mode.gni")
import("//extensions/buildflags/buildflags.gni")
import("//third_party/jni_zero/jni_zero.gni")
import("//tools/grit/grit_rule.gni")
source_set("supervised_user") {
public = [
"child_accounts/child_account_service_factory.h",
"child_accounts/list_family_members_service_factory.h",
"chrome_supervised_user_service_platform_delegate_base.h",
"chrome_supervised_user_web_content_handler_base.h",
"classify_url_navigation_throttle.h",
"family_link_settings_service_factory.h",
"metrics_service_accessor_delegate.h",
"supervised_user_browser_utils.h",
"supervised_user_google_auth_navigation_throttle.h",
"supervised_user_interstitial_tab_closer.h",
"supervised_user_metrics_service_factory.h",
"supervised_user_navigation_observer.h",
"supervised_user_service_factory.h",
"supervised_user_url_filtering_service_factory.h",
]
public_deps = [
"//base",
"//chrome/browser/profiles",
"//chrome/common:supervised_user_commands_mojom",
"//components/keyed_service/core",
"//components/prefs",
"//components/sessions",
"//components/supervised_user/core/browser",
"//components/supervised_user/core/browser:device_parental_controls",
"//components/supervised_user/core/browser:synthetic_field_trial_delegate",
"//components/supervised_user/core/common",
"//content/public/browser",
"//url",
]
if (!is_android) {
public += [
"desktop/supervised_user_service_platform_delegate.h",
"supervised_user_verification_controller_client.h",
]
public_deps += [
"//components/security_interstitials/content:security_interstitial_page",
]
}
if (is_linux || is_mac || is_win) {
public += [
"linux_mac_windows/parent_access_dialog_result_observer.h",
"linux_mac_windows/parent_access_view.h",
"linux_mac_windows/supervised_user_extensions_metrics_delegate_impl.h",
"linux_mac_windows/supervised_user_web_content_handler_impl.h",
"supervised_user_verification_page.h",
"supervised_user_verification_page_blocked_sites.h",
"supervised_user_verification_page_youtube.h",
]
public_deps += [
"//components/tabs:public",
"//ui/base/interaction",
"//ui/views",
"//ui/views/controls/webview",
]
}
if (is_chromeos_ash) {
public += [
"chromeos/supervised_user_favicon_request_handler.h",
"chromeos/supervised_user_web_content_handler_impl.h",
]
public_deps += [
"//chrome/browser/ui/webui/ash/parent_access",
"//components/favicon_base",
]
}
if (enable_extensions_core) {
public += [ "supervised_user_extensions_metrics_recorder.h" ]
public_deps += [ "//extensions/browser" ]
}
}
source_set("impl") {
sources = [
"child_accounts/child_account_service_factory.cc",
"child_accounts/list_family_members_service_factory.cc",
"chrome_supervised_user_service_platform_delegate_base.cc",
"chrome_supervised_user_web_content_handler_base.cc",
"classify_url_navigation_throttle.cc",
"family_link_settings_service_factory.cc",
"metrics_service_accessor_delegate.cc",
"supervised_user_browser_utils.cc",
"supervised_user_google_auth_navigation_throttle.cc",
"supervised_user_interstitial_tab_closer.cc",
"supervised_user_metrics_service_factory.cc",
"supervised_user_navigation_observer.cc",
"supervised_user_service_factory.cc",
"supervised_user_url_filtering_service_factory.cc",
]
public_deps = [
":supervised_user",
"//chrome/browser:browser_public_dependencies",
]
deps = [
"//chrome/browser:browser_process",
"//chrome/browser:global_features",
"//chrome/browser/content_settings:content_settings_factory",
"//chrome/browser/favicon",
"//chrome/browser/history",
"//chrome/browser/metrics",
"//chrome/browser/prefs",
"//chrome/browser/profiles",
"//chrome/browser/signin",
"//chrome/browser/sync",
"//chrome/browser/ui/browser_window",
"//components/history/content/browser",
"//components/infobars/content",
"//components/keyed_service/core",
"//components/prefs",
"//components/signin/public/identity_manager",
"//components/supervised_user/core/browser",
"//components/supervised_user/core/browser:synthetic_field_trial_delegate",
"//components/supervised_user/core/common",
"//components/user_manager:common",
"//components/variations/service",
"//content/public/browser",
]
if (is_android) {
deps += [
"//components/supervised_user/core/browser/android",
"//ui/android",
]
}
if (!is_android) {
sources += [
"desktop/supervised_user_service_platform_delegate.cc",
"supervised_user_verification_controller_client.cc",
]
deps += [
"//chrome/browser/profiles:profile",
"//components/security_interstitials/content:security_interstitial_page",
]
}
if (is_linux || is_mac || is_win) {
sources += [
"linux_mac_windows/parent_access_dialog_result_observer.cc",
"linux_mac_windows/parent_access_view.cc",
"linux_mac_windows/supervised_user_extensions_metrics_delegate_impl.cc",
"linux_mac_windows/supervised_user_web_content_handler_impl.cc",
"supervised_user_verification_page.cc",
"supervised_user_verification_page_blocked_sites.cc",
"supervised_user_verification_page_youtube.cc",
]
deps += [
"//chrome/browser/signin:signin_promo",
"//chrome/browser/ui:browser_element_identifiers",
"//chrome/browser/ui/color:color_headers",
"//components/constrained_window",
]
}
if (is_chromeos_ash) {
sources += [
"chromeos/supervised_user_favicon_request_handler.cc",
"chromeos/supervised_user_web_content_handler_impl.cc",
]
deps += [ "//chrome/browser/ash/profiles" ]
}
}
source_set("unit_tests") {
testonly = true
sources = [
"classify_url_navigation_throttle_unittest.cc",
"supervised_user_browser_utils_unittest.cc",
"supervised_user_google_auth_navigation_throttle_unittest.cc",
]
deps = [
":test_support",
"//base",
"//base/test:test_support",
"//chrome/browser",
"//chrome/browser/profiles:profile",
"//chrome/browser/signin",
"//chrome/browser/sync",
"//chrome/test:test_support",
"//components/safe_search_api:test_support",
"//components/signin/public/base",
"//components/signin/public/base:test_support",
"//components/signin/public/identity_manager",
"//components/signin/public/identity_manager:test_support",
"//components/supervised_user/core/browser",
"//components/supervised_user/core/browser:device_parental_controls",
"//components/supervised_user/core/browser:test_support",
"//components/supervised_user/core/common",
"//components/supervised_user/test_support",
"//components/sync:test_support",
"//content/test:test_support",
"//testing/gtest",
]
if (is_android) {
sources += [
"android/favicon_fetcher_unittest.cc",
"android/supervised_user_web_content_handler_impl_unittest.cc",
]
deps += [
"//components/supervised_user/core/browser/android",
"//services/network:test_support",
]
}
if (is_linux || is_mac || is_win) {
sources += [ "linux_mac_windows/supervised_user_extensions_metrics_delegate_impl_unittest.cc" ]
}
if (is_chromeos_ash) {
sources += [
"chromeos/mock_large_icon_service.cc",
"chromeos/mock_large_icon_service.h",
"chromeos/supervised_user_favicon_request_handler_unittest.cc",
"chromeos/supervised_user_web_content_handler_impl_unittest.cc",
]
deps += [
"//chrome/browser/ash/login/users:test_support",
"//components/favicon_base",
]
}
if (enable_extensions_core) {
sources += [
"supervised_user_extension_unittest.cc",
"supervised_user_extensions_manager_unittest.cc",
"supervised_user_url_filter_extensions_unittest.cc",
]
deps += [
"//chrome/browser/extensions",
"//extensions/browser",
"//extensions/common",
]
}
}
if (!is_android) {
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"advanced_content_restrictions_browsertest.cc",
"classify_url_navigation_throttle_browsertest.cc",
"family_link_url_filter_browsertest.cc",
"supervised_user_incognito_browsertest.cc",
"supervised_user_navigation_throttle_browsertest.cc",
"supervised_user_regional_url_filter_browsertest.cc",
"supervised_user_service_browsertest.cc",
"supervised_user_url_filtering_service_common_browsertest.cc",
"url_filter_browsertest.cc",
]
deps = [
":test_support",
"//base",
"//base/test:test_support",
"//chrome/browser",
"//chrome/browser:browser_process",
"//chrome/browser/content_settings:content_settings_factory",
"//chrome/browser/history",
"//chrome/browser/profiles",
"//chrome/browser/profiles:profile",
"//chrome/browser/signin",
"//chrome/browser/ssl",
"//chrome/browser/ui",
"//chrome/browser/ui:test_support",
"//chrome/browser/ui/browser_window",
"//chrome/common",
"//chrome/test:test_support",
"//chrome/test/supervised_user:live_tests",
"//chrome/test/supervised_user:test_support",
"//components/content_settings/core/browser",
"//components/content_settings/core/browser:cookie_settings",
"//components/content_settings/core/common",
"//components/history/core/browser",
"//components/infobars/content",
"//components/infobars/core",
"//components/prefs",
"//components/safe_search_api",
"//components/supervised_user/core/browser",
"//components/supervised_user/core/browser:fetcher_config",
"//components/supervised_user/core/browser:mocked",
"//components/supervised_user/core/browser:test_support",
"//components/supervised_user/core/common",
"//components/supervised_user/test_support",
"//components/ukm:test_support",
"//content/public/browser",
"//content/test:browsertest_support",
"//content/test:test_support",
"//net:test_support",
"//testing/gmock",
"//testing/gtest",
"//ui/base:test_support",
"//ui/events:test_support",
"//url",
]
if (is_chromeos_ash) {
deps += [
"//chrome/browser/ui/webui/ash/parent_access",
"//chrome/browser/ui/webui/ash/parent_access:test_support",
]
}
if (is_win || is_mac || is_linux) {
sources += [
"kids_profile_interactive_uitest.cc",
"linux_mac_windows/parent_access_dialog_result_observer_browsertest.cc",
"linux_mac_windows/supervised_user_web_content_handler_impl_browsertest.cc",
]
}
if (enable_extensions_core) {
sources += [
"desktop/supervised_user_extension_browsertest.cc",
"extension_icon_loader_browsertest.cc",
"extensions_interactive_uitest.cc",
]
deps += [
"//chrome/browser/extensions",
"//chrome/browser/ui/extensions",
"//extensions/browser",
"//extensions/common",
]
if (is_win || is_linux || is_mac) {
sources += [ "supervised_user_pending_state_navigation_browsertest.cc" ]
}
}
}
source_set("interactive_ui_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [ "incognito_mode_interactive_uitest.cc" ]
deps = [
"//chrome/browser/prefs",
"//chrome/browser/ui",
"//chrome/test:test_support",
"//chrome/test/supervised_user:live_tests",
"//chrome/test/supervised_user:test_support",
"//content/test:test_support",
"//testing/gtest",
"//ui/base/interaction:test_support",
]
}
}
static_library("test_support") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"supervised_user_browsertest_base.cc",
"supervised_user_browsertest_base.h",
"supervised_user_test_util.cc",
"supervised_user_test_util.h",
]
public_deps = [ "//chrome/browser/signin" ]
deps = [
":supervised_user",
"//chrome/browser",
"//chrome/browser:browser_process",
"//chrome/browser:global_features",
"//chrome/browser/content_settings:content_settings_factory",
"//chrome/browser/profiles:profile",
"//chrome/browser/sync",
"//chrome/common:constants",
"//components/content_settings/core/browser",
"//components/prefs",
"//components/signin/public/identity_manager",
"//components/signin/public/identity_manager:test_support",
"//components/supervised_user/core/browser",
"//components/supervised_user/core/browser:device_parental_controls",
"//components/supervised_user/core/browser:test_support",
"//components/supervised_user/core/common",
"//components/supervised_user/test_support",
"//testing/gmock",
"//testing/gtest",
]
if (is_android) {
sources += [
"android/family_link_settings_test_bridge.cc",
"android/supervised_user_service_test_bridge.cc",
]
deps += [
":test_support_jni_headers",
"//chrome/test:test_support_ui_android",
"//components/safe_search_api:test_support",
"//components/signin/public/identity_manager:test_support",
"//components/supervised_user/core/browser/android",
"//services/network:test_support",
]
} else {
deps += [ "//chrome/test:test_support_ui" ]
}
}
if (is_android) {
android_resources("java_resources") {
sources = [
"android/java/res/drawable/ic_family_link.xml",
"android/java/res/layout/website_approval_bottom_sheet.xml",
"android/java/res/values/dimens.xml",
]
}
android_library("supervised_user_enums_java") {
srcjar_deps = [ ":supervised_extension_approval_result_java_enum_srcjar" ]
deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ]
}
android_library("parent_auth_delegate_java") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegate.java" ]
deps = [
":supervised_user_enums_java",
"//base:base_java",
"//ui/android:ui_no_recycler_view_java",
"//url:gurl_java",
]
}
android_library("parent_auth_delegate_provider_java") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegateProvider.java" ]
deps = [
":parent_auth_delegate_java",
"//base:base_java",
"//base:service_loader_java",
"//third_party/androidx:androidx_annotation_annotation_java",
]
}
android_library("supervised_user_metrics_java") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/ParentApprovalMetrics.java" ]
deps = [
"//base:base_java",
"//third_party/androidx:androidx_annotation_annotation_java",
]
}
java_cpp_enum("local_approval_outcome_java_enum_srcjar") {
sources =
[ "//chrome/browser/supervised_user/android/website_parent_approval.h" ]
}
android_library("website_parent_approval_java") {
deps = [
":java_resources",
":parent_auth_delegate_java",
":parent_auth_delegate_provider_java",
":supervised_user_metrics_java",
"//base:base_java",
"//base:service_loader_java",
"//build/android:build_java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/signin/services/android:java",
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//components/browser_ui/bottomsheet/android:java",
"//components/browser_ui/widget/android:java",
"//components/signin/public/android:java",
"//components/url_formatter/android:url_formatter_java",
"//google_apis/gaia/android:java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_appcompat_appcompat_java",
"//third_party/jni_zero:jni_zero_java",
"//ui/android:ui_java",
"//ui/android:ui_no_recycler_view_java",
"//url:gurl_java",
]
srcjar_deps = [
":local_approval_outcome_java_enum_srcjar",
":website_parent_approval_jni_headers",
]
sources = [
"android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalCoordinator.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalMediator.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalProperties.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalSheetContent.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalViewBinder.java",
]
resources_package = "org.chromium.chrome.browser.supervised_user"
}
generate_jni("website_parent_approval_jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java" ]
}
java_cpp_enum("supervised_extension_approval_result_java_enum_srcjar") {
sources = [ "//extensions/browser/supervised_extension_approval_result.h" ]
}
android_library("extension_parent_approval_java") {
deps = [
":java_resources",
":parent_auth_delegate_java",
":parent_auth_delegate_provider_java",
":supervised_user_enums_java",
":supervised_user_metrics_java",
"//base:base_java",
"//base:service_loader_java",
"//build/android:build_java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/signin/services/android:java",
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//components/signin/public/android:java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_appcompat_appcompat_java",
"//third_party/jni_zero:jni_zero_java",
"//ui/android:ui_java",
"//ui/android:ui_no_recycler_view_java",
]
srcjar_deps = [ ":extension_parent_approval_jni_headers" ]
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/ExtensionParentApproval.java" ]
resources_package = "org.chromium.chrome.browser.supervised_user"
}
generate_jni("extension_parent_approval_jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/ExtensionParentApproval.java" ]
}
android_library("supervised_user_service_platform_delegate_java") {
deps = [
"//base:base_java",
"//chrome/browser/tabmodel:java",
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [ ":supervised_user_service_platform_delegate_jni_headers" ]
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServicePlatformDelegate.java" ]
resources_package = "org.chromium.chrome.browser.supervised_user"
}
generate_jni("supervised_user_service_platform_delegate_jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServicePlatformDelegate.java" ]
}
generate_jni("supervised_user_service_bridge_jni_headers") {
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServiceBridge.java" ]
}
android_library("supervised_user_service_bridge_java") {
srcjar_deps = [ ":supervised_user_service_bridge_jni_headers" ]
sources = [ "android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServiceBridge.java" ]
deps = [
"//base:base_java",
"//build/android:build_java",
"//chrome/browser/profiles/android:java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
}
generate_jni("test_support_jni_headers") {
testonly = true
sources = [
"android/java/src/org/chromium/chrome/browser/supervised_user/FamilyLinkSettingsTestBridge.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServiceTestBridge.java",
]
}
android_library("test_support_java") {
testonly = true
srcjar_deps = [ ":test_support_jni_headers" ]
sources = [
"android/java/src/org/chromium/chrome/browser/supervised_user/FamilyLinkSettingsTestBridge.java",
"android/java/src/org/chromium/chrome/browser/supervised_user/SupervisedUserServiceTestBridge.java",
]
deps = [
":test_support_jni_headers",
"//build/android:build_java",
"//chrome/android:chrome_java",
"//chrome/browser/profiles/android:java",
"//components/browser_ui/bottomsheet/android/test:java",
"//content/public/test/android:content_java_test_support",
"//third_party/jni_zero:jni_zero_java",
]
}
android_library("javatests") {
testonly = true
resources_package = "org.chromium.chrome.browser.supervised_user"
sources = [
"android/javatests/src/org/chromium/chrome/browser/supervised_user/IncognitoInteractionTest.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/SupervisedUserCriticalJourneysIntegrationTest.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/SupervisedUserSettingsTestUtils.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalNativesTest.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalTest.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalTestUtils.java",
"android/javatests/src/org/chromium/chrome/browser/supervised_user/website_approval/WebsiteApprovalSheetContentTest.java",
]
deps = [
":java_resources",
":test_support_java",
"//base:base_java",
"//base:base_java_test_support",
"//base/test:public_transit_java",
"//chrome/android:chrome_java",
"//chrome/browser/flags:java",
"//chrome/browser/profiles/android:java",
"//chrome/browser/signin/services/android:java",
"//chrome/browser/supervised_user:extension_parent_approval_java",
"//chrome/browser/supervised_user:parent_auth_delegate_java",
"//chrome/browser/supervised_user:parent_auth_delegate_provider_java",
"//chrome/browser/supervised_user:supervised_user_metrics_java",
"//chrome/browser/supervised_user:website_parent_approval_java",
"//chrome/browser/tab:java",
"//chrome/browser/tabmodel:java",
"//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/appmenu/test:test_support_java",
"//chrome/browser/ui/android/multiwindow:java",
"//chrome/test/android:chrome_java_integration_test_support",
"//chrome/test/android:chrome_java_transit",
"//chrome/test/android:pagecontroller_utils_java",
"//components/browser_ui/bottomsheet/android:java",
"//components/browser_ui/bottomsheet/android:manager_java",
"//components/browser_ui/bottomsheet/android/test:java",
"//components/policy/android:policy_java_test_support",
"//components/signin/public/android:java",
"//components/signin/public/android:signin_java_test_support",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//net/android:net_java_test_support",
"//third_party/android_deps:espresso_java",
"//third_party/androidx:androidx_test_runner_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/jni_zero:jni_zero_java",
"//third_party/junit",
"//third_party/mockito:mockito_java",
"//ui/android:ui_java_test_support",
"//ui/android:ui_no_recycler_view_java",
"//url:gurl_java",
]
}
robolectric_library("junit") {
testonly = true
resources_package = "org.chromium.chrome.browser.supervised_user"
sources = [ "android/javatests/src/org/chromium/chrome/browser/supervised_user/ParentApprovalMetricsTest.java" ]
deps = [
":java_resources",
":supervised_user_metrics_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//chrome/android:chrome_java",
"//third_party/android_deps:robolectric_all_java",
"//third_party/androidx:androidx_test_runner_java",
"//third_party/junit",
]
}
if (is_android) {
source_set("android_browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"supervised_user_navigation_observer_android_browsertest.cc",
"supervised_user_service_android_browsertest.cc",
"supervised_user_url_filtering_service_android_browsertest.cc",
"supervised_user_url_filtering_service_common_browsertest.cc",
]
deps = [
"//base",
"//chrome/browser:browser_process",
"//chrome/browser:global_features",
"//chrome/browser/profiles:profile",
"//chrome/browser/sync",
"//chrome/test:test_support",
"//components/messages/android/test:test_support_cpp",
"//components/safe_search_api:test_support",
"//components/supervised_user/core/browser:test_support",
"//components/supervised_user/core/browser/android",
"//components/url_matcher",
"//content/test:test_support",
"//net:test_support",
"//net/android:net_java_test_support_enums_srcjar",
]
# TODO(crbug.com/40031409): Fix code that adds exit-time destructors and
# enable the diagnostic by removing this line.
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
}
}
}