# Copyright 2019 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/apple/symbols.gni")

source_set("safe_area_provider") {
  sources = [
    "safe_area_provider.h",
    "safe_area_provider.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/app/application_delegate:app_state",
    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
    "//ios/chrome/browser/shared/model/browser",
  ]
}

source_set("ui_bundled") {
  sources = [
    "browser_coordinator+Testing.h",
    "browser_coordinator.h",
    "browser_coordinator.mm",
    "browser_modal_host.h",
    "browser_modal_host.mm",
    "browser_omnibox_state_provider.h",
    "browser_omnibox_state_provider.mm",
    "browser_view_controller+private.h",
    "browser_view_controller.h",
    "browser_view_controller.mm",
    "key_commands_provider.h",
    "key_commands_provider.mm",
    "tab_consumer.h",
    "tab_events_mediator.h",
    "tab_events_mediator.mm",
    "tab_lifecycle_mediator.h",
    "tab_lifecycle_mediator.mm",
  ]
  deps = [
    ":safe_area_provider",
    "//base",
    "//base:i18n",
    "//build/config/ios:swift_buildflags",
    "//components/autofill/ios/form_util",
    "//components/bookmarks/browser",
    "//components/collaboration/public",
    "//components/commerce/core:feature_list",
    "//components/commerce/core:feature_utils",
    "//components/commerce/core:shopping_service",
    "//components/enterprise/idle",
    "//components/feature_engagement/public",
    "//components/image_fetcher/ios",
    "//components/language/ios/browser",
    "//components/omnibox/browser",
    "//components/password_manager/core/common:features",
    "//components/prefs",
    "//components/profile_metrics",
    "//components/reading_list/core",
    "//components/safe_browsing/core/common",
    "//components/search_engines",
    "//components/segmentation_platform/embedder/default_model",
    "//components/segmentation_platform/embedder/home_modules/tips_manager:constants",
    "//components/segmentation_platform/embedder/home_modules/tips_manager:signal_constants",
    "//components/send_tab_to_self",
    "//components/sessions",
    "//components/signin/core/browser",
    "//components/signin/ios/browser",
    "//components/strings",
    "//components/supervised_user/core/browser",
    "//components/supervised_user/core/common:features",
    "//components/sync",
    "//components/translate/core/browser",
    "//components/ukm/ios:ukm_url_recorder",
    "//components/url_formatter",
    "//components/webauthn/ios",
    "//ios/chrome/app:tests_hook",
    "//ios/chrome/app/application_delegate:app_state",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/ai_prototyping/coordinator",
    "//ios/chrome/browser/app_bar/ui",
    "//ios/chrome/browser/app_bar/ui:constants",
    "//ios/chrome/browser/app_launcher/model",
    "//ios/chrome/browser/app_store_rating/model:features",
    "//ios/chrome/browser/authentication/signin/non_modal_promo/coordinator",
    "//ios/chrome/browser/authentication/trusted_vault_reauthentication/coordinator",
    "//ios/chrome/browser/authentication/ui_bundled",
    "//ios/chrome/browser/authentication/ui_bundled:signin_presenter",
    "//ios/chrome/browser/authentication/ui_bundled/enterprise/enterprise_prompt",
    "//ios/chrome/browser/authentication/ui_bundled/signin:constants",
    "//ios/chrome/browser/authentication/ui_bundled/signin:signin_headers",
    "//ios/chrome/browser/autocomplete/model",
    "//ios/chrome/browser/autofill/atmemory/public",
    "//ios/chrome/browser/autofill/authentication/coordinator:card_unmask_authentication_coordinator",
    "//ios/chrome/browser/autofill/authentication/coordinator:otp_input_dialog",
    "//ios/chrome/browser/autofill/autofill_ai/coordinator",
    "//ios/chrome/browser/autofill/autofill_ai/error_dialog/coordinator",
    "//ios/chrome/browser/autofill/autofill_ai/error_dialog/model",
    "//ios/chrome/browser/autofill/autofill_ai/public",
    "//ios/chrome/browser/autofill/form_input_accessory/coordinator",
    "//ios/chrome/browser/autofill/form_input_accessory/ui",
    "//ios/chrome/browser/autofill/manual_fill/coordinator",
    "//ios/chrome/browser/autofill/model",
    "//ios/chrome/browser/autofill/model:model_internal",
    "//ios/chrome/browser/autofill/model/bottom_sheet",
    "//ios/chrome/browser/autofill/payments/coordinator",
    "//ios/chrome/browser/autofill/public",
    "//ios/chrome/browser/autofill/scan_save_and_fill/coordinator",
    "//ios/chrome/browser/autofill/ui_bundled:coordinator",
    "//ios/chrome/browser/autofill/ui_bundled/address_editor:autofill_edit",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet:save_card_bottom_sheet_coordinator",
    "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet:virtual_card_enrollment_bottom_sheet_coordinator",
    "//ios/chrome/browser/autofill/ui_bundled/error_dialog",
    "//ios/chrome/browser/autofill/ui_bundled/progress_dialog",
    "//ios/chrome/browser/autofill/wallet_reminder_notice/coordinator",
    "//ios/chrome/browser/bookmarks/model",
    "//ios/chrome/browser/bookmarks/ui_bundled/home",
    "//ios/chrome/browser/browser_content/model",
    "//ios/chrome/browser/browser_content/ui_bundled",
    "//ios/chrome/browser/browser_content/ui_bundled:ui",
    "//ios/chrome/browser/browser_view/model",
    "//ios/chrome/browser/browser_view/public",
    "//ios/chrome/browser/bubble/ui_bundled",
    "//ios/chrome/browser/collaboration/model",
    "//ios/chrome/browser/collaboration/model:collaboration_delegate",
    "//ios/chrome/browser/commerce/model:shopping_service",
    "//ios/chrome/browser/commerce/model/price_notifications",
    "//ios/chrome/browser/commerce/model/push_notification",
    "//ios/chrome/browser/composebox/coordinator",
    "//ios/chrome/browser/composebox/menu/coordinator",
    "//ios/chrome/browser/composebox/public",
    "//ios/chrome/browser/content_settings/model",
    "//ios/chrome/browser/content_suggestions/public:ntp_home_constants",
    "//ios/chrome/browser/content_suggestions/tips/coordinator",
    "//ios/chrome/browser/context_menu/ui_bundled:coordinator",
    "//ios/chrome/browser/contextual_panel/coordinator",
    "//ios/chrome/browser/contextual_panel/entrypoint/coordinator:constants",
    "//ios/chrome/browser/contextual_panel/model:public",
    "//ios/chrome/browser/contextual_panel/utils",
    "//ios/chrome/browser/crash_report/model",
    "//ios/chrome/browser/credential_provider_promo/ui_bundled:coordinator",
    "//ios/chrome/browser/default_browser/model:utils",
    "//ios/chrome/browser/default_browser/promo/generic/coordinator",
    "//ios/chrome/browser/default_browser/promo/generic/public",
    "//ios/chrome/browser/default_browser/promo/non_modal/coordinator",
    "//ios/chrome/browser/default_browser/promo/non_modal/public",
    "//ios/chrome/browser/dialogs/ui_bundled:dialogs_internal",
    "//ios/chrome/browser/docking_promo/coordinator",
    "//ios/chrome/browser/download/coordinator",
    "//ios/chrome/browser/download/coordinator/auto_deletion",
    "//ios/chrome/browser/download/model",
    "//ios/chrome/browser/download/ui:features",
    "//ios/chrome/browser/drive_file_picker/coordinator",
    "//ios/chrome/browser/enterprise/data_controls/model",
    "//ios/chrome/browser/enterprise/enterprise_dialog/coordinator",
    "//ios/chrome/browser/favicon/model",
    "//ios/chrome/browser/feature_engagement/model",
    "//ios/chrome/browser/file_upload_panel/coordinator",
    "//ios/chrome/browser/find_in_page/model",
    "//ios/chrome/browser/first_run/coordinator",
    "//ios/chrome/browser/first_run/omnibox_position/coordinator",
    "//ios/chrome/browser/first_run/public:utils",
    "//ios/chrome/browser/fullscreen/coordinator",
    "//ios/chrome/browser/fullscreen/model",
    "//ios/chrome/browser/fullscreen/public:metrics",
    "//ios/chrome/browser/fullscreen/ui_bundled",
    "//ios/chrome/browser/fullscreen/ui_bundled:ui",
    "//ios/chrome/browser/geolocation/model",
    "//ios/chrome/browser/google_one/coordinator",
    "//ios/chrome/browser/history/ui_bundled:coordinator",
    "//ios/chrome/browser/home_customization/coordinator",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:incognito_reauth_commands",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:incognito_reauth_scene_agent",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:incognito_reauth_util",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:ui",
    "//ios/chrome/browser/infobars/model",
    "//ios/chrome/browser/infobars/ui_bundled:public",
    "//ios/chrome/browser/intelligence/actor/coordinator",
    "//ios/chrome/browser/intelligence/bwg/coordinator",
    "//ios/chrome/browser/intelligence/bwg/model:browser_agent",
    "//ios/chrome/browser/intelligence/bwg/model:gemini_service",
    "//ios/chrome/browser/intelligence/bwg/model:gemini_service_factory",
    "//ios/chrome/browser/intelligence/bwg/model:tab_helper",
    "//ios/chrome/browser/intelligence/bwg/utils:constants",
    "//ios/chrome/browser/intelligence/enhanced_calendar/coordinator",
    "//ios/chrome/browser/intelligence/enhanced_calendar/model:config",
    "//ios/chrome/browser/intelligence/features",
    "//ios/chrome/browser/intelligence/page_action_menu/coordinator",
    "//ios/chrome/browser/intents/model:model_donation_helper",
    "//ios/chrome/browser/itunes_urls/model",
    "//ios/chrome/browser/keyboard/ui_bundled",
    "//ios/chrome/browser/language/model",
    "//ios/chrome/browser/lens/model",
    "//ios/chrome/browser/lens_overlay/coordinator",
    "//ios/chrome/browser/lens_overlay/model",
    "//ios/chrome/browser/lens_overlay/public:lens_overlay_availability",
    "//ios/chrome/browser/level_up/coordinator",
    "//ios/chrome/browser/link_to_text/model",
    "//ios/chrome/browser/location_bar/ui_bundled",
    "//ios/chrome/browser/main/coordinator",
    "//ios/chrome/browser/main/ui",
    "//ios/chrome/browser/main/ui_bundled:default_browser_scene_agent",
    "//ios/chrome/browser/main_content/ui_bundled:ui",
    "//ios/chrome/browser/main_content/ui_bundled:ui_broadcasting_util",
    "//ios/chrome/browser/metrics/model:activity_reporter",
    "//ios/chrome/browser/metrics/model:metrics_internal",
    "//ios/chrome/browser/metrics/model:tab_usage_recorder_browser_agent",
    "//ios/chrome/browser/mini_map/coordinator",
    "//ios/chrome/browser/mini_map/model",
    "//ios/chrome/browser/net/model",
    "//ios/chrome/browser/ntp/model",
    "//ios/chrome/browser/ntp/model:util",
    "//ios/chrome/browser/ntp/ui_bundled",
    "//ios/chrome/browser/ntp/ui_bundled:component_factory",
    "//ios/chrome/browser/ntp/ui_bundled:coordinator",
    "//ios/chrome/browser/ntp/ui_bundled:logo",
    "//ios/chrome/browser/omnibox/coordinator",
    "//ios/chrome/browser/omnibox/model/omnibox_focus",
    "//ios/chrome/browser/omnibox/public:features",
    "//ios/chrome/browser/omnibox/ui",
    "//ios/chrome/browser/omnibox/ui:omnibox_internal",
    "//ios/chrome/browser/omnibox/ui/popup",
    "//ios/chrome/browser/overlays/model",
    "//ios/chrome/browser/overlays/model/public/web_content_area",
    "//ios/chrome/browser/overscroll_actions/model",
    "//ios/chrome/browser/overscroll_actions/ui_bundled",
    "//ios/chrome/browser/page_info/coordinator",
    "//ios/chrome/browser/passwords/bottom_sheet/coordinator",
    "//ios/chrome/browser/passwords/model",
    "//ios/chrome/browser/passwords/password_breach/coordinator",
    "//ios/chrome/browser/passwords/password_suggestion/coordinator",
    "//ios/chrome/browser/phone_number/ui_bundled:coordinator",
    "//ios/chrome/browser/picture_in_picture/coordinator",
    "//ios/chrome/browser/picture_in_picture/public",
    "//ios/chrome/browser/policy/model:policy_util",
    "//ios/chrome/browser/popup_menu/coordinator",
    "//ios/chrome/browser/popup_menu/overflow_menu/public:features",
    "//ios/chrome/browser/popup_menu/public",
    "//ios/chrome/browser/prefs/model",
    "//ios/chrome/browser/prerender/model",
    "//ios/chrome/browser/presenters/ui_bundled",
    "//ios/chrome/browser/price_notifications/ui_bundled:coordinator",
    "//ios/chrome/browser/print/coordinator",
    "//ios/chrome/browser/promos_manager/coordinator",
    "//ios/chrome/browser/promos_manager/model:app_store_review_swift",
    "//ios/chrome/browser/push_notification/coordinator:notifications_opt_in",
    "//ios/chrome/browser/push_notification/model:constants",
    "//ios/chrome/browser/qr_scanner/coordinator",
    "//ios/chrome/browser/reader_mode/coordinator",
    "//ios/chrome/browser/reader_mode/model",
    "//ios/chrome/browser/reader_mode/model:features",
    "//ios/chrome/browser/reading_list/model",
    "//ios/chrome/browser/reading_list/ui_bundled:coordinator",
    "//ios/chrome/browser/recent_tabs/coordinator",
    "//ios/chrome/browser/reminder_notifications/coordinator",
    "//ios/chrome/browser/sad_tab/ui_bundled",
    "//ios/chrome/browser/sad_tab/ui_bundled:coordinator",
    "//ios/chrome/browser/safe_browsing/ui_bundled",
    "//ios/chrome/browser/save_to_drive/ui_bundled",
    "//ios/chrome/browser/save_to_photos/ui_bundled",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/saved_tab_groups/model:tab_group_service",
    "//ios/chrome/browser/search_engine_choice/coordinator",
    "//ios/chrome/browser/segmentation_platform/model",
    "//ios/chrome/browser/send_tab_to_self/coordinator",
    "//ios/chrome/browser/send_tab_to_self/model",
    "//ios/chrome/browser/sessions/model",
    "//ios/chrome/browser/settings/autofill/payments/coordinator",
    "//ios/chrome/browser/settings/clear_browsing_data/coordinator",
    "//ios/chrome/browser/settings/model/sync/utils",
    "//ios/chrome/browser/settings/ui_bundled/autofill",
    "//ios/chrome/browser/settings/ui_bundled/password/password_settings",
    "//ios/chrome/browser/shared/coordinator/alert",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/coordinator/default_browser_promo",
    "//ios/chrome/browser/shared/coordinator/layout_guide",
    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
    "//ios/chrome/browser/shared/coordinator/scene/state",
    "//ios/chrome/browser/shared/model/application_context",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/prefs:pref_names",
    "//ios/chrome/browser/shared/model/profile",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/model/web_state_list:utils",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/commands:shared_group_last_tab_commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/elements:activity_overlay",
    "//ios/chrome/browser/shared/ui/layout_guide:layout_guide_swift",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/shared/ui/util:url_with_title",
    "//ios/chrome/browser/shared/ui/util:util_swift",
    "//ios/chrome/browser/sharing/ui_bundled",
    "//ios/chrome/browser/side_swipe/ui_bundled",
    "//ios/chrome/browser/signin/model",
    "//ios/chrome/browser/signin/model:authentication_service",
    "//ios/chrome/browser/signin/model:authentication_service_factory",
    "//ios/chrome/browser/snackbar/ui_bundled",
    "//ios/chrome/browser/snapshots/model",
    "//ios/chrome/browser/snapshots/model:model_common",
    "//ios/chrome/browser/snapshots/model:model_swift",
    "//ios/chrome/browser/snapshots/model:snapshot_source",
    "//ios/chrome/browser/spotlight_debugger/ui_bundled",
    "//ios/chrome/browser/ssl/model",
    "//ios/chrome/browser/start_surface/ui_bundled:feature_flags",
    "//ios/chrome/browser/store_kit/model",
    "//ios/chrome/browser/supervised_user/coordinator",
    "//ios/chrome/browser/supervised_user/model",
    "//ios/chrome/browser/sync/model",
    "//ios/chrome/browser/sync/model:sync_error_browser_agent",
    "//ios/chrome/browser/synced_set_up/coordinator",
    "//ios/chrome/browser/synced_set_up/utils",
    "//ios/chrome/browser/tab_insertion/model",
    "//ios/chrome/browser/tab_picker/coordinator",
    "//ios/chrome/browser/tab_switcher/tab_strip/coordinator",
    "//ios/chrome/browser/tab_switcher/tab_strip/ui:swift_constants_for_objective_c",
    "//ios/chrome/browser/tab_switcher/tab_strip/ui:utils",
    "//ios/chrome/browser/tab_switcher/ui_bundled:tab_group_confirmation",
    "//ios/chrome/browser/tabs/model:dependency_installer",
    "//ios/chrome/browser/tabs/ui_bundled",
    "//ios/chrome/browser/text_zoom/ui_bundled:coordinator",
    "//ios/chrome/browser/text_zoom/ui_bundled:ui",
    "//ios/chrome/browser/tips_manager/model:factory",
    "//ios/chrome/browser/tips_manager/model:tips_manager",
    "//ios/chrome/browser/tips_notifications/coordinator",
    "//ios/chrome/browser/toolbar/coordinator",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled:coordinator",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled:ui",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/accessory",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/buttons",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/fullscreen",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/fullscreen:fullscreen_broadcasting_util",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/public",
    "//ios/chrome/browser/toolbar/ui:height_delegate",
    "//ios/chrome/browser/translate/model",
    "//ios/chrome/browser/unit_conversion/ui_bundled:coordinator",
    "//ios/chrome/browser/url_loading/model",
    "//ios/chrome/browser/url_loading/model:new_tab_animation_tab_helper",
    "//ios/chrome/browser/view_source/model",
    "//ios/chrome/browser/voice/model",
    "//ios/chrome/browser/voice/ui_bundled",
    "//ios/chrome/browser/web/model",
    "//ios/chrome/browser/web/model:delegate",
    "//ios/chrome/browser/web/model:page_placeholder",
    "//ios/chrome/browser/web/model:tab_helper_delegates",
    "//ios/chrome/browser/web/model/annotations",
    "//ios/chrome/browser/web/model/choose_file",
    "//ios/chrome/browser/web/model/font_size",
    "//ios/chrome/browser/web/model/print",
    "//ios/chrome/browser/web/model/web_view_proxy",
    "//ios/chrome/browser/web_state_list/model/web_usage_enabler",
    "//ios/chrome/browser/webauthn/coordinator",
    "//ios/chrome/browser/webui/model",
    "//ios/chrome/browser/webui/ui_bundled:coordinator",
    "//ios/chrome/browser/welcome_back/coordinator",
    "//ios/chrome/browser/whats_new/coordinator",
    "//ios/chrome/common",
    "//ios/chrome/common/swift:features",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/promo_style",
    "//ios/chrome/common/ui/reauthentication",
    "//ios/chrome/common/ui/util",
    "//ios/components/security_interstitials",
    "//ios/components/webui:url_constants",
    "//ios/public/provider/chrome/browser/bwg:gemini_api",
    "//ios/public/provider/chrome/browser/cobalt:cobalt_api",
    "//ios/public/provider/chrome/browser/fullscreen:fullscreen_api",
    "//ios/public/provider/chrome/browser/lens:lens_api",
    "//ios/public/provider/chrome/browser/signin:choice_api",
    "//ios/public/provider/chrome/browser/text_zoom:text_zoom_api",
    "//ios/public/provider/chrome/browser/user_feedback:user_feedback_api",
    "//ios/public/provider/chrome/browser/voice_search:voice_search_api",
    "//ios/third_party/webkit",
    "//ios/web",
    "//ios/web/public",
    "//services/metrics/public/cpp:ukm_builders",
    "//ui/base",
    "//ui/gfx",
    "//url",

    # Fake dependencies to break cycles
    "//ios/chrome/browser/settings/ui_bundled",
    "//ios/chrome/browser/sharing/ui_bundled:sharing_internal",
  ]

  if (enable_swift_cxx_interop) {
    deps += [ "//ios/chrome/browser/print/coordinator:swift_coordinator" ]

    # TODO(crbug.com/456806155): Find a better solution to suppress errors from
    # chromium clang on headers that come from the iOS SDK. Ideally, we'd want a
    # suppression that is inherited implicitly from swift_source_set
    # dependencies. Unfortunately, the gn language does not allow child targets
    # to do things like `invoker.configs -= [...]`. Also, we'd ideally want a
    # suppression that is scoped to just the SDK headers rather than the entire
    # target that includes the headers. We can't use the
    # "build/config/compiler:no_chromium_code" config to solve this problem
    # because we don't have any build targets that have the SDK headers as
    # direct sources.
    if (is_clang) {
      configs -= [ "//build/config/clang:find_bad_constructs" ]
    }
  }

  frameworks = [
    "MessageUI.framework",
    "Photos.framework",
    "StoreKit.framework",
    "UIKit.framework",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "browser_coordinator_unittest.mm",
    "browser_modal_host_unittest.mm",
    "browser_view_controller_unittest.mm",
    "key_commands_provider_unittest.mm",
  ]
  deps = [
    ":safe_area_provider",
    ":test_support",
    ":ui_bundled",
    "//components/autofill/ios/form_util",
    "//components/bookmarks/browser",
    "//components/bookmarks/test",
    "//components/commerce/core:shopping_service_test_support",
    "//components/content_settings/core/browser",
    "//components/omnibox/browser:test_support",
    "//components/open_from_clipboard:test_support",
    "//components/policy/core/common:common_constants",
    "//components/prefs:test_support",
    "//components/reading_list/core",
    "//components/search_engines",
    "//components/send_tab_to_self",
    "//components/sessions",
    "//components/supervised_user/core/common:features",
    "//components/sync:test_support",
    "//components/sync_preferences:test_support",
    "//components/test/ios",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/authentication/trusted_vault_reauthentication/coordinator",
    "//ios/chrome/browser/authentication/ui_bundled:continuation",
    "//ios/chrome/browser/authentication/ui_bundled/signin:signin_headers",
    "//ios/chrome/browser/autocomplete/model",
    "//ios/chrome/browser/autofill/autofill_ai/coordinator",
    "//ios/chrome/browser/bookmarks/model",
    "//ios/chrome/browser/bookmarks/model:test_support",
    "//ios/chrome/browser/bookmarks/ui_bundled/home",
    "//ios/chrome/browser/browser_content/ui_bundled:ui",
    "//ios/chrome/browser/browser_view/model",
    "//ios/chrome/browser/bubble/ui_bundled",
    "//ios/chrome/browser/commerce/model:shopping_service",
    "//ios/chrome/browser/content_settings/model",
    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
    "//ios/chrome/browser/dom_distiller/model",
    "//ios/chrome/browser/download/coordinator",
    "//ios/chrome/browser/download/model",
    "//ios/chrome/browser/download/ui",
    "//ios/chrome/browser/favicon/model",
    "//ios/chrome/browser/feature_engagement/model",
    "//ios/chrome/browser/find_in_page/model",
    "//ios/chrome/browser/fullscreen/ui_bundled",
    "//ios/chrome/browser/fullscreen/ui_bundled:internal",
    "//ios/chrome/browser/fullscreen/ui_bundled/test",
    "//ios/chrome/browser/history/model",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:incognito_reauth_commands",
    "//ios/chrome/browser/incognito_reauth/ui_bundled:incognito_reauth_scene_agent",
    "//ios/chrome/browser/keyboard/ui_bundled",
    "//ios/chrome/browser/lens/model",
    "//ios/chrome/browser/lens_overlay/public:lens_overlay_availability",
    "//ios/chrome/browser/location_bar/ui_bundled",
    "//ios/chrome/browser/main/model",
    "//ios/chrome/browser/metrics/model:activity_reporter",
    "//ios/chrome/browser/metrics/model:tab_usage_recorder_browser_agent",
    "//ios/chrome/browser/ntp/model",
    "//ios/chrome/browser/ntp/model:util",
    "//ios/chrome/browser/ntp/ui_bundled:component_factory",
    "//ios/chrome/browser/ntp/ui_bundled:coordinator",
    "//ios/chrome/browser/ntp/ui_bundled:logo",
    "//ios/chrome/browser/omnibox/model/omnibox_focus",
    "//ios/chrome/browser/policy/model:policy_util",
    "//ios/chrome/browser/popup_menu/coordinator",
    "//ios/chrome/browser/prerender/model",
    "//ios/chrome/browser/reader_mode/model",
    "//ios/chrome/browser/reader_mode/model:features",
    "//ios/chrome/browser/reading_list/model",
    "//ios/chrome/browser/save_to_photos/ui_bundled",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/search_engines/model",
    "//ios/chrome/browser/segmentation_platform/model",
    "//ios/chrome/browser/send_tab_to_self/coordinator",
    "//ios/chrome/browser/sessions/model",
    "//ios/chrome/browser/sessions/model:fake",
    "//ios/chrome/browser/settings/model/sync/utils",
    "//ios/chrome/browser/shared/coordinator/layout_guide",
    "//ios/chrome/browser/shared/coordinator/layout_guide:layout_guide_scene_agent",
    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/url:constants",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/util:url_with_title",
    "//ios/chrome/browser/sharing/ui_bundled",
    "//ios/chrome/browser/side_swipe/ui_bundled",
    "//ios/chrome/browser/signin/model:authentication_service",
    "//ios/chrome/browser/signin/model:authentication_service_factory",
    "//ios/chrome/browser/signin/model:test_support",
    "//ios/chrome/browser/snapshots/model",
    "//ios/chrome/browser/snapshots/model:snapshot_source",
    "//ios/chrome/browser/start_surface/ui_bundled",
    "//ios/chrome/browser/sync/model",
    "//ios/chrome/browser/sync/model:sync_error_browser_agent",
    "//ios/chrome/browser/sync/model:test_support",
    "//ios/chrome/browser/tab_insertion/model",
    "//ios/chrome/browser/tabs/ui_bundled",
    "//ios/chrome/browser/tips_manager/model:factory",
    "//ios/chrome/browser/toolbar/coordinator",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled:coordinator",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/fullscreen",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/test",
    "//ios/chrome/browser/url_loading/model",
    "//ios/chrome/browser/url_loading/model:new_tab_animation_tab_helper",
    "//ios/chrome/browser/url_loading/model:test_support",
    "//ios/chrome/browser/view_source/model",
    "//ios/chrome/browser/web/model",
    "//ios/chrome/browser/web/model:delegate",
    "//ios/chrome/browser/web_state_list/model/web_usage_enabler",
    "//ios/chrome/common/ui/reauthentication",
    "//ios/chrome/test:block_cleanup_test",
    "//ios/chrome/test:test_support",
    "//ios/chrome/test/app:test_support",
    "//ios/net",
    "//ios/public/provider/chrome/browser/user_feedback:user_feedback_api",
    "//ios/web/common:uikit",
    "//ios/web/public",
    "//ios/web/public/find_in_page",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//ios/web/web_state:web_state_impl_header",
    "//ios/web/web_state/ui",
    "//net",
    "//net:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base",
    "//ui/base:test_support",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "fake_browser_view_controller.h",
    "fake_browser_view_controller.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser/main/ui",
    "//ui/base",
  ]
}
