| # 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. | |
| """Presubmit tests for android_webview/java/res/raw""" | |
| import os | |
| import sys | |
| def CheckChangeOnUpload(input_api, output_api): | |
| results = [] | |
| results.extend(_CheckHistogramsAllowlist(input_api, output_api)) | |
| return results | |
| def _CheckHistogramsAllowlist(input_api, output_api): | |
| """Checks that HistogramsAllowlist.java contains valid histograms.""" | |
| src_path = os.path.join(input_api.PresubmitLocalPath(), '..', '..', '..', | |
| '..') | |
| histograms_path = os.path.join(src_path, 'tools', 'metrics', 'histograms') | |
| sys.path.append(histograms_path) | |
| import print_histogram_names | |
| from histograms_allowlist_check import WellKnownAllowlistPath | |
| from histograms_allowlist_check import check_histograms_allowlist | |
| allowlist_path = os.path.join( | |
| src_path, WellKnownAllowlistPath.ANDROID_WEBVIEW.relative_path()) | |
| histograms_allowlist_filter = lambda f: f.LocalPath().endswith( | |
| WellKnownAllowlistPath.ANDROID_WEBVIEW.filename()) | |
| if not input_api.AffectedFiles(file_filter=histograms_allowlist_filter): | |
| return [] | |
| xml_files = print_histogram_names.histogram_xml_files() | |
| result = check_histograms_allowlist(output_api, allowlist_path, xml_files) | |
| # TODO(crbug.com/391795980): Files should be scope managed, remove this | |
| # quick fixed once the issue is done. | |
| for f in xml_files: | |
| f.close() | |
| return result |