include_rules = [
  "+apps",
  "+cc/paint",
  "+chrome/android/native_j_unittests_jni_headers",
  "+chrome/android/chrome_jni_headers",
  "+chrome/android/features/autofill_assistant/jni_headers",
  "+chrome/android/features/dev_ui",
  "+chrome/android/modules",
  "+chrome/browser/profiles/android/jni_headers",
  "+chrome/android/test_support_jni_headers",
  "+chrome/app",
  "+chrome/credential_provider/common",
  "+chrome/grit",
  "+chrome/install_static",
  "+chrome/installer/util",
  "+chrome/notification_helper/notification_helper_constants.h",
  "+chrome/services/app_service/public/mojom",
  "+chrome/services/cups_proxy",
  "+chrome/services/diagnosticsd/public",
  "+chrome/services/file_util/public",
  "+chrome/services/media_gallery_util/public",
  "+chrome/services/printing/public",
  "+chrome/services/sharing/public",
  "+chrome/services/removable_storage_writer/public",
  "+chrome/services/util_win/public",
  "+chromeos",
  "+components/about_ui",
  "+components/account_id",
  "+components/arc",
  "+components/assist_ranker",
  "+components/autofill_assistant/browser",
  "+components/autofill/content/browser",
  "+components/autofill/content/common",
  "+components/autofill/core/browser",
  "+components/autofill/core/common",
  "+components/background_task_scheduler",
  "+components/base32",
  "+components/blacklist/opt_out_blacklist",
  "+components/bookmarks/browser",
  "+components/bookmarks/common",
  "+components/bookmarks/managed",
  "+components/bookmarks/test",
  "+components/browser_ui/settings",
  "+components/browser_sync",
  "+components/browser_ui/site_settings",
  "+components/browser_watcher",
  "+components/browsing_data/content",
  "+components/browsing_data/core",
  "+components/captive_portal",
  "+components/cast_certificate",
  "+components/cast_channel",
  "+components/cbor",
  "+components/cdm/browser",
  "+components/certificate_matching",
  "+components/certificate_transparency",
  "+components/chrome_cleaner/public",
  "+components/chrome_cleaner/test",
  "+components/chromeos_camera",
  "+components/cloud_devices/common",
  "+components/component_updater",
  "+components/component_updater/installer_policies",
  "+components/consent_auditor",
  "+components/constrained_window",
  "+components/content_capture/browser",
  "+components/content_settings/core/browser",
  "+components/content_settings/core/test",
  "+components/contextual_search/buildflags.h",
  "+components/contextual_search/content/browser",
  "+components/contextual_search/content/common",
  "+components/contextual_search/core/browser",
  "+components/cookie_config",
  "+components/crash/content/app",
  "+components/crash/content/browser",
  "+components/crash/core/app",
  "+components/crash/core/browser",
  "+components/crash/core/common",
  "+components/crx_file",
  "+components/data_reduction_proxy/content/browser",
  "+components/data_reduction_proxy/content/common",
  "+components/data_reduction_proxy/core/browser",
  "+components/data_reduction_proxy/core/common",
  "+components/data_reduction_proxy/proto",
  "+components/data_use_measurement/core",
  "+components/dbus",
  "+components/device_event_log",
  "+components/domain_reliability",
  "+components/dom_distiller/content/browser",
  "+components/dom_distiller/content/common",
  "+components/dom_distiller/core",
  "+components/dom_distiller/webui",
  "+components/download/content/factory",
  "+components/download/content/public",
  "+components/download/internal/background_service",
  "+components/download/network/android",
  "+components/download/public/background_service",
  "+components/download/public/common",
  "+components/download/public/task",
  "+components/download/quarantine",
  "+components/drive",
  "+components/embedder_support",
  "+components/encrypted_messages",
  "+components/exo",
  "+components/external_intents",
  "+components/favicon_base",
  "+components/favicon/content",
  "+components/favicon/core",
  "+components/feature_engagement",
  "+components/feed",
  "+components/feedback",
  "+components/find_in_page",
  "+components/flags_ui",
  "+components/games/core",
  "+components/gcm_driver",
  "+components/google/core/browser",
  "+components/google/core/common",
  "+components/grit",
  "+components/guest_view/browser",
  "+components/handoff",
  "+components/heap_profiling",
  "+components/history/content/browser",
  "+components/history/core/browser",
  "+components/history/core/common",
  "+components/history/core/test",
  "+components/image_fetcher/core",
  "+components/infobars/core",
  "+components/invalidation/impl",
  "+components/invalidation/public",
  "+components/javascript_dialogs",
  "+components/keep_alive_registry",
  "+components/keyed_service/content",
  "+components/keyed_service/core",
  "+components/language/content/browser",
  "+components/language/core/browser",
  "+components/language/core/common",
  "+components/language_usage_metrics",
  "+components/leveldb_proto/content",
  "+components/leveldb_proto/public",
  "+components/leveldb_proto/testing",
  "+components/location/android",
  "+components/lookalikes",
  "+components/login",
  "+components/media_message_center",
  "+components/metal_util",
  "+components/metrics",
  "+components/metrics_services_manager",
  "+components/metrics/ui",
  "+components/mirroring/browser",
  "+components/mirroring/mojom",
  "+components/mirroring/service",
  "+components/module_installer/android",
  "+components/nacl/broker",
  "+components/nacl/browser",
  "+components/nacl/common",
  "+components/nacl/loader",
  "+components/navigation_interception",
  "+components/navigation_metrics",
  "+components/net_log",
  "+components/network_hints/common",
  "+components/network_session_configurator/browser",
  "+components/network_session_configurator/common",
  "+components/network_time",
  "+components/ntp_snippets",
  "+components/ntp_tiles",
  "+components/offline_items_collection/core",
  "+components/offline_pages/buildflags",
  "+components/offline_pages/content",
  "+components/offline_pages/core",
  "+components/offline_pages/task",
  "+components/omnibox/browser",
  "+components/onc",
  "+components/open_from_clipboard",
  "+components/optimization_guide",
  "+components/os_crypt",
  "+components/ownership",
  "+components/page_info",
  "+components/page_load_metrics/browser",
  "+components/page_load_metrics/common",
  "+components/paint_preview/features",
  "+components/paint_preview/browser",
  "+components/paint_preview/buildflags",
  "+components/password_manager/content/browser",
  "+components/password_manager/core/browser",
  "+components/password_manager/core/common",
  "+components/payments/content",
  "+components/payments/core",
  "+components/performance_manager/public",
  "+components/performance_manager/embedder",
  "+components/performance_manager/performance_manager_tab_helper.h",
  "+components/performance_manager/test_support",
  "+components/performance_manager/performance_manager_impl.h",
  "+components/permissions",
  "+components/pdf/browser",
  "+components/policy",
  "+components/pref_registry",
  "+components/prefs",
  "+components/previews/content",
  "+components/previews/core",
  "+components/printing/browser",
  "+components/printing/common",
  "+components/profile_metrics",
  "+components/proxy_config",
  "+components/query_parser",
  "+components/quirks",
  "+components/rappor",
  "+components/reading_list/core",
  "+components/remote_cocoa/app_shim",
  "+components/remote_cocoa/browser",
  "+components/remote_cocoa/common",
  "+components/renderer_context_menu",
  "+components/rlz",
  "+components/safe_browsing",
  "+components/safe_search_api",
  "+components/schema_org",
  "+components/search",
  "+components/search_engines",
  "+components/search_provider_logos",
  "+components/security_interstitials/content",
  "+components/security_interstitials/core",
  "+components/security_state/content",
  "+components/security_state/core",
  "+components/send_tab_to_self",
  "+components/services/app_service/public",
  "+components/services/filesystem/public/mojom",
  "+components/services/heap_profiling",
  "+components/services/patch/content",
  "+components/services/patch/public",
  "+components/services/print_compositor/public",
  "+components/services/quarantine",
  '+components/services/storage/public',
  "+components/services/unzip",
  "+components/session_manager",
  "+components/sessions/content",
  "+components/sessions/core",
  "+components/signin/core/browser",
  "+components/signin/public",
  "+components/spellcheck",
  "+components/sqlite_proto",
  "+components/ssl_errors",
  "+components/startup_metric_utils/browser",
  "+components/storage_monitor",
  "+components/strings/grit",
  "+components/subresource_filter/content/browser",
  "+components/subresource_filter/core/browser",
  "+components/subresource_filter/core/common",
  "+components/subresource_filter/core/mojom",
  "+components/suggestions",
  "+components/supervised_user_error_page",
  "+components/sync",
  "+components/sync_bookmarks",
  "+components/sync_device_info",
  "+components/sync_preferences",
  "+components/sync_sessions",
  "+components/sync_user_events",
  "+components/tab_count_metrics",
  "+components/tab_groups",
  "+components/tracing/common",
  "+components/translate/content/browser",
  "+components/translate/content/common",
  "+components/translate/core/browser",
  "+components/translate/core/common",
  "+components/translate/core/language_detection",
  "+components/translate/translate_internals",
  "+components/ui_devtools",
  "+components/ui_metrics",
  "+components/ukm",
  "+components/undo",
  "+components/unified_consent",
  "+components/update_client",
  "+components/upload_list",
  "+components/url_matcher",
  "+components/url_pattern_index/proto",
  "+components/user_manager",
  "+components/user_prefs",
  "+components/vector_icons",
  "+components/version_info",
  "+components/version_ui",
  "+components/viz/common",
  "+components/viz/host",
  "+components/web_cache/browser",
  "+components/webdata/common",
  "+components/webdata_services",
  "+components/web_modal",
  "+components/web_resource",
  "+components/webrtc_logging/browser",
  "+components/webrtc_logging/common",
  "+components/wifi",
  "+components/zoom",
  "+content/public/browser",
  "+content/public/common",
  "+courgette",
  "+device/base",
  "+device/bluetooth",
  "+device/fido",
  "+device/gamepad/public/cpp",
  "+device/vr/buildflags/buildflags.h",
  "+device/vr/public",
  "+extensions/browser",
  "+extensions/common",
  "+extensions/components/javascript_dialog_extensions_client",
  "+extensions/buildflags",
  "+extensions/grit",
  "+extensions/test",
  "+google/cacheinvalidation",  # Sync invalidation API protobuf files.
  "+google_apis",
  "+google_update",
  "+installer_util_strings",  # For generated headers
  "+mash/public/mojom",
  "+media/media_buildflags.h",
  "+media/audio", # For media audio hang monitor.
  "+media/base",  # For media switches
  "+media/capabilities", # For InMemoryVideoDecodeStatsDB
  "+media/cdm/cdm_paths.h",
  "+media/capture",
  "+media/midi",  # For midi switches
  "+media/mojo",  # For mojo media services.
  "+media/renderers",
  "+media/webrtc",  # For webrtc media switches.
  "+ppapi/c",  # For various types.
  "+ppapi/host",
  "+ppapi/proxy",
  "+ppapi/shared_impl",
  "+rlz",
  "+sandbox/win/src",  # The path doesn't say it, but this is the Windows sandbox.
  "+services/audio/public",
  "+services/data_decoder/public",
  "+services/device/public",
  "+services/image_annotation/public",
  "+services/media_session/public",
  "+services/metrics/metrics_mojo_service.h",
  "+services/metrics/public",
  "+services/network/cert_verifier_with_trust_anchors.h",
  "+services/network/cert_verify_proc_chromeos.h",
  "+services/network/ignore_errors_cert_verifier.h",
  "+services/network/network_service.h",
  "+services/network/public",
  "+services/network/test",
  "+services/network/trial_comparison_cert_verifier_mojo.h",
  "+services/network/url_request_context_owner.h",
  "+services/network/url_request_context_builder_mojo.h",
  "+services/preferences/public/cpp",
  "+services/preferences/public/mojom",
  "+services/proxy_resolver",  # Android runs the packaged proxy resolver
                               # service in process and needs impl access.
  "+services/proxy_resolver/public/mojom",
  "+services/resource_coordinator/public/cpp",
  "+services/resource_coordinator/public/mojom",
  "+services/shape_detection/public/mojom",
  "+services/strings",
  "+services/tracing/public/cpp",
  "+services/video_capture/public",
  "+services/viz/public",
  "+services/viz/privileged",
  "+skia/ext",
  "+third_party/boringssl/src/include",
  "+third_party/crashpad",
  "+third_party/cros_system_api",
  "+third_party/metrics_proto",
  "+third_party/widevine/cdm/buildflags.h",
  "+third_party/widevine/cdm/widevine_cdm_common.h",

  # Code under //ash runs out-of-process in mash so it must be accessed via mojo
  # interfaces in //ash/public/mojom. See //ash/README.md.
  "-ash",
  "+ash/public",
  "+ash/keyboard/ui/public",
  "+ash/keyboard/ui/grit",
  "+ash/keyboard/ui/public",
  "+ash/keyboard/ui/resources",
  "+ash/components/shortcut_viewer",

  # The message center should only be accessed through
  # //chrome/browser/notifications.
  "-ui/message_center",
  "+ui/message_center/public",

  # chrome only needs switches and features flags from cc. All usage of the
  # compositor is from content. Definitely don't include generic stuff from
  # cc/base here, if this is needed these files need to move to base/
  "+cc/base/features.h",
  "+cc/base/switches.h",

  # Unsafe to use from //chrome, see http://goo.gl/QQG5wo
  "-content/public/test/test_browser_context.h",

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

  "-chrome/browser/ui/views",
  "+chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.h",
  "+chrome/browser/ui/views/chrome_browser_main_extra_parts_views.h",
  "+chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h",
  "+chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux_x11.h",
  "+chrome/browser/ui/views/extensions/request_file_system_dialog_view.h",
  "+chrome/browser/ui/views/try_chrome_dialog_win/try_chrome_dialog.h",

  # Ensure that only the public interface of performance_manager gets used.
  "-chrome/browser/performance_manager",
  "+chrome/browser/performance_manager/public",
  "+chrome/browser/performance_manager/test_support",
  "+chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.h",
  "+chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.h",
  "+chrome/browser/performance_manager/graph/policies/policy_features.h",

  # VRService is being moved to content, this forces documentation of new
  # dependencies that are added to it outside of it's own directory.
  "-chrome/browser/vr/service",

  # Explicitly disallow using SyncMessageFilter to prevent browser from
  # sending synchronous IPC messages on non-UI threads.
  "-ipc/ipc_sync_message_filter.h",

  # Allows in-process use of NetworkService for URLRequestContext configuration.
  # Should be removed once the actual network service ships.
  "+content/public/network",

  # Other libraries.
  "+third_party/google_toolbox_for_mac/src",
  "+third_party/icu/source/common/unicode",
  "+third_party/icu/source/i18n/unicode",
  "+third_party/leveldatabase",
  "+third_party/libxml/chromium/xml_writer.h",
  "+third_party/mozilla",     # Mozilla interface headers.
  "+third_party/ocmock/gtest_support.h",
  "+third_party/protobuf/src/google/protobuf",
  "+third_party/re2",
  "+third_party/smhasher",
  "+third_party/sqlite",
  "+third_party/zlib",

  # No inclusion of WebKit from the browser, other than the ones in
  # WebKit/public/{mojom,common}.
  # TODO(crbug.com/1008303) clarify dependency and remove or move these individual headers
  # into public/common.
  "-third_party/blink",
  "+third_party/blink/public/common",
  "+third_party/blink/public/mojom",
  "+third_party/blink/public/public_buildflags.h",
]

