# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//ios/build/chrome_build.gni")

source_set("model") {
  sources = [
    "browser_agent_util.h",
    "browser_agent_util.mm",
    "browser_impl.h",
    "browser_impl.mm",
    "browser_web_state_list_delegate.h",
    "browser_web_state_list_delegate.mm",
  ]

  deps = [
    "//base",
    "//components/breadcrumbs/core:status",
    "//components/data_sharing/public:features",
    "//components/send_tab_to_self:features",
    "//ios/chrome/browser/app_launcher/model",
    "//ios/chrome/browser/autocomplete/model",
    "//ios/chrome/browser/browser_view/model",
    "//ios/chrome/browser/bubble/model",
    "//ios/chrome/browser/cobrowse/model",
    "//ios/chrome/browser/collaboration/model",
    "//ios/chrome/browser/crash_report/model/breadcrumbs",
    "//ios/chrome/browser/credential_provider/model:buildflags",
    "//ios/chrome/browser/device_sharing/model",
    "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
    "//ios/chrome/browser/favicon/model",
    "//ios/chrome/browser/fullscreen/model",
    "//ios/chrome/browser/fullscreen/ui_bundled",
    "//ios/chrome/browser/infobars/model/overlays/browser_agent:browser_agent_util",
    "//ios/chrome/browser/intelligence/actor/model",
    "//ios/chrome/browser/intelligence/bwg/model:browser_agent",
    "//ios/chrome/browser/intelligence/features",
    "//ios/chrome/browser/intelligence/persist_tab_context/model",
    "//ios/chrome/browser/intents/model:user_activity_browser_agent",
    "//ios/chrome/browser/lens/model",
    "//ios/chrome/browser/metrics/model",
    "//ios/chrome/browser/metrics/model:tab_usage_recorder_browser_agent",
    "//ios/chrome/browser/omnibox/model/omnibox_focus",
    "//ios/chrome/browser/policy/model",
    "//ios/chrome/browser/policy/model:browser_agent",
    "//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/saved_tab_groups/model:tab_group_service",
    "//ios/chrome/browser/send_tab_to_self/model",
    "//ios/chrome/browser/sessions/model",
    "//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/profile",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/signin/model:authentication_service",
    "//ios/chrome/browser/signin/model:authentication_service_factory",
    "//ios/chrome/browser/snapshots/model",
    "//ios/chrome/browser/start_surface/ui_bundled",
    "//ios/chrome/browser/sync/model:sync_error_browser_agent",
    "//ios/chrome/browser/tab_insertion/model",
    "//ios/chrome/browser/tabs/model",
    "//ios/chrome/browser/tabs/model:dependency_installer",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled/fullscreen",
    "//ios/chrome/browser/translate/model",
    "//ios/chrome/browser/url_loading/model",
    "//ios/chrome/browser/view_source/model",
    "//ios/chrome/browser/web/model",
    "//ios/chrome/browser/web/model:delegate",
    "//ios/chrome/browser/web/model:page_placeholder",
    "//ios/chrome/browser/web_state_list/model/web_usage_enabler",
    "//ios/public/provider/chrome/browser/app_utils:app_utils_api",
    "//ios/public/provider/chrome/browser/cobalt:cobalt_api",
    "//ios/web/common:features",
    "//ios/web/public",
  ]

  if (ios_enable_credential_provider_extension) {
    deps += [ "//ios/chrome/browser/credential_provider/model" ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "browser_impl_unittest.mm",
    "browser_web_state_list_delegate_unittest.mm",
  ]
  deps = [
    ":model",
    "//base/test:test_support",
    "//ios/chrome/browser/saved_tab_groups/model",
    "//ios/chrome/browser/shared/coordinator/scene/test",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/snapshots/model",
    "//ios/chrome/browser/snapshots/model:model_common",
    "//ios/chrome/browser/tabs/model:synced_tabs",
    "//ios/chrome/browser/tips_manager/model:factory",
    "//ios/chrome/browser/voice/model",
    "//ios/chrome/test:test_support",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//testing/gtest",
    "//third_party/ocmock",
    "//ui/base:test_support",
  ]
}
