| # 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/strings/grit", # For generated headers |
| "+content/common", |
| "+content/grit", |
| "+content/public/common", |
| "+content/public/test", |
| "+content/services/auction_worklet/public", |
| "+content/test", |
| "+blink/public/resources/grit", |
| "+cc", |
| |
| "-components", |
| # Content can depend on components that are: |
| # 1) related to the implementation of the web platform, or, |
| # 2) shared code between third_party/blink 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. |
| |
| "+components/app_launch_prefetch", |
| "+components/attribution_reporting", |
| "+components/browsing_topics/common", |
| "+components/input", |
| "+components/memory_pressure", |
| # components/performance_manager sits between chrome/ and content/, except for |
| # the mojo interfaces it exposes to content/ and third_party/blink/. |
| "+components/performance_manager/public/mojom", |
| "+components/services/filesystem", |
| "+components/services/font/public", |
| "+components/services/font_data/public", |
| "+components/startup_metric_utils", |
| "+components/variations", |
| "+components/value_store", |
| |
| "+crypto", |
| "+grit/blink_resources.h", |
| |
| "+dbus", |
| "+gpu", |
| "+media", |
| "+mojo/core/embedder", |
| "+mojo/public", |
| "+net", |
| "+ppapi", |
| "+printing", |
| "+sandbox", |
| "+services/proxy_resolver/public/mojom", |
| "+services/service_manager/zygote", |
| "+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/blink/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/color", |
| "+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", |
| "+ui/base/resource/resource_scale_factor.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. |
| "+content/public/android/common_jni", |
| "+content/public/android/content_jni_headers", |
| "+content/public/android/content_main_dex_jni", |
| "+content/public/android/jar_jni", |
| ] |
| |
| specific_include_rules = { |
| ".*_browsertest[a-z_]*\.(cc|h|mm)": [ |
| # content -> content/shell dependency is disallowed, except browser tests. |
| "+content/shell/browser", |
| "+content/shell/common", |
| ], |
| "content_(features|switches).h": [ |
| # content -> tools dependency is disallowed, except buildflags for switches. |
| "+tools/v8_context_snapshot/buildflags.h", |
| ], |
| } |
| |
| new_usages_require_review = True |