# Copyright 2016 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 = "//content/common/native_types.mojom"
public_headers = [
  "//cc/input/touch_action.h",
  "//content/common/edit_command.h",
  "//content/common/frame_owner_properties.h",
  "//content/common/frame_replication_state.h",
  "//content/common/input/input_event.h",
  "//content/common/visual_properties.h",
  "//content/public/common/input_event_ack_source.h",
  "//content/public/common/input_event_ack_state.h",
  "//content/common/cursors/webcursor.h",
  "//content/common/input/synthetic_pinch_gesture_params.h",
  "//content/common/input/synthetic_pointer_action_list_params.h",
  "//content/common/input/synthetic_smooth_drag_gesture_params.h",
  "//content/common/input/synthetic_smooth_scroll_gesture_params.h",
  "//content/common/input/synthetic_tap_gesture_params.h",
  "//content/public/common/web_preferences.h",
  "//net/base/network_change_notifier.h",
  "//third_party/blink/public/platform/web_gesture_device.h",
  "//third_party/blink/public/platform/web_gesture_event.h",
  "//third_party/blink/public/platform/web_input_event.h",
  "//third_party/blink/public/platform/web_mouse_wheel_event.h",
  "//third_party/blink/public/platform/web_pointer_properties.h",
  "//third_party/blink/public/platform/web_touch_point.h",
  "//ui/events/blink/did_overscroll_params.h",
  "//ui/events/blink/web_input_event_traits.h",
  "//ui/latency/ipc/latency_info_param_traits.h",
]
traits_headers = [
  "//content/common/frame_messages.h",
  "//content/common/input_messages.h",
  "//content/common/input/input_event_struct_traits.h",
  "//content/common/input/touch_action_optional_struct_traits.h",
  "//content/common/view_messages.h",
  "//content/common/widget_messages.h",
  "//content/public/common/common_param_traits.h",
  "//services/network/public/cpp/p2p_param_traits.h",
]
public_deps = [
  # NOTE: These dependencies are here to satisfy gn check because
  # common_param_traits_macros.h and/or view_messages.h include their headers.
  # Although the mojo bindings target is configured to allow direct circular
  # includes from //content/common and //content/public/common, this isn't a
  # transitive allowance, so those targets' own public_deps aren't included in
  # the set of implied dependencies.
  "//content/common:buildflags",
  "//media",
  "//media/base/ipc",
  "//net",
  "//ppapi/buildflags",
  "//services/network/public/cpp",
  "//third_party/blink/public/common",
  "//ui/accessibility",
  "//ui/base/ime:text_input_types",
  "//ui/events/blink",
  "//ui/gfx/ipc",
  "//ui/gfx/ipc/color",
  "//ui/gfx/ipc/skia",
  "//ui/surface",
  "//url/ipc:url_ipc",
]
type_mappings = [
  "content.mojom.Button=blink::WebPointerProperties::Button",
  "content.mojom.Cancelability=blink::WebInputEvent::DispatchType",
  "content.mojom.EditCommand=content::EditCommand",
  "content.mojom.Event=std::unique_ptr<content::InputEvent>[move_only]",
  "content.mojom.EventType=blink::WebInputEvent::Type",
  "content.mojom.FrameOwnerProperties=content::FrameOwnerProperties",
  "content.mojom.FrameReplicationState=content::FrameReplicationState",
  "content.mojom.GestureDevice=blink::WebGestureDevice",
  "content.mojom.InertialPhaseState=blink::WebGestureEvent::InertialPhaseState",
  "content.mojom.InputEventAckSource=content::InputEventAckSource",
  "content.mojom.InputEventAckState=content::InputEventAckState",
  "content.mojom.NetworkConnectionType=net::NetworkChangeNotifier::ConnectionType",
  "content.mojom.DidOverscrollParams=ui::DidOverscrollParams",
  "content.mojom.PointerType=blink::WebPointerProperties::PointerType",
  "content.mojom.VisualProperties=content::VisualProperties",
  "content.mojom.ScrollUnits=blink::WebGestureEvent::ScrollUnits",
  "content.mojom.SyntheticSmoothDrag=content::SyntheticSmoothDragGestureParams",
  "content.mojom.SyntheticSmoothScroll=content::SyntheticSmoothScrollGestureParams",
  "content.mojom.SyntheticPinch=content::SyntheticPinchGestureParams",
  "content.mojom.SyntheticTap=content::SyntheticTapGestureParams",
  "content.mojom.SyntheticPointerAction=content::SyntheticPointerActionListParams",
  "content.mojom.TouchAction=cc::TouchAction",
  "content.mojom.TouchActionOptional=cc::TouchAction",
  "content.mojom.TouchState=blink::WebTouchPoint::State",
  "content.mojom.WebCursor=content::WebCursor",
  "content.mojom.WebPopupType=blink::WebPopupType",
  "content.mojom.WebPreferences=content::WebPreferences",
]
