# Do NOT add chrome to the list below. We shouldn't be including files
# from src/chrome in src/content.
include_rules = [
  # The subdirectories in content/ will manually allow their own include
  # directories in content/ so we disallow all of them.
  "-content",
  "+content/app/resources/grit/content_resources.h",
  "+content/common",
  "+content/grit",
  "+content/public/common",
  "+content/public/test",
  "+content/test",

  "+blink/public/resources/grit",

  "+cc",
  "-cc/blink",

  "-components",
  # Content can depend on components that are:
  #   1) related to the implementation of the web platform
  #   2) shared code between third_party/WebKit and content
  # It should not depend on chrome features or implementation details, i.e. the
  # original components/ directories which was code split out from chrome/ to be
  # shared with iOS. This includes, but isn't limited to, browser features such
  # as autofill or extensions, and chrome implementation details such as
  # settings, packaging details, installation or crash reporting.

  "+crypto",
  "+grit/blink_resources.h",
  "+grit/content_strings.h",

  "+dbus",
  "+gpu",
  "+media",
  "+mojo/common",
  "+mojo/edk/embedder",
  "+mojo/edk/js",
  "+mojo/message_pump",
  "+mojo/public",
  "+net",
  "+ppapi",
  "+printing",
  "+sandbox",
  "+services/proxy_resolver/public/mojom",
  "+services/service_manager/embedder",
  "+skia",

  # In general, content/ should not rely on google_apis, since URLs
  # and access tokens should usually be provided by the
  # embedder.
  #
  # There are a couple of specific parts of content that are excepted
  # from this rule, e.g. content/browser/speech/DEPS. These are cases of
  # implementations that are strongly tied to Google servers, i.e. we
  # don't expect alternate implementations to be provided by the
  # embedder.
  "-google_apis",

  # Don't allow inclusion of these other libs we shouldn't be calling directly.
  "-v8",
  "-tools",

  # Allow inclusion of third-party code:
  "+third_party/angle",
  "+third_party/boringssl/src/include",
  "+third_party/flac",
  "+third_party/mozilla",
  "+third_party/ocmock",
  "+third_party/re2",
  "+third_party/skia",
  "+third_party/sqlite",
  "+third_party/khronos",
  "+third_party/webrtc",
  "+third_party/webrtc_overrides",
  "+third_party/zlib/google",
  "+third_party/WebKit/public",

  "+ui/accelerated_widget_mac",
  "+ui/accessibility",
  "+ui/android",
  # Aura is analogous to Win32 or a Gtk, so it is allowed.
  "+ui/aura",
  "+ui/base",
  "+ui/compositor",
  "+ui/display",
  "+ui/events",
  "+ui/gfx",
  "+ui/gl",
  "+ui/latency",
  "+ui/native_theme",
  "+ui/resources/grit/ui_resources.h",
  "+ui/resources/grit/webui_resources.h",
  "+ui/resources/grit/webui_resources_map.h",
  "+ui/shell_dialogs",
  "+ui/snapshot",
  "+ui/strings/grit/ui_strings.h",
  "+ui/surface",
  "+ui/touch_selection",
  "+ui/wm",
  # Content knows about grd files, but the specifics of how to get a resource
  # given its id is left to the embedder.
  "-ui/base/l10n",
  "-ui/base/resource",
  # These files aren't related to grd, so they're fine.
  "+ui/base/l10n/l10n_util_android.h",
  "+ui/base/l10n/l10n_util_win.h",

  # Content shouldn't depend on views. While we technically don't need this
  # line, since the top level DEPS doesn't allow it, we add it to make this
  # explicit.
  "-ui/views",

  "+storage/browser",
  "+storage/common",

  # For generated JNI includes.
  "+jni",
]

specific_include_rules = {
  ".*_browsertest[a-z_]*\.(cc|h)": [
    # content -> content/shell dependency is disallowed, except browser tests.
    "+content/shell/browser",
    "+content/shell/common",

    # components/variations/variations_params_manager.h is allowed from tests
    # (it is part of //components/variations:test_support target).
    "+components/variations/variations_params_manager.h",
  ],

  "test_utils\.cc": [
    # components/variations/variations_params_manager.h is allowed from tests
    # (it is part of //components/variations:test_support target).
    "+components/variations/variations_params_manager.h",
  ],
}
