| # 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. |
| """ |
| |
| 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 |