chromium/ios/chrome/browser/ui/popup_menu/overflow_menu/BUILD.gn

# Copyright 2021 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/swift_source_set.gni")

source_set("overflow_menu_constants") {
  sources = [
    "overflow_menu_constants.cc",
    "overflow_menu_constants.h",
  ]
  deps = [ "//base" ]
}

source_set("overflow_menu") {
  sources = [
    "overflow_menu_action_provider.h",
    "overflow_menu_mediator.h",
    "overflow_menu_mediator.mm",
    "overflow_menu_metrics.h",
    "overflow_menu_metrics.mm",
    "overflow_menu_orderer.h",
    "overflow_menu_orderer.mm",
  ]
  deps = [
    ":feature_flags",
    ":overflow_menu_constants",
    ":overflow_menu_swift",
    "//components/bookmarks/browser",
    "//components/bookmarks/common",
    "//components/feature_engagement/public",
    "//components/language/ios/browser",
    "//components/prefs",
    "//components/prefs/ios",
    "//components/profile_metrics",
    "//components/reading_list/core",
    "//components/reading_list/ios",
    "//components/supervised_user/core/browser",
    "//components/supervised_user/core/common",
    "//components/sync/service",
    "//components/translate/core/browser",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/bookmarks/model",
    "//ios/chrome/browser/bookmarks/ui_bundled:core",
    "//ios/chrome/browser/bookmarks/ui_bundled:utils",
    "//ios/chrome/browser/commerce/model/push_notification",
    "//ios/chrome/browser/default_browser/model:default_browser_interest_signals",
    "//ios/chrome/browser/default_browser/model:utils",
    "//ios/chrome/browser/find_in_page/model",
    "//ios/chrome/browser/follow/model:browser_agent",
    "//ios/chrome/browser/follow/model:enums",
    "//ios/chrome/browser/follow/model:tab_helper",
    "//ios/chrome/browser/follow/model:utils",
    "//ios/chrome/browser/follow/ui_bundled",
    "//ios/chrome/browser/intents:intents_donation_helper",
    "//ios/chrome/browser/iph_for_new_chrome_user/model",
    "//ios/chrome/browser/lens_overlay/coordinator:lens_overlay_availability",
    "//ios/chrome/browser/ntp/shared/metrics",
    "//ios/chrome/browser/overlays/model",
    "//ios/chrome/browser/policy/model",
    "//ios/chrome/browser/policy/model:policy_util",
    "//ios/chrome/browser/policy/ui_bundled:user_policy_scene_agent",
    "//ios/chrome/browser/reading_list/model",
    "//ios/chrome/browser/settings/model/sync/utils:identity_error_util",
    "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
    "//ios/chrome/browser/shared/model/browser",
    "//ios/chrome/browser/shared/model/browser_state",
    "//ios/chrome/browser/shared/model/prefs",
    "//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/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/public/features:system_flags",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/supervised_user/model:capabilities",
    "//ios/chrome/browser/translate/model",
    "//ios/chrome/browser/ui/browser_container:ui",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/popup_menu:metrics_protocols",
    "//ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history",
    "//ios/chrome/browser/ui/popup_menu/overflow_menu/resources",
    "//ios/chrome/browser/ui/reading_list",
    "//ios/chrome/browser/ui/settings/clear_browsing_data:features",
    "//ios/chrome/browser/ui/sharing",
    "//ios/chrome/browser/ui/tab_switcher:utils",
    "//ios/chrome/browser/ui/whats_new:util",
    "//ios/chrome/browser/web/model",
    "//ios/chrome/browser/web/model/font_size",
    "//ios/chrome/browser/window_activities/model",
    "//ios/public/provider/chrome/browser/user_feedback:user_feedback_api",
    "//ios/web/common:user_agent",
    "//ios/web/public",
    "//ui/base",
  ]
}

swift_source_set("overflow_menu_swift") {
  bridge_header = "overflow_menu_swift_bridge.h"
  sources = [
    "Color+overflow_menu.swift",
    "action_customization_model.swift",
    "destination_customization_model.swift",
    "destination_drag_handler.swift",
    "destination_edit_button.swift",
    "menu_customization_animation_id.swift",
    "menu_customization_view.swift",
    "overflow_menu_action.swift",
    "overflow_menu_action_group.swift",
    "overflow_menu_action_list.swift",
    "overflow_menu_action_row.swift",
    "overflow_menu_action_section.swift",
    "overflow_menu_container_view.swift",
    "overflow_menu_destination.swift",
    "overflow_menu_destination_list.swift",
    "overflow_menu_destination_view.swift",
    "overflow_menu_footer.swift",
    "overflow_menu_footer_row.swift",
    "overflow_menu_hosting_controller.swift",
    "overflow_menu_item.swift",
    "overflow_menu_list_style.swift",
    "overflow_menu_model.swift",
    "overflow_menu_row_icon.swift",
    "overflow_menu_ui_configuration.swift",
    "overflow_menu_view.swift",
    "overflow_menu_view_provider.swift",
  ]

  deps = [
    "//base",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/shared/ui/util:util_swiftui",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/popup_menu:metrics_protocols",
    "//ios/chrome/common:timing",
    "//ios/chrome/common/ui/colors:swift",
    "//ui/base",
  ]

  frameworks = [
    "Foundation.framework",
    "SwiftUI.framework",
    "Combine.framework",
  ]
}

