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

import("//ui/base/ui_features.gni")

assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")

source_set("actions_headers") {
  sources = [ "chrome_action_id.h" ]

  public_deps = [
    "//chrome/app:command_ids",
    "//ui/actions:actions_headers",
  ]
}

source_set("actions") {
  sources = [
    "chrome_action_properties.cc",
    "chrome_action_properties.h",
    "chrome_actions.cc",
    "chrome_actions.h",
  ]

  deps = [
    ":actions_headers",
    "//ui/actions",
    "//ui/base",
  ]

  if (!is_android) {
    sources += [
      "command_action_updater.cc",
      "command_action_updater.h",
    ]
    deps += [
      "//chrome/browser:command_updater_impl",
      "//chrome/browser:primitives",
      "//chrome/browser/ui/browser_window",
    ]
  }
}

source_set("actions_util") {
  public = [ "actions_util.h" ]
  sources = [ "actions_util.cc" ]

  public_deps = [ "//base" ]

  deps = [ "//ui/gfx" ]
}

if (!is_android) {
  executable("dump_actions") {
    testonly = true

    sources = [ "tools/dump_actions.cc" ]

    deps = [
      ":actions_headers",
      "//ui/actions:actions_headers",
    ]
  }
}

source_set("unit_tests") {
  testonly = true

  sources = [ "chrome_actions_unittest.cc" ]

  deps = [
    ":actions",
    ":actions_headers",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

if (!is_android) {
  source_set("browser_tests") {
    testonly = true

    sources = [ "command_action_updater_browsertest.cc" ]

    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

    deps = [
      ":actions",
      "//base",
      "//base/test:test_support",
      "//chrome/browser/ui",
      "//chrome/browser/ui:browser_actions",
      "//chrome/browser/ui:ui_features",
      "//chrome/browser/ui/side_panel",
      "//chrome/browser/ui/side_panel:side_panel_views_dependent",
      "//chrome/test:test_support",
      "//content/test:test_support",
      "//testing/gmock",
      "//testing/gtest",
      "//ui/actions",
    ]
  }
}
