Add features for components/android_autofill.

As we expand the functionality of android_autofill, we need features
to do experiments.

Bug: 1425869
Change-Id: I4a5ca4388f8e5cafcce90ce5a11ab0be65a69e70
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4353311
Reviewed-by: Dominic Battré <[email protected]>
Commit-Queue: Jan Keitel <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1119286}
diff --git a/components/android_autofill/PRESUBMIT.py b/components/android_autofill/PRESUBMIT.py
new file mode 100644
index 0000000..a4694057
--- /dev/null
+++ b/components/android_autofill/PRESUBMIT.py
@@ -0,0 +1,44 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Chromium presubmit script for src/components/android_autofill.
+
+See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
+for more details on the presubmit API built into depot_tools.
+"""
+
+USE_PYTHON3 = True
+PRESUBMIT_VERSION = '2.0.0'
+
+def IsComponentsAndroidAutofillFile(f, name_suffix):
+  return (f.LocalPath().startswith('components/android_autofill/') and
+          f.LocalPath().endswith(name_suffix))
+
+def AnyAffectedFileMatches(input_api, matcher):
+  return any(matcher(f) for f in input_api.change.AffectedTestableFiles())
+
+def IsComponentsAndroidAutofillFileAffected(input_api, name_suffix):
+  return AnyAffectedFileMatches(
+      input_api, lambda f: IsComponentsAndroidAutofillFile(f, name_suffix))
+
+def CheckWebViewExposedExperiments(input_api, output_api):
+  """Checks that changes to android autofill features are exposed to webview."""
+
+  _PRODUCTION_SUPPORT_FILE = ('android_webview/java/src/org/chromium/' +
+      'android_webview/common/ProductionSupportedFlagList.java')
+
+  warnings = []
+  if (IsComponentsAndroidAutofillFileAffected(input_api, 'features.cc') and
+      not AnyAffectedFileMatches(
+          input_api, lambda f: f.LocalPath() == _PRODUCTION_SUPPORT_FILE)):
+    warnings += [
+        output_api.PresubmitPromptWarning(
+            (
+                'You may need to modify {} instructions if your feature affects'
+                ' WebView.'
+            ).format(_PRODUCTION_SUPPORT_FILE)
+        )
+    ]
+
+  return warnings