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

import("//mojo/public/tools/bindings/mojom.gni")

static_library("common") {
  sources = [
    "aliases.h",
    "element_id.cc",
    "element_id.h",
    "record_replay_features.cc",
    "record_replay_features.h",
    "record_replay_switches.cc",
    "record_replay_switches.h",
  ]
  deps = [ "//base" ]
}

mojom("mojom") {
  sources = [ "record_replay.mojom" ]
  public_deps = [ "//mojo/public/mojom/base" ]
  cpp_typemaps = [
    {
      types = [
        {
          mojom = "record_replay.mojom.DomNodeId"
          cpp = "::record_replay::DomNodeId"
          copyable_pass_by_value = true
        },
        {
          mojom = "record_replay.mojom.FieldValue"
          cpp = "::record_replay::FieldValue"
          move_only = true
        },
        {
          mojom = "record_replay.mojom.Selector"
          cpp = "::record_replay::Selector"
          move_only = true
        },
      ]
      traits_headers = [ "record_replay_mojom_traits.h" ]
      traits_sources = [ "record_replay_mojom_traits.cc" ]
      traits_public_deps = [ ":common" ]
    },
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "test_support/mock_task_store.cc",
    "test_support/mock_task_store.h",
  ]
  public_deps = [
    "//components/record_replay/core/browser",
    "//testing/gmock",
  ]
  deps = [ "//base" ]
}
