include_rules = [
  "-content",

  # These are low-level system APIs on ChromeOS that need to be available
  # everywhere.
  "+chromeos/crosapi/cpp/crosapi_constants.h",
  "+chromeos/lacros/lacros_service.h",
  "+chromeos/lacros/lacros_test_helper.h",
  "+chromeos/startup/startup_switches.h",

  # Tests can use all content/public headers.
  "+content/public",

  # This file does not belong in content/public as it should not be
  # included directly by embedders of content/.  It must however be
  # available to code in content/public.
  "+content/common/content_export.h",

  "+components/breadcrumbs/core",
  "+components/discardable_memory/service",
  "+components/download/public/common",
  "+components/leveldb_proto/public",
  "+components/network_session_configurator/common/network_switches.h",
  "+components/services/storage/privileged",
  "+components/services/storage/public",
  "+components/startup_metric_utils/browser",
  "+components/ukm/test_ukm_recorder.h",
  "+components/viz/client",
  "+components/viz/common",
  "+components/viz/host",
  "+components/viz/test",
  "+device/vr/public/mojom",
  "+services/audio",
  "+services/cert_verifier",
  "+services/metrics/public/cpp",
  "+services/network",
  "+services/service_manager",
  "+services/tracing/public/cpp",
  "+testing/android/native_test/native_browser_test_support.h",
  "+tools/v8_context_snapshot/buildflags.h",
  "+ui/base/resource/resource_bundle.h",
  "+ui/base/resource/resource_bundle_android.h",
  "+ui/ozone/public",
  "+ui/views",
  "+v8/include/v8.h",
  "+ui/platform_window/common/platform_window_defaults.h",
]

specific_include_rules = {
  ".*\.(cc|mm)": [
    # Ensure we don't leak internal content headers through public headers. But
    # testing utilities can access anything in content/.
    "+content",
    "+components/tracing/common",
    "+gin/v8_initializer.h",
    "+services/network/network_context.h",
    "+third_party/iaccessible2",
    "+ui/base/resource/resource_bundle.h",
  ],
  # Shell-based browser test set up should use this Shell-derived
  # ContentMainDelegate, but tests that use content should not be using Shell
  # directly.
  "content_browser_test_shell_main_delegate.h": [
    "+content/shell/app/shell_main_delegate.h"
  ],
  "content_browser_test_content_browser_client.h": [
    "+content/shell/browser/shell_content_browser_client.h"
  ],
  "browser_test_base.cc": [
    "+ui/platform_window/fuchsia/initialize_presenter_api_view.h"
  ],
  "browser_test_utils.cc": [
    "+ash/webui/grit/ash_webui_common_resources.h"
  ]
}