chromium/chromeos/ui/frame/BUILD.gn

# Copyright 2020 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/chromeos/ui_mode.gni")

assert(is_chromeos,
       "Non-Chrome-OS or Lacros builds must not depend on //chromeos")

# C++ headers and sources that can be used by both ash and lacros builds.
source_set("frame") {
  defines = [ "IS_CHROMEOS_UI_FRAME_IMPL" ]

  sources = [
    "caption_buttons/caption_button_model.h",
    "caption_buttons/frame_back_button.cc",
    "caption_buttons/frame_back_button.h",
    "caption_buttons/frame_caption_button_container_view.cc",
    "caption_buttons/frame_caption_button_container_view.h",
    "caption_buttons/frame_center_button.cc",
    "caption_buttons/frame_center_button.h",
    "caption_buttons/frame_size_button.cc",
    "caption_buttons/frame_size_button.h",
    "caption_buttons/frame_size_button_delegate.h",
    "caption_buttons/snap_controller.cc",
    "caption_buttons/snap_controller.h",
    "default_frame_header.cc",
    "default_frame_header.h",
    "desks/move_to_desks_menu_delegate.cc",
    "desks/move_to_desks_menu_delegate.h",
    "desks/move_to_desks_menu_model.cc",
    "desks/move_to_desks_menu_model.h",
    "frame_color_metrics_helper.cc",
    "frame_color_metrics_helper.h",
    "frame_header.cc",
    "frame_header.h",
    "frame_utils.cc",
    "frame_utils.h",
    "header_view.cc",
    "header_view.h",
    "highlight_border_overlay.cc",
    "highlight_border_overlay.h",
    "immersive/immersive_context.cc",
    "immersive/immersive_context.h",
    "immersive/immersive_focus_watcher.cc",
    "immersive/immersive_focus_watcher.h",
    "immersive/immersive_fullscreen_controller.cc",
    "immersive/immersive_fullscreen_controller.h",
    "immersive/immersive_fullscreen_controller_delegate.h",
    "immersive/immersive_revealed_lock.cc",
    "immersive/immersive_revealed_lock.h",
    "interior_resize_handler_targeter.cc",
    "interior_resize_handler_targeter.h",
    "multitask_menu/float_controller_base.cc",
    "multitask_menu/float_controller_base.h",
    "multitask_menu/multitask_button.cc",
    "multitask_menu/multitask_button.h",
    "multitask_menu/multitask_menu.cc",
    "multitask_menu/multitask_menu.h",
    "multitask_menu/multitask_menu_constants.h",
    "multitask_menu/multitask_menu_metrics.cc",
    "multitask_menu/multitask_menu_metrics.h",
    "multitask_menu/multitask_menu_nudge_controller.cc",
    "multitask_menu/multitask_menu_nudge_controller.h",
    "multitask_menu/multitask_menu_view.cc",
    "multitask_menu/multitask_menu_view.h",
    "multitask_menu/split_button_view.cc",
    "multitask_menu/split_button_view.h",
    "non_client_frame_view_base.cc",
    "non_client_frame_view_base.h",
  ]

  public_deps = [ "//ui/base/mojom:ui_base_types" ]

  deps = [
    "//base",
    "//chromeos/constants/",
    "//chromeos/strings:strings_grit",
    "//chromeos/ui/base",
    "//chromeos/ui/vector_icons",
    "//chromeos/ui/wm",
    "//chromeos/utils",
    "//components/prefs",
    "//skia",
    "//ui/aura",
    "//ui/base",
    "//ui/chromeos/styles:cros_tokens_color_mappings_generator",
    "//ui/color",
    "//ui/events/devices:devices",
    "//ui/platform_window",
    "//ui/strings:ui_strings_grit",
    "//ui/views",
    "//ui/views/window/vector_icons",
    "//ui/wm/public",
  ]

  if (is_chromeos_ash) {
    deps += [
      "//ash/constants",
      "//components/user_manager",
    ]
  }
}

source_set("test_support") {
  testonly = true
  sources = [
    "immersive/immersive_fullscreen_controller_test_api.cc",
    "immersive/immersive_fullscreen_controller_test_api.h",
    "multitask_menu/multitask_menu_view_test_api.cc",
    "multitask_menu/multitask_menu_view_test_api.h",
  ]

  deps = [
    ":frame",
    "//base",
    "//services/device/public/cpp:test_support",
    "//services/network/public/cpp:cpp",
    "//ui/aura",
    "//ui/aura:test_support",
    "//ui/gfx",
    "//ui/gfx:test_support",
    "//ui/views",
  ]
}

source_set("interactive_ui_tests") {
  testonly = true

  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  sources = [ "non_client_frame_view_interactive_uitest.cc" ]

  deps = [
    ":frame",
    ":test_support",
    "//base/test:test_support",
    "//chrome/browser/ui/chromeos:test_support",
    "//chrome/test:test_support",
    "//chrome/test:test_support_ui",
    "//chromeos/crosapi/mojom",
    "//chromeos/ui/base",
    "//content/test:test_support",
  ]
}