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