# 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 = [
  "//content/common/frame_owner_properties.h",
  "//content/common/frame_replication_state.h",
  "//content/common/resize_params.h",
  "//content/public/common/renderer_preferences.h",
  "//content/public/common/web_preferences.h",
  "//net/base/network_change_notifier.h",
  "//third_party/WebKit/public/web/WebPopupType.h",
]
traits_headers = [
  "//content/common/frame_messages.h",
  "//content/common/view_messages.h",
  "//content/public/common/common_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.
  "//cc/ipc",
  "//media",
  "//media/base/ipc",
  "//net",
  "//ppapi/features",
  "//ui/accessibility",
  "//ui/base/ime:text_input_types",
  "//ui/gfx/ipc",
  "//ui/gfx/ipc/color",
  "//ui/gfx/ipc/skia",
  "//ui/surface",
  "//url/ipc:url_ipc",
]
type_mappings = [
  "content.mojom.FrameOwnerProperties=content::FrameOwnerProperties",
  "content.mojom.FrameReplicationState=content::FrameReplicationState",
  "content.mojom.NetworkConnectionType=net::NetworkChangeNotifier::ConnectionType",
  "content.mojom.RendererPreferences=content::RendererPreferences",
  "content.mojom.ResizeParams=content::ResizeParams",
  "content.mojom.WebPopupType=blink::WebPopupType",
  "content.mojom.WebPreferences=content::WebPreferences",
]
