# 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/common",
  "+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",

  "+cc",
  # 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_resources.h",
  "+grit/ui_resources.h",
  "+grit/ui_strings.h",
  "+grit/webkit_resources.h",
  "+grit/webkit_strings.h",
  "+grit/webui_resources.h",
  "+grit/webui_resources_map.h",

  "+dbus",
  "+gpu",
  "+mojo/public",
  "+mojo/bindings/js",
  "+mojo/common",
  "+mojo/embedder",
  "+mojo/service_manager",
  "+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/mozilla",
  "+third_party/npapi/bindings",
  "+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/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/public",
  "+ui/shell_dialogs",
  "+ui/snapshot",
  "+ui/surface",
  "+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",
  # This file isn't related to grd, so it's fine.
  "+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",

  "+webkit",

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