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/client",
  "+components/metrics",
  "+components/metrics:single_sample_metrics",
  "+components/payments",
  "+components/url_formatter",
  "+components/variations/net",
  "+components/viz/client",
  "+components/viz/common",
  # *********************************** NOTE ***********************************
  # If adding a new component dependency, email content/OWNERS first.
  # ****************************************************************************

  "+chromeos/system/core_scheduling.h",
  "+content/public/child",
  "+content/public/renderer",
  "+content/child",
  "+device/base/synchronization",
  "+device/gamepad/public/cpp",
  "+device/gamepad/public/mojom",
  "+gin",
  "+jingle/glue",
  "+mojo",
  "+services",
  "-storage/browser",
  "+third_party/hyphen/hyphen.h",
  "+third_party/webrtc_overrides",
  "+third_party/blink/public/common",
  "+third_party/blink/public/mojom",
  "+v8/include",
  "+v8/src/third_party/vtune",
]

specific_include_rules = {
  '.*_[a-z]*browsertest.*': [
    "+content/public/browser",
    "+content/shell",
  ],
  "render_thread_impl_browsertest\.cc": [
    "+content/app/mojo/mojo_init.h",
  ],
  "render_thread_impl_discardable_memory_browsertest\.cc": [
    "+components/discardable_memory/service",
    "+content/browser/browser_main_loop.h",
  ],
  # TODO(crbug.com/734668): Dependencies on ozone should be removed, as content
  # embedded in mus won't be able to talk to the native ozone.
  "renderer_main\.cc": [
    "+ui/ozone/public/client_native_pixmap_factory_ozone.h",
  ],
  ".*_(unit|pixel|perf)test.*\.cc": [
    "+components/viz/test",
    "+third_party/blink/renderer/platform/testing",
  ],
}
