| # Copyright 2023 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//components/optimization_guide/features.gni") |
| |
| assert(is_win || is_mac || is_linux || is_chromeos || is_android) |
| |
| source_set("optimization_guide") { |
| sources = [ |
| "chrome_hints_manager.h", |
| "chrome_model_quality_logs_uploader_service.h", |
| "chrome_prediction_model_store.h", |
| "model_execution/optimization_guide_global_state.h", |
| "model_validator_keyed_service.h", |
| "model_validator_keyed_service_factory.h", |
| "optimization_guide_internals_ui.h", |
| "optimization_guide_keyed_service.h", |
| "optimization_guide_keyed_service_factory.h", |
| "optimization_guide_tab_url_provider.h", |
| "optimization_guide_web_contents_observer.h", |
| "prediction/chrome_profile_download_service_tracker.h", |
| "prediction/prediction_model_download_client.h", |
| ] |
| public_deps = [ |
| "//base", |
| "//chrome/browser:main_extra_parts", |
| "//chrome/browser/navigation_predictor", |
| "//chrome/browser/profiles:profile", |
| "//components/keyed_service/core", |
| "//components/optimization_guide/core", |
| "//components/optimization_guide/core:prediction", |
| "//components/optimization_guide/optimization_guide_internals/webui", |
| "//components/optimization_guide/public/mojom", |
| "//components/services/unzip/content", |
| "//components/signin/public/identity_manager", |
| "//content/public/browser", |
| "//mojo/public/cpp/bindings", |
| "//ui/base", |
| "//ui/webui", |
| ] |
| if (is_android) { |
| public_deps += [ "//chrome/browser/bookmarks/android" ] |
| } |
| } |
| |
| source_set("impl") { |
| sources = [ |
| "chrome_hints_manager.cc", |
| "chrome_model_quality_logs_uploader_service.cc", |
| "chrome_prediction_model_store.cc", |
| "model_execution/optimization_guide_global_state.cc", |
| "model_validator_keyed_service.cc", |
| "model_validator_keyed_service_factory.cc", |
| "optimization_guide_internals_ui.cc", |
| "optimization_guide_keyed_service.cc", |
| "optimization_guide_keyed_service_factory.cc", |
| "optimization_guide_tab_url_provider.cc", |
| "optimization_guide_web_contents_observer.cc", |
| "prediction/chrome_profile_download_service_tracker.cc", |
| "prediction/prediction_model_download_client.cc", |
| ] |
| public_deps = [ "//chrome/browser:browser_public_dependencies" ] |
| deps = [ |
| ":optimization_guide", |
| "//chrome/browser:browser_process", |
| "//chrome/browser/profiles", |
| "//chrome/browser/signin", |
| "//chrome/browser/sync", |
| "//chrome/browser/ui", |
| "//components/metrics_services_manager", |
| "//components/no_state_prefetch/browser", |
| "//components/user_prefs", |
| "//components/variations/service", |
| "//components/version_info", |
| "//ui/webui", |
| ] |
| if (is_android) { |
| deps += [ |
| "//base", |
| "//chrome/browser/optimization_guide/android:jni_headers", |
| ] |
| } else { |
| deps += [ "//chrome/browser/ui/tabs:tab_strip" ] |
| } |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| sources = [ |
| "browser_test_util.cc", |
| "browser_test_util.h", |
| "mock_optimization_guide_keyed_service.cc", |
| "mock_optimization_guide_keyed_service.h", |
| ] |
| deps = [ |
| ":optimization_guide", |
| "//base", |
| "//chrome/browser/prefs", |
| "//chrome/browser/signin", |
| "//chrome/common", |
| "//chrome/test:test_support", |
| "//components/metrics:content", |
| "//components/optimization_guide/core", |
| "//components/prefs", |
| "//components/signin/public/identity_manager", |
| ] |
| |
| # chrome/browser/ui/passwords/manage_passwords_test.h |
| # -> mock_optimization_guide_keyed_service.h |
| # -> chrome/test/base/testing_browser_process.h |
| allow_circular_includes_from = [ "//chrome/test:test_support" ] |
| } |
| |
| if (!is_android) { |
| source_set("browser_tests") { |
| testonly = true |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| sources = [ |
| "hints_fetcher_browsertest.cc", |
| "model_execution/model_execution_browsertest.cc", |
| "model_execution/model_execution_live_test.cc", |
| "model_execution/model_execution_validation_browsertest.cc", |
| "optimization_guide_keyed_service_browsertest.cc", |
| ] |
| |
| if (build_with_tflite_lib) { |
| sources += [ |
| "prediction/prediction_manager_browsertest.cc", |
| "prediction/prediction_model_store_browsertest.cc", |
| ] |
| } |
| |
| deps = [ |
| ":optimization_guide", |
| ":test_support", |
| "//base/test:test_proto", |
| "//base/test:test_support", |
| "//chrome/browser/signin/e2e_tests:test_support", |
| "//chrome/browser/ui/webauthn", |
| "//chrome/test:test_support", |
| "//components/metrics_services_manager", |
| "//components/no_state_prefetch/browser", |
| "//components/optimization_guide/core:test_support", |
| "//components/site_engagement/content", |
| "//components/variations/service", |
| "//third_party/tflite:buildflags", |
| ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "chrome_hints_manager_unittest.cc", |
| "chrome_model_quality_logs_uploader_service_unittest.cc", |
| "prediction/chrome_profile_download_service_tracker_unittest.cc", |
| ] |
| deps = [ |
| ":optimization_guide", |
| ":test_support", |
| "//chrome/test:test_support", |
| "//components/optimization_guide/core:test_support", |
| "//components/prefs:test_support", |
| "//components/unified_consent", |
| "//components/variations:test_support", |
| ] |
| if (!is_android) { |
| sources += [ |
| # Android uses a different way of showing browser windows. |
| "optimization_guide_tab_url_provider_unittest.cc", |
| ] |
| } |
| } |