include_rules = [
  # Much of WebData is being broken off and moved into a component
  # under //components/webdata, that does not depend on //chrome), so
  # we have these basic rules followed by temporary exceptions.
  # Please don't add to the list of exceptions!
  "-chrome/browser",
  "-chrome/common",
  "+chrome/browser/webdata",

  # TODO(caitkp, kaiwang): Bring this list to zero.
  # Do not add to the list of temporarily-allowed dependencies below,
  # and please do not introduce more #includes of these files.
  "!chrome/browser/history/history_database.h",

  # TODO(caitkp): Remove this, at slightly lower priority - this is
  # just a set of header-only enums, so we can live with it
  # temporarily even after we componentize.
  "!chrome/common/chrome_notification_types.h",
]

specific_include_rules = {
  # These files are staying in //chrome, so no need to restrict.
  r"((autocomplete|autofill_profile)_syncable_service|web_data_service(_win)?(_factory)?)(_unittest)?\.(cc|h)": [
    "+chrome/browser",
    "+chrome/common",
  ],

  # TODO(joi): Move sign-in related files to //components. For now,
  # use these rules to prevent regressions.
  r"^logins_.*": [
    "-chrome/browser/webdata",
    "+chrome/browser/webdata/logins_table.h",
  ],

  # TODO(caitkp): Componentize all the different tables. For now, we
  # write these rules so they don't add bad dependencies.
  r"^[a-z_]+_table(_unittest|_win)?\.(cc|h)": [
    "!chrome/browser/history/history_database.h",
    "!chrome/browser/search_engines/template_url.h",
    "!chrome/browser/search_engines/template_url_service.h",
  ],

  # TODO(caitkp): Extract unit tests from //chrome, at lower priority
  # than production code.
  r"(.*_unittest|.*_test_util)\.(cc|h)": [
    "+chrome/browser/webdata/token_web_data.h",
    "+chrome/browser/webdata/web_data_service.h",
    "+chrome/browser/webdata/web_data_service_factory.h",
  ],
}