include_rules = [
  # Allow inclusion of specific components that we depend on.
  # See comment in content/DEPS for which components are allowed.
  # *********************************** NOTE ***********************************
  # If adding a new component dependency, email content/OWNERS first.
  # ****************************************************************************
  "+components/discardable_memory/common",
  "+components/discardable_memory/public",
  "+components/discardable_memory/service",
  "+components/download/database",
  "+components/download/public/common",
  "+components/download/quarantine/quarantine.h",
  "+components/filename_generation",
  "+components/services/font",
  "+components/services/filesystem",
  "+components/services/font/ppapi_fontconfig_matching.h",
  "+components/services/quarantine/test_support.h",
  "+components/services/quarantine/quarantine.h",
  "+components/services/storage",
  "+components/services/storage/public",
  "+components/session_manager/core",
  "+components/leveldb_proto/public",
  "+components/link_header_util",
  "+components/metrics",
  "+components/metrics:single_sample_metrics",
  "+components/network_session_configurator/common",
  "+components/offline_pages/buildflags/buildflags.h",
  "+components/offline_pages/core/request_header",
  "+components/payments",
  "+components/rappor/public",
  "+components/services/heap_profiling/public",
  "+components/system_media_controls",
  "+components/tracing",
  "+components/ukm",
  "+components/url_formatter",
  "+components/variations/variations_client.h",
  "+components/variations/variations_http_header_provider.h",
  "+components/variations/net",
  "+components/viz",
  "+components/cbor",
  "+components/os_crypt/os_crypt_switches.h",
  # *********************************** NOTE ***********************************
  # If adding a new component dependency, email content/OWNERS first.
  # ****************************************************************************

  "+content/public/app",
  "+content/public/browser",
  "+device/base/synchronization",
  "+device/bluetooth",
  "+device/fido/hid",
  "+device/gamepad", # For gamepad API
  "+device/nfc",
  "+device/vr",  # For WebVR API
  # This can only be used on POSIX, in particular it mustn't be used on Windows
  # in the browser DLL.
  "+gin/v8_initializer.h",
  "+mojo",
  "+services",
  "+sql",
  "+ui/aura_extra",
  "+components/vector_icons",
  "+ui/webui",

  # In general, //content shouldn't depend on //device.
  # This is the an exception.
  "+device/udev_linux",  # For udev utility and wrapper library.

  # Explicitly disallow using SyncMessageFilter to prevent browser from
  # sending synchronous IPC messages on non-UI threads.
  "-ipc/ipc_sync_message_filter.h",

  # Other libraries.
  "+third_party/iaccessible2",
  "+third_party/isimpledom",
  "+third_party/khronos",   # For enum definitions only
  "+third_party/libaom/av1_buildflags.h",
  "+third_party/re2",
  "+third_party/zlib",

  # Allow non-browser Chrome OS code to be used.
  "+chromeos",
  "+third_party/cros_system_api",

  # Limit visibility into Content Service internals.
  "-services/content",
  "+services/content/public",
  "+services/content/navigable_contents_delegate.h",
  "+services/content/service.h",
  "+services/content/service_delegate.h",

  # No inclusion of WebKit from the browser, other than the ones in
  # WebKit/public/{mojom,common}, or the ones that are strictly enum/POD,
  # header-only types, and some selected common code.
  "-third_party/blink",
  "+third_party/blink/public/common",
  "+third_party/blink/public/mojom",
  "+third_party/blink/public/platform/resource_request_blocked_reason.h",
  "+third_party/blink/public/platform/viewport_intersection_state.h",
  "+third_party/blink/public/platform/web_client_hints_type.h",
  "+third_party/blink/public/platform/web_content_security_policy.h",
  "+third_party/blink/public/platform/web_drag_operation.h",
  "+third_party/blink/public/platform/web_fullscreen_video_status.h",
  "+third_party/blink/public/platform/web_intrinsic_sizing_info.h",
  "+third_party/blink/public/platform/web_mixed_content_context_type.h",
  "+third_party/blink/public/platform/web_screen_info.h",
  "+third_party/blink/public/platform/web_text_autosizer_page_info.h",
  "+third_party/blink/public/platform/web_text_input_type.h",
  "+third_party/blink/public/platform/mac/web_scrollbar_theme.h",
  "+third_party/blink/public/platform/modules/service_worker/web_service_worker_error.h",
  "+third_party/blink/public/platform/modules/sms/sms_receiver.mojom.h",
  "+third_party/blink/public/public_buildflags.h",
  "+third_party/blink/public/strings/grit/blink_strings.h",
  "+third_party/blink/public/web/web_ax_enums.h",
  "+third_party/blink/public/web/web_console_message.h",
  "+third_party/blink/public/web/web_context_menu_data.h",
  "+third_party/blink/public/web/web_device_emulation_params.h",
  "+third_party/blink/public/web/web_drag_status.h",
  "+third_party/blink/public/web/web_ime_text_span.h",
  "+third_party/blink/public/web/web_serialized_script_value_version.h",
  "+third_party/blink/public/web/web_tree_scope_type.h",

  # DO NOT ADD ANY CHROME OR COMPONENTS INCLUDES HERE!!!
  # See https://sites.google.com/a/chromium.org/dev/developers/content-module
  # for more information.
]

specific_include_rules = {
  # To share values of UMA enums between product code and tests.
  "cross_site_document_blocking_browsertest.cc": [
    "+services/network/cross_origin_read_blocking.h",
  ],
  # SiteInstance and BrowsingInstance should not depend on the types of things
  # that rely on them, like RenderFrameHostImpl or WebContentsImpl.
  "(site_instance_impl|browsing_instance)\.(cc|h)": [
    "-content/browser/frame_host",
    "-content/browser/web_contents",
  ],
  "storage_partition_impl_unittest.cc": [
    "+third_party/leveldatabase",
  ],
}
