chromium/ios/chrome/browser/DEPS

include_rules = [
  "+components/affiliations/core/browser",
  "+components/autofill/core/browser",
  "+components/autofill/core/common",
  "+components/autofill/ios/browser",
  "+components/autofill/ios/common",
  "+components/autofill/ios/form_util",
  "+components/bookmarks",
  "+components/breadcrumbs/core",
  "+components/browser_sync",
  "+components/browsing_data/core",
  "+components/captive_portal",
  "+components/commerce/core",
  "+components/commerce/ios",
  "+components/component_updater",
  "+components/content_settings/core",
  "+components/country_codes",
  "+components/crash/core/app",
  "+components/crash/core/browser",
  "+components/crash/core/common",
  "+components/device_reauth",
  "+components/dom_distiller/core",
  "+components/download",
  "+components/dom_distiller/ios",
  "+components/enterprise",
  "+components/error_page/common",
  "+components/favicon/core",
  "+components/shared_highlighting/core/common",
  "+components/power_bookmarks/core",
  "+components/previous_session_info/previous_session_info.h",
  "+components/favicon/ios",
  "+components/favicon_base",
  "+components/feature_engagement",
  "+components/feed/core/shared_prefs",
  "+components/feed/core/v2/public",
  "+components/feed/feed_feature_list.h",
  "+components/flags_ui",
  "+components/gcm_driver",
  "+components/google/core",
  "+components/handoff",
  "+components/heap_profiling/in_process",
  "+components/history/core/browser",
  "+components/history/core/common",
  "+components/history/ios/browser",
  "+components/history/metrics",
  "+components/image_fetcher/core",
  "+components/image_fetcher/ios",
  "+components/infobars/core",
  "+components/invalidation",
  "+components/keyed_service/core",
  "+components/keyed_service/ios",
  "+components/language",
  "+components/leveldb_proto",
  "+components/local_state",
  "+components/lookalikes/core",
  "+components/metrics",
  "+components/user_prefs",
  "+components/metrics_services_manager",
  "+components/navigation_metrics",
  "+components/net_log",
  "+components/network_session_configurator",
  "+components/network_time",
  "+components/ntp_tiles",
  "+components/omnibox/browser",
  "+components/omnibox/common",
  "+components/open_from_clipboard",
  "+components/optimization_guide",
  "+components/os_crypt/async/browser",
  "+components/password_manager/core/browser",
  "+components/password_manager/core/common",
  "+components/password_manager/ios",
  "+components/payments/core",
  "+components/payments/mojom",
  "+components/plus_addresses",
  "+components/policy/core/browser",
  "+components/policy/core/common",
  "+components/policy/policy_constants.h",
  "+components/policy/proto/device_management_backend.pb.h",
  "+components/pref_registry",
  "+components/startup_metric_utils/browser",
  "+components/startup_metric_utils/common",
  "+components/prefs",
  "+components/profile_metrics",
  "+components/proxy_config",
  "+components/query_parser",
  "+components/reading_list",
  "+components/rlz",
  "+components/safe_browsing/buildflags.h",
  "+components/safe_browsing/core/browser",
  "+components/safe_browsing/core/common",
  "+components/safe_browsing/ios/browser",
  "+components/safety_check",
  "+components/search",
  "+components/search_engines",
  "+components/search_provider_logos",
  "+components/security_interstitials",
  "+components/security_state",
  "+components/segmentation_platform/public",
  "+components/segmentation_platform/embedder",
  "+components/send_tab_to_self",
  "+components/services/patch",
  "+components/services/unzip",
  "+components/sessions",
  "+components/shared_highlighting",
  "+components/signin/core/browser",
  "+components/signin/public",
  "+components/signin/public/base",
  "+components/signin/ios/browser",
  "+components/ssl_errors",
  "+components/suggestions",
  "+components/supervised_user",
  "+components/sync",
  "+components/sync_bookmarks",
  "+components/sync_device_info",
  "+components/sync_preferences",
  "+components/sync_sessions",
  "+components/sync_user_events",
  "+components/tab_groups",
  "+components/translate",
  "+components/ui_metrics",
  "+components/ukm",
  "+components/undo",
  "+components/unified_consent",
  "+components/unified_consent",
  "+components/update_client",
  "+components/upload_list",
  "+components/url_formatter",
  "+components/variations",
  "+components/variations/net",
  "+components/version_info",
  "+components/version_ui",
  "+components/web_resource",
  "+components/webauthn",
  "+components/webdata_services",
  "+components/webp_transcode",
  "+crypto",
  "+google_apis",
  "+ios/chrome/app",
  "+ios/components/cookie_util",
  "+ios/components/io_thread",
  "+ios/components/security_interstitials",
  "+ios/components/ui_util",
  "+ios/components/webui",
  "+ios/net",
  "+ios/public/provider/chrome",
  "+ios/public/provider/components",
  "+ios/shared/chrome/browser",
  "+mojo/public/cpp/bindings",
  "+net",
  "+rlz/buildflags",
  "+services/metrics/public",
  "+services/metrics/public/cpp",
  "+services/network/network_change_manager.h",
  "+services/network/network_context.h",
  "+services/network/public/mojom",
  "+services/network/public/cpp",
  "+third_party/crashpad/crashpad/client",
  "+third_party/breakpad/breakpad/src/client/ios",
  "+third_party/breakpad/breakpad/src/common",
  "+third_party/libaddressinput",
  "+third_party/libxml/chromium/xml_writer.h",
  "+third_party/metrics_proto",
  "+ui",

  # Those depend on //content; exclude them.
  "-components/metrics/gpu",
  "-components/sessions/content",

  # Features should add explicit dependencies.
  "-ios/chrome/browser",
  "+ios/chrome/browser/lens_overlay/model/lens_overlay_tab_helper.h",

  # Shared dependencies.
  "+ios/chrome/browser/shared/coordinator",
  "+ios/chrome/browser/shared/model",
  "+ios/chrome/browser/shared/ui",
  "+ios/chrome/browser/shared/public",

  # ios/chrome/browser should not depend on ios/chrome/browser/ui except
  # on commands.
  "-ios/chrome/browser/ui",
  "-ios/common/ui",
  "+ios/chrome/browser/ui/commands",
  "+ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h",

  # For tests.
  "+ios/chrome/test",
  "+ios/public/test",
  ## Use ios/chrome/test/earl_grey/chrome_earl_grey.h instead
  "-ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h",

  # Strings and resources.
  "+components/grit",
  "+components/strings/grit",
  "+ios/chrome/grit",
]

specific_include_rules = {
  ".*test\.mm": [
    "+components/signin/internal/identity_manager/account_capabilities_constants.h",
    "+components/previous_session_info/previous_session_info_private.h",
    # TODO(crbug.com/40820398): browser should not depend on UI, this is a
    # blanket exception for tests.
    "+ios/chrome/browser/ui",
    # Use ios/chrome/browser/ui/authentication/signin_earl_grey.h instead
    "-ios/chrome/browser/ui/authentication/signin_earl_grey_app_interface.h",
    # use ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey.h instead
    "-ios/chrome/browser/bookmarks/ui_bundled/bookmark_earl_grey_app_interface.h",
    # Blanket exception for tests to be allowed to depend on everything.
    "+ios/chrome/browser",
  ],
}