include_rules = [
  "+apps",
  "+cc/input/browser_controls_state.h",
  "+cc/metrics",
  "+cc/paint",
  "+cc/test",

  # Restricting uses of Chrome*Activity in favor of direct dependency aquisition. Code that lives
  # under java/src/.../chrome/browser has a seperate exception under that same directory.
  # Exceptions can be found under "specific_include_rules" below.
  "-chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
  "-chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
  "-chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity2.java",

  "+ash/components/arc",
  "+chrome/android/native_j_unittests_jni_headers",
  "+chrome/android/chrome_jni_headers",
  "+chrome/android/features/autofill_assistant/jni_headers",
  "+chrome/android/features/autofill_assistant/jni_headers_public",
  "+chrome/android/features/dev_ui",
  "+chrome/android/modules",
  "+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/cups_proxy",
  "+chrome/services/diagnosticsd/public",
  "+chrome/services/file_util/public",
  "+chrome/services/mac_notifications/public",
  "+chrome/services/machine_learning/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/app_constants/constants.h",
  "+components/federated_learning",
  # TODO(b/129295708): Remove after move is complete.
  "+components/arc",
  "+components/access_code_cast",
  "+components/accuracy_tips",
  "+components/account_manager_core",
  "+components/assist_ranker",
  "+components/autofill_assistant/android",
  "+components/autofill_assistant/browser",
  "+components/autofill_assistant/content/browser",
  "+components/autofill_assistant/content/common",
  "+components/autofill/content/browser",
  "+components/autofill/content/common",
  "+components/autofill/core/browser",
  "+components/autofill/core/common",
  "+components/back_forward_cache",
  "+components/background_fetch",
  "+components/background_sync",
  "+components/background_task_scheduler",
  "+components/base32",
  "+components/blocked_content",
  "+components/blocklist/opt_out_blocklist",
  "+components/bookmarks/browser",
  "+components/bookmarks/common",
  "+components/bookmarks/managed",
  "+components/bookmarks/test",
  "+components/breadcrumbs/core",
  "+components/browser_sync",
  "+components/browser_ui/accessibility",
  "+components/browser_ui/bottomsheet",
  "+components/browser_ui/modaldialog",
  "+components/browser_ui/notifications",
  "+components/browser_ui/photo_picker",
  "+components/browser_ui/settings",
  "+components/browser_ui/util",
  "+components/browser_ui/widget",
  "+components/browser_ui/site_settings",
  "+components/browser_ui/strings",
  "+components/browser_ui/styles",
  "+components/browser_watcher",
  "+components/browsing_data/content",
  "+components/browsing_data/core",
  "+components/browsing_topics",
  "+components/custom_handlers",
  "+components/captive_portal",
  "+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/client_hints/browser",
  "+components/client_hints/common",
  "+components/cloud_devices/common",
  "+components/commerce",
  "+components/component_updater",
  "+components/component_updater/installer_policies",
  "+components/consent_auditor",
  "+components/constrained_window",
  "+components/content_capture/browser",
  "+components/content_creation/notes/core",
  "+components/content_creation/reactions/core",
  "+components/content_settings/browser",
  "+components/content_settings/core/browser",
  "+components/content_settings/core/test",
  "+components/contextual_search/buildflags.h",
  "+components/contextual_search/core/proto",
  "+components/contextual_search/core/browser",
  "+components/cookie_config",
  "+components/country_codes",
  "+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_use_measurement/core",
  "+components/desks_storage",
  "+components/dbus",
  "+components/device_event_log",
  "+components/device_signals/core/browser",
  "+components/device_signals/core/common",
  "+components/digital_asset_links",
  "+components/digital_goods",
  "+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/drive",
  "+components/embedder_support",
  "+components/encrypted_messages",
  "+components/enterprise",
  "+components/error_page/content/browser",
  "+components/exo",
  "+components/external_intents",
  "+components/favicon_base",
  "+components/favicon/android",
  "+components/favicon/content",
  "+components/favicon/core",
  "+components/feature_engagement",
  "+components/feed",
  "+components/feedback",
  "+components/file_access",
  "+components/find_in_page",
  "+components/flags_ui",
  "+components/app_restore",
  "+components/gcm_driver",
  "+components/global_media_controls",
  "+components/google/core/browser",
  "+components/google/core/common",
  "+components/grit",
  "+components/guest_view/browser",
  "+components/handoff",
  "+components/heap_profiling",
  "+components/heavy_ad_intervention",
  "+components/history/content/browser",
  "+components/history/core/browser",
  "+components/history/core/common",
  "+components/history/core/test",
  "+components/history/metrics",
  "+components/image_fetcher/core",
  "+components/infobars/android",
  "+components/infobars/content",
  "+components/infobars/core",
  "+components/installedapp",
  "+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/core/language_model",
  "+components/lens",
  "+components/leveldb_proto/content",
  "+components/leveldb_proto/public",
  "+components/leveldb_proto/testing",
  "+components/live_caption",
  "+components/local_state",
  "+components/location/android",
  "+components/lookalikes/core",
  "+components/login",
  "+components/media_message_center",
  "+components/media_router/browser",
  "+components/history_clusters/core",
  "+components/history_clusters/history_clusters_internals",
  "+components/memory_pressure",
  "+components/messages/android",
  "+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/no_state_prefetch/browser",
  "+components/no_state_prefetch/common",
  "+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/content",
  "+components/optimization_guide",
  "+components/optimization_guide/optimization_guide_internals",
  "+components/origin_trials",
  "+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/pdf/common",
  "+components/policy",
  "+components/power_metrics",
  "+components/pref_registry",
  "+components/prefs",
  "+components/previews/content",
  "+components/previews/core",
  "+components/printing/browser",
  "+components/printing/common",
  "+components/privacy_sandbox",
  "+components/profile_metrics",
  "+components/proxy_config",
  "+components/query_parser",
  "+components/query_tiles",
  "+components/quirks",
  "+components/reading_list/core",
  "+components/reading_list/features",
  "+components/remote_cocoa/app_shim",
  "+components/remote_cocoa/browser",
  "+components/remote_cocoa/common",
  "+components/renderer_context_menu",
  "+components/reputation",
  "+components/reporting",
  "+components/rlz",
  "+components/safe_browsing/android",
  "+components/safe_browsing/buildflags.h",
  "+components/safe_browsing/content/browser",
  "+components/safe_browsing/content/common",
  "+components/safe_browsing/core/browser",
  "+components/safe_browsing/core/common",
  "+components/safe_search_api",
  "+components/schema_org",
  "+components/shared_highlighting/core/common",
  "+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/segmentation_platform/public",
  "+components/send_tab_to_self",
  "+components/services/app_service/public",
  "+components/services/app_service/public/mojom",
  "+components/services/filesystem/public/mojom",
  "+components/services/heap_profiling",
  "+components/services/language_detection/public/cpp",
  "+components/services/language_detection/public/mojom",
  "+components/services/paint_preview_compositor/public/mojom",
  "+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/services/screen_ai",
  "+components/signin/core/browser",
  "+components/signin/public",
  "+components/site_engagement",
  "+components/site_isolation",
  "+components/soda",
  "+components/spellcheck",
  "+components/sqlite_proto",
  "+components/ssl_errors",
  "+components/startup_metric_utils/browser",
  "+components/storage_monitor",
  "+components/strings/grit",
  "+components/subresource_filter/android",
  "+components/subresource_filter/content/browser",
  "+components/subresource_filter/content/mojom",
  "+components/subresource_filter/core/browser",
  "+components/subresource_filter/core/common",
  "+components/subresource_filter/core/mojom",
  "+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/android",
  "+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/url_param_filter/content",
  "+components/user_manager",
  "+components/user_notes",
  "+components/user_prefs",
  "+components/value_store",
  "+components/vector_icons",
  "+components/version_info",
  "+components/version_ui",
  "+components/viz/common",
  "+components/viz/host",
  "+components/web_cache/browser",
  "+components/web_modal",
  "+components/web_resource",
  "+components/webapps/browser",
  "+components/webapps/common",
  "+components/webauthn",
  "+components/webdata/common",
  "+components/webdata_services",
  "+components/webrtc_logging/browser",
  "+components/webrtc_logging/common",
  "+components/zoom",
  "+content/public/android/java/src/org/chromium/content_public/browser",
  "+content/public/android/java/src/org/chromium/content_public/common",
  "+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_apis",
  "+google_update",
  "+installer_util_strings",  # For generated headers
  "+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/cdm/win/media_foundation_cdm.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",
  "+remoting/host/chromeos/features.h",
  "+rlz",
  "+sandbox/mac",
  "+sandbox/win/src",
  "+services/audio/public",
  "+services/cert_verifier",
  "+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/network_service.h",
  "+services/network/public",
  "+services/network/test",
  "+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/proxy_resolver_win/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/content_analysis_sdk",
  "+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",
  "+chrome/services/machine_learning",
  "+chrome/services/speech",
  # Code under //ash should be accessed via its public API. See //ash/README.md.
  "-ash",
  "+ash/components",
  "+ash/constants",
  "+ash/webui",
  "+ash/public",
  "+ash/keyboard/ui/grit",
  "+ash/keyboard/ui/resources",
  "+ash/services",

  # 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/ is an implementation, not a public interface.
  # Parent directories should not depend on it directly.
  # TODO(crbug.com/1112591): Remove the exceptions below.
  "-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_lacros.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/frame/browser_view.h",
  "+chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.h",
  "+chrome/browser/ui/views/notifications/request_pin_view_chromeos.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",

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

  # ASK TEXT-TO-SPEECH content/browser/speech/OWNERS BEFORE OVERRIDING THIS IN A
  # SUBDIRECTORY.
  "-content/public/browser/tts_controller.h",

  # 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 = {
  '.*Test\.java': [
    # Android instrumentation tests depend on the whole app.
    "+chrome/android",
    "+chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java",
    "+chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
  ],
  '.*TestUtils\.java': [
      "+chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java",
      "+chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
    ],
  "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"
  ],
  "exo_parts\.cc": [
    "+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_engine.cc": [
    # For GetVirtualKeyboardController.
    "+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_content_browser_client_receiver_bindings\.cc" : [
    "+chrome/browser/performance_manager/mechanisms/userspace_swap_chromeos.h",
  ],
  "chrome_content_browser_client\.cc" : [
    "+content/public/browser/tts_controller.h",
  ],
  "chrome_navigation_browsertest.cc" : [
    "+content/common/content_navigation_policy.h",
  ],
  "about_flags\.cc" : [
    "+mojo/core/embedder/features.h",
    "+pdf/pdf_features.h",
  ],
  "dbus_memory_pressure_evaluator_linux(_unittest)?\.(cc|h)" : [
    "+dbus",
  ]
}
