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

source_set("omnibox") {
  configs += [ "//build/config/compiler:enable_arc" ]

  sources = [
    "location_bar_controller.cc",
    "location_bar_controller.h",
    "location_bar_delegate.h",
    "omnibox_left_image_consumer.h",
    "web_omnibox_edit_controller.cc",
    "web_omnibox_edit_controller.h",
  ]
  deps = [
    "//base",
    "//components/omnibox/browser",
    "//ui/base",
  ]
}

source_set("omnibox_popup_shared") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "truncating_attributed_label.h",
    "truncating_attributed_label.mm",
  ]
  deps = [
    "//base",
    "//components/omnibox/browser",
  ]
  public_deps = [
    "//ui/base",
  ]
}

source_set("omnibox_util") {
  sources = [
    "omnibox_util.cc",
    "omnibox_util.h",
  ]
  deps = [
    "//base",
    "//components/omnibox/browser",
    "//components/security_state/core",
  ]
  public_deps = [
    "//ios/chrome/app/theme",
  ]
}

source_set("omnibox_internal") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "autocomplete_match_formatter.h",
    "autocomplete_match_formatter.mm",
    "autocomplete_result_consumer.h",
    "autocomplete_suggestion.h",
    "chrome_omnibox_client_ios.h",
    "chrome_omnibox_client_ios.mm",
    "clipping_mask_view.h",
    "clipping_mask_view.mm",
    "clipping_textfield.h",
    "clipping_textfield.mm",
    "clipping_textfield_container.h",
    "clipping_textfield_container.mm",
    "image_retriever.h",
    "location_bar_controller_impl.h",
    "location_bar_controller_impl.mm",
    "omnibox_consumer.h",
    "omnibox_container_view.h",
    "omnibox_container_view.mm",
    "omnibox_coordinator.h",
    "omnibox_coordinator.mm",
    "omnibox_mediator.h",
    "omnibox_mediator.mm",
    "omnibox_text_field_delegate.h",
    "omnibox_text_field_ios.h",
    "omnibox_text_field_ios.mm",
    "omnibox_text_field_paste_delegate.h",
    "omnibox_text_field_paste_delegate.mm",
    "omnibox_view_controller.h",
    "omnibox_view_controller.mm",
    "omnibox_view_ios.h",
    "omnibox_view_ios.mm",
    "web_omnibox_edit_controller_impl.h",
    "web_omnibox_edit_controller_impl.mm",
  ]
  deps = [
    ":omnibox",
    ":omnibox_popup_shared",
    ":omnibox_util",
    "resources:omnibox_background",
    "resources:omnibox_clear_icon",
    "resources:omnibox_completion_bookmark",
    "resources:omnibox_completion_calculator",
    "resources:omnibox_completion_default_favicon",
    "resources:omnibox_completion_history",
    "resources:omnibox_completion_search",
    "resources:omnibox_transparent_background",
    "//base",
    "//components/favicon/ios",
    "//components/image_fetcher/ios",
    "//components/resources",
    "//components/search_engines",
    "//components/security_state/core",
    "//components/strings",
    "//ios/chrome/app/strings",
    "//ios/chrome/app/theme",
    "//ios/chrome/browser",
    "//ios/chrome/browser/autocomplete",
    "//ios/chrome/browser/bookmarks",
    "//ios/chrome/browser/bookmarks:bookmarks_utils",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/net",
    "//ios/chrome/browser/prerender",
    "//ios/chrome/browser/search_engines",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/ui",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/fullscreen",
    "//ios/chrome/browser/ui/location_bar:constants",
    "//ios/chrome/browser/ui/omnibox/popup",
    "//ios/chrome/browser/ui/orchestrator:orchestrator",
    "//ios/chrome/browser/ui/toolbar/buttons",
    "//ios/chrome/browser/ui/toolbar/public",
    "//ios/chrome/browser/ui/toolbar/public:feature_flags",
    "//ios/chrome/browser/ui/util",
    "//ios/chrome/common",
    "//ios/public/provider/chrome/browser",
    "//ios/third_party/material_components_ios",
    "//ios/third_party/material_roboto_font_loader_ios",
    "//ios/web",
    "//net",
    "//skia",
    "//third_party/google_toolbox_for_mac",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]
  allow_circular_includes_from = [
    "//ios/chrome/browser/ui/omnibox/popup",
    ":omnibox",
  ]
  public_deps = [
    "//components/omnibox/browser",
    "//components/toolbar",
  ]
  libs = [
    "CoreText.framework",
    "MobileCoreServices.framework",
    "QuartzCore.framework",
    "UIKit.framework",
  ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "clipping_textfield_container_unittest.mm",
    "omnibox_text_field_ios_unittest.mm",
  ]
  deps = [
    ":omnibox",
    ":omnibox_internal",
    ":resources_unit_tests",
    "//base",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//testing/gtest",
    "//ui/base",
  ]
}

bundle_data("resources_unit_tests") {
  visibility = [ ":unit_tests" ]
  testonly = true
  sources = [
    "//ios/chrome/test/data/omnibox/selected_ranges.txt",
  ]
  outputs = [
    "{{bundle_resources_dir}}/" +
        "ios/chrome/test/data/omnibox/{{source_file_part}}",
  ]
}