specific_include_rules = {
  '.*InstrumentationTest\.java': [
    # Android instrumentation tests depend on the whole app.
    "+chrome/android",
  ],
  "platform_util_linux.cc": [
    # The following is used to call the org.freedesktop.FileManager1
    # DBus interface to highlight a file within its parent folder
    "+dbus"
  ],
  "platform_util_mac.mm": [
    # The following is used to forward methods to an NSWindow in another
    # process, via the views::Widget API.
    "+ui/views/widget/widget.h",
  ],
  # TODO(mash): Fix. https://crbug.com/768439, https://crbug.com/768395.
  "exo_parts\.cc": [
    "+ash/shell.h",
  ],
  # TODO(mash): Remove. http://crbug.com/678705
  "fullscreen_chromeos\.cc": [
    "+ash/root_window_controller.h",
    "+ash/shell.h",
  ],
  # TODO(estade): the message center is initialized and shut down here, but it
  # should be the responsibility of code in chrome/browser/notifications/
  "browser_process_impl.cc": [
    "+ui/message_center/message_center.h",
  ],
  "input_method_manager_impl.cc": [
    "+ash/keyboard/ui/keyboard_ui_controller.h",
  ],
  "chrome_browsing_data_remover_delegate_unittest.cc": [
    "+services/network/network_context.h",
    "+services/network/network_service.h",
  ],
  "chrome_authenticator_request_delegate_unittest\.cc": [
    "+third_party/microsoft_webauthn/webauthn.h",
  ],
  "chrome_find_request_manager_browsertest\.cc": [
    "+pdf/document_loader_impl.h",
  ],
  "chrome_browser_main\.cc" : [
    # TODO(crbug.com/1031622): Until VRService moves, ChromeBrowserMain is
    # responsible for wiring these up to appropriate factories.
    "+chrome/browser/vr/service/vr_service_impl.h",
  ]
}
