# Do NOT add chrome or components to the list below.  We shouldn't be
# including files from src/chrome or src/components 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/shell",  # for content_browsertests
  "+content/test",

  # content isn't tied to prefs so that other embedders are able to pick
  # different ways of storing their preferences. Also, this is to avoid prefs
  # being used as a parallel API to the Content API.
  "-base/prefs",

  "+blink",

  "+cc",
  "-cc/blink",
  # If you want to use any of these files, move them to src/base first.
  "-cc/base/scoped_ptr_algorithm.h",
  "-cc/base/scoped_ptr_deque.h",
  "-cc/base/scoped_ptr_vector.h",

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

  "+dbus",
  "+gpu",
  "+mojo/common",
  "+net",
  "+ppapi",
  "+printing",
  "+sandbox",
  "+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, see content/browser/speech/DEPS and
  # content/browser/geolocation/DEPS.  Both of 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/flac",
  "+third_party/libjingle",
  "+third_party/mojo/src/mojo/edk/embedder",
  "+third_party/mojo/src/mojo/edk/js",
  "+third_party/mojo/src/mojo/edk/test",
  "+third_party/mojo/src/mojo/public",
  "+third_party/mozilla",
  "+third_party/npapi/bindings",
  "+third_party/ocmock",
  "+third_party/re2",
  "+third_party/skia",
  "+third_party/sqlite",
  "+third_party/tcmalloc",
  "+third_party/khronos",
  "+third_party/webrtc",
  "+third_party/zlib/google",
  "+third_party/WebKit/public/platform",
  "+third_party/WebKit/public/web",

  "+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/events",
  "+ui/gfx",
  "+ui/gl",
  "+ui/native_theme",
  "+ui/ozone/gpu",
  "+ui/ozone/public",
  "+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",
]
