| # 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("//extensions/buildflags/buildflags.gni") |
| |
| assert(is_win || is_mac || is_linux || is_chromeos || is_android) |
| |
| source_set("safety_hub") { |
| sources = [ |
| "abusive_notification_permissions_manager.h", |
| "disruptive_notification_permissions_manager.h", |
| "menu_notification.h", |
| "menu_notification_service.h", |
| "menu_notification_service_factory.h", |
| "notification_permission_review_result.h", |
| "notification_permission_review_service.h", |
| "notification_permission_review_service_factory.h", |
| "revoked_permissions_os_notification_display_manager.h", |
| "revoked_permissions_os_notification_display_manager_factory.h", |
| "revoked_permissions_result.h", |
| "revoked_permissions_service.h", |
| "revoked_permissions_service_factory.h", |
| "safe_browsing_result.h", |
| "safety_hub_constants.h", |
| "safety_hub_prefs.h", |
| "safety_hub_result.h", |
| "safety_hub_service.h", |
| "safety_hub_util.h", |
| "unused_site_permissions_manager.h", |
| ] |
| |
| public_deps = [ |
| "//base", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/profiles:profile", |
| "//components/content_settings/core/browser", |
| "//components/content_settings/core/common", |
| "//components/keyed_service/core", |
| "//components/safe_browsing/content/browser/notification_content_detection", |
| "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", |
| "//components/safe_browsing/core/browser/db:database_manager", |
| "//components/safety_check:features", |
| "//components/site_engagement/content", |
| "//content/public/browser", |
| "//url", |
| ] |
| |
| deps = [ "//components/safety_check" ] |
| |
| if (is_android) { |
| sources += [ |
| "notification_wrapper_android.h", |
| "password_status_check_result_android.h", |
| ] |
| |
| public_deps += [ "//components/prefs" ] |
| } else { |
| sources += [ |
| "extensions_result.h", |
| "password_status_check_result.h", |
| "password_status_check_service.h", |
| "password_status_check_service_factory.h", |
| "safety_hub_hats_service.h", |
| "safety_hub_hats_service_factory.h", |
| ] |
| |
| public_deps += [ |
| "//chrome/browser/ui/hats", |
| "//components/password_manager/core/browser/leak_detection:leak_detection_interface_headers", |
| "//components/password_manager/core/browser/password_store:password_store_interface", |
| "//components/password_manager/core/browser/ui", |
| "//extensions/browser", |
| ] |
| } |
| } |
| |
| source_set("impl") { |
| public_deps = [ "//chrome/browser:browser_public_dependencies" ] |
| |
| sources = [ |
| "abusive_notification_permissions_manager.cc", |
| "disruptive_notification_permissions_manager.cc", |
| "menu_notification.cc", |
| "menu_notification_service.cc", |
| "menu_notification_service_factory.cc", |
| "notification_permission_review_result.cc", |
| "notification_permission_review_service.cc", |
| "notification_permission_review_service_factory.cc", |
| "revoked_permissions_os_notification_display_manager.cc", |
| "revoked_permissions_os_notification_display_manager_factory.cc", |
| "revoked_permissions_result.cc", |
| "revoked_permissions_service.cc", |
| "revoked_permissions_service_factory.cc", |
| "safe_browsing_result.cc", |
| "safety_hub_constants.cc", |
| "safety_hub_prefs.cc", |
| "safety_hub_result.cc", |
| "safety_hub_service.cc", |
| "safety_hub_util.cc", |
| "unused_site_permissions_manager.cc", |
| ] |
| |
| deps = [ |
| ":safety_hub", |
| "//chrome/app:command_ids", |
| "//chrome/browser:browser_process", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/engagement", |
| "//chrome/browser/permissions", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/safe_browsing", |
| "//chrome/browser/ui", |
| "//chrome/browser/ui/hats", |
| "//components/content_settings/core/browser", |
| "//components/permissions", |
| "//components/permissions:permissions_common", |
| "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", |
| "//components/safe_browsing/core/browser/db:v4_protocol_manager_util", |
| "//components/safe_browsing/core/common:features", |
| "//components/safe_browsing/core/common:safe_browsing_prefs", |
| "//components/safety_check", |
| "//components/site_engagement/content", |
| "//services/metrics/public/cpp:ukm_builders", |
| ] |
| |
| if (is_android) { |
| sources += [ |
| "notification_wrapper_android.cc", |
| "password_status_check_result_android.cc", |
| ] |
| deps += [ "//chrome/browser/safety_hub/android:jni_headers" ] |
| } else { |
| sources += [ |
| "extensions_result.cc", |
| "password_status_check_result.cc", |
| "password_status_check_service.cc", |
| "password_status_check_service_factory.cc", |
| "safety_hub_hats_service.cc", |
| "safety_hub_hats_service_factory.cc", |
| ] |
| |
| deps += [ |
| "//chrome/browser/affiliations", |
| "//chrome/browser/extensions", |
| "//chrome/browser/password_manager/factories", |
| "//chrome/browser/signin", |
| "//chrome/browser/ui/webui/settings", |
| "//components/password_manager/core/browser:password_form", |
| "//components/password_manager/core/browser/leak_detection", |
| "//components/password_manager/core/browser/ui", |
| "//extensions/browser", |
| ] |
| } |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| |
| sources = [ |
| "safety_hub_test_util.cc", |
| "safety_hub_test_util.h", |
| ] |
| |
| public_deps = [ |
| ":safety_hub", |
| "//chrome/browser/profiles:profile", |
| "//chrome/test:test_support", |
| "//components/password_manager/core/browser/leak_detection:leak_detection_interface_headers", |
| "//testing/gmock", |
| ] |
| |
| deps = [ |
| "//base", |
| "//base/test:test_support", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/password_manager/factories", |
| "//chrome/browser/permissions", |
| "//components/content_settings/core/common", |
| "//components/sync_preferences:test_support", |
| "//services/network:test_support", |
| ] |
| |
| if (enable_extensions_core) { |
| public_deps += [ |
| "//chrome/browser/extensions", |
| "//extensions/common", |
| ] |
| deps += [ |
| "//chrome/browser/extensions:test_support", |
| "//extensions:test_support", |
| ] |
| } |
| |
| if (!is_android) { |
| sources += [ |
| "mock_safe_browsing_database_manager.cc", |
| "mock_safe_browsing_database_manager.h", |
| ] |
| |
| public_deps += [ |
| "//components/safe_browsing/core/browser/db:database_manager", |
| "//components/safe_browsing/core/browser/db:test_database_manager", |
| ] |
| } |
| } |
| |
| if (!is_android) { |
| source_set("browser_tests") { |
| testonly = true |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| sources = [ "revoked_permissions_service_browsertest.cc" ] |
| |
| deps = [ |
| ":safety_hub", |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/engagement", |
| "//chrome/browser/permissions", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/safe_browsing:test_support", |
| "//chrome/browser/ui", |
| "//chrome/test:test_support_ui", |
| "//components/content_settings/core/browser", |
| "//components/content_settings/core/common", |
| "//components/content_settings/core/common:features", |
| "//components/permissions:permissions_common", |
| "//components/safe_browsing/core/common:features", |
| "//content/test:test_support", |
| ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "abusive_notification_permissions_manager_unittest.cc", |
| "disruptive_notification_permissions_manager_unittest.cc", |
| "menu_notification_service_unittest.cc", |
| "menu_notification_unittest.cc", |
| "notification_permission_review_result_unittest.cc", |
| "password_status_check_result_unittest.cc", |
| "revoked_permissions_os_notification_display_manager_unittest.cc", |
| "revoked_permissions_result_unittest.cc", |
| "safe_browsing_result_unittest.cc", |
| "safety_hub_result_unittest.cc", |
| "safety_hub_service_unittest.cc", |
| "unused_site_permissions_manager_unittest.cc", |
| ] |
| |
| deps = [ |
| ":safety_hub", |
| ":test_support", |
| "//base", |
| "//chrome/app:command_ids", |
| "//chrome/app:generated_resources", |
| "//chrome/browser/content_settings:content_settings_factory", |
| "//chrome/browser/engagement", |
| "//chrome/browser/permissions", |
| "//chrome/browser/ui/hats", |
| "//chrome/browser/ui/safety_hub:test_support", |
| "//chrome/common:chrome_features", |
| "//chrome/common:constants", |
| "//chrome/test:test_support", |
| "//components/content_settings/core/browser", |
| "//components/content_settings/core/common", |
| "//components/content_settings/core/test:test_support", |
| "//components/data_sharing/public:features", |
| "//components/password_manager/core/browser/password_store:test_support", |
| "//components/permissions", |
| "//components/permissions:permissions_common", |
| "//components/prefs:test_support", |
| "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", |
| "//components/safe_browsing/core/common:features", |
| "//components/safe_browsing/core/common:safe_browsing_prefs", |
| "//components/safety_check", |
| "//components/sync_preferences:test_support", |
| "//components/ukm:test_support", |
| "//content/test:test_support", |
| "//testing/gtest", |
| "//ui/base", |
| ] |
| |
| if (enable_extensions) { |
| deps += [ "//chrome/browser/extensions" ] |
| } |
| |
| if (is_android) { |
| sources += [ "password_status_check_result_android_unittest.cc" ] |
| } else { |
| sources += [ |
| "extensions_result_unittest.cc", |
| "notification_permission_review_service_unittest.cc", |
| "password_status_check_service_unittest.cc", |
| "revoked_permissions_service_unittest.cc", |
| "safety_hub_hats_service_unittest.cc", |
| ] |
| |
| deps += [ |
| "//base/test:test_support", |
| "//chrome/app:branded_strings", |
| "//chrome/browser", |
| "//chrome/browser/history", |
| "//chrome/browser/prefs", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/safe_browsing:test_support", |
| "//chrome/browser/ui", |
| "//chrome/browser/ui/hats:test_support", |
| "//components/content_settings/core/common:features", |
| "//components/crx_file", |
| "//components/history/core/browser", |
| "//components/history/core/test", |
| "//components/keyed_service/core", |
| "//components/password_manager/core/browser/leak_detection:leak_detection_interface_headers", |
| "//components/password_manager/core/common", |
| "//components/permissions:test_support", |
| "//components/prefs", |
| "//components/safe_browsing/core/browser/db:util", |
| "//components/signin/public/base", |
| "//components/signin/public/identity_manager:test_support", |
| "//components/site_engagement/content", |
| "//components/ukm/content", |
| "//content/public/browser", |
| "//extensions/browser", |
| "//extensions/common", |
| "//services/metrics/public/cpp:gen_ukm_builders", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//services/network:test_support", |
| "//testing/gmock", |
| "//url", |
| ] |
| } |
| |
| # 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" ] |
| } |