# Copyright 2018 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.

mojom = "//ui/accessibility/mojom/ax_assistant_structure.mojom"
public_headers = [ "//ui/accessibility/ax_assistant_structure.h" ]
traits_headers =
    [ "//ui/accessibility/mojom/ax_assistant_structure_mojom_traits.h" ]
sources = [
  "ax_assistant_structure_mojom_traits.cc",
  "ax_assistant_structure_mojom_traits.h",
]
public_deps = [
  "//ui/accessibility:ax_assistant",
  "//ui/gfx",
  "//ui/gfx/geometry/mojo",
  "//ui/gfx/geometry/mojo:struct_traits",
  "//ui/gfx/range/mojo",
]
type_mappings = [
  "ax.mojom.AssistantTree=std::unique_ptr<ui::AssistantTree>[move_only,nullable_is_same_type]",
  "ax.mojom.AssistantNode=std::unique_ptr<ui::AssistantNode>[move_only]",
]