source_set("feature_flags") {
  sources = [
    "feature_flags.h",
    "feature_flags.mm",
  ]
  deps = [
    "//base",
    "//components/password_manager/core/common:features",
    "//ios/chrome/browser/shared/public/features",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "action_customization_model_unittest.mm",
    "destination_customization_model_unittest.mm",
    "overflow_menu_constants_unittest.mm",
    "overflow_menu_mediator_unittest.mm",
    "overflow_menu_metrics_unittest.mm",
    "overflow_menu_orderer_unittest.mm",
  ]
  deps = [
    ":overflow_menu",
    ":overflow_menu_constants",
    ":overflow_menu_swift",
    "//base",
    "//base/test:test_support",
    "//components/bookmarks/browser",
    "//components/bookmarks/common",
    "//components/bookmarks/test",
    "//components/feature_engagement/test:test_support",
    "//components/language/ios/browser",
    "//components/password_manager/core/browser:test_support",
    "//components/policy/core/common:test_support",
    "//components/pref_registry",
    "//components/prefs",
    "//components/prefs:test_support",
    "//components/reading_list/core",
    "//components/signin/public/identity_manager",
    "//components/signin/public/identity_manager:test_support",
    "//components/supervised_user/core/browser",
    "//components/supervised_user/core/common",
    "//components/supervised_user/test_support",
    "//components/sync/service",
    "//components/sync_preferences",
    "//components/sync_preferences:test_support",
    "//components/translate/core/browser",
    "//components/translate/core/language_detection",
    "//ios/chrome/browser/bookmarks/model",
    "//ios/chrome/browser/bookmarks/model:test_support",
    "//ios/chrome/browser/overlays/model",
    "//ios/chrome/browser/overlays/model/public/web_content_area",
    "//ios/chrome/browser/overlays/model/test",
    "//ios/chrome/browser/passwords/model:store_factory",
    "//ios/chrome/browser/policy/model:constants",
    "//ios/chrome/browser/policy/model:test_support",
    "//ios/chrome/browser/promos_manager/model:test_support",
    "//ios/chrome/browser/reading_list/model",
    "//ios/chrome/browser/reading_list/model:test_support",
    "//ios/chrome/browser/search_engines/model:template_url_service_factory",
    "//ios/chrome/browser/shared/model/application_context",
    "//ios/chrome/browser/shared/model/browser/test:test_support",
    "//ios/chrome/browser/shared/model/prefs:browser_prefs",
    "//ios/chrome/browser/shared/model/prefs:pref_names",
    "//ios/chrome/browser/shared/model/profile/test",
    "//ios/chrome/browser/shared/model/web_state_list",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/signin/model",
    "//ios/chrome/browser/signin/model:fake_system_identity",
    "//ios/chrome/browser/signin/model:fake_system_identity_manager",
    "//ios/chrome/browser/signin/model:system_identity",
    "//ios/chrome/browser/signin/model:system_identity_manager",
    "//ios/chrome/browser/signin/model:test_support",
    "//ios/chrome/browser/supervised_user/model",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/popup_menu/overflow_menu:feature_flags",
    "//ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history",
    "//ios/chrome/browser/ui/toolbar/test",
    "//ios/chrome/browser/ui/whats_new:constants",
    "//ios/chrome/browser/ui/whats_new:util",
    "//ios/chrome/browser/web/model/font_size",
    "//ios/chrome/test:test_support",
    "//ios/public/provider/chrome/browser/text_zoom:text_zoom_api",
    "//ios/public/provider/chrome/browser/user_feedback:user_feedback_api",
    "//ios/web/public",
    "//ios/web/public/navigation",
    "//ios/web/public/test",
    "//ios/web/public/test/fakes",
    "//testing/gtest",
    "//ui/base:base",
  ]
}

source_set("eg2_tests") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true
  sources = [ "overflow_menu_carousel_egtest.mm" ]
  deps = [
    ":feature_flags",
    "//base",
    "//components/feature_engagement/public",
    "//components/signin/internal/identity_manager:capabilities",
    "//components/sync/base",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/metrics/model:eg_test_support+eg2",
    "//ios/chrome/browser/shared/model/prefs:pref_names",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/signin/model:fake_system_identity",
    "//ios/chrome/browser/ui/authentication:eg_test_support+eg2",
    "//ios/chrome/browser/ui/popup_menu:constants",
    "//ios/chrome/browser/ui/whats_new:constants",
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/chrome/test/earl_grey:switches",
    "//ios/testing/earl_grey:eg_test_support+eg2",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}