| # Copyright 2018 The Chromium Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | """Presubmit script for components/url_pattern_index directory. | 
 |  | 
 | See https://www.chromium.org/developers/how-tos/depottools/presubmit-scripts | 
 | for more details about the presubmit API built into depot_tools. | 
 | """ | 
 |  | 
 | def CheckUrlPatternIndexFormatVersion(input_api, output_api): | 
 |   """ Checks the kUrlPatternIndexFormatVersion is modified when necessary. | 
 |  | 
 |   Whenever any of the following files is changed: | 
 |     - components/url_pattern_index/flat/url_pattern_index.fbs | 
 |     - components/url_pattern_index/url_pattern_index.cc | 
 |   and kUrlPatternIndexFormatVersion stays intact, this check returns a | 
 |   presubmit warning to make sure the value is updated if necessary. | 
 |   """ | 
 |  | 
 |   url_pattern_index_files_changed = False | 
 |   url_pattern_index_version_changed = False | 
 |  | 
 |   for affected_file in input_api.AffectedFiles(): | 
 |     basename = input_api.basename(affected_file.LocalPath()) | 
 |  | 
 |     if (basename == 'url_pattern_index.fbs' or | 
 |         basename == 'url_pattern_index.cc'): | 
 |       url_pattern_index_files_changed = True | 
 |  | 
 |     if basename == 'url_pattern_index.h': | 
 |       for (_, line) in affected_file.ChangedContents(): | 
 |         if 'constexpr int kUrlPatternIndexFormatVersion' in line: | 
 |           url_pattern_index_version_changed = True | 
 |           break | 
 |  | 
 |   out = [] | 
 |   if url_pattern_index_files_changed and not url_pattern_index_version_changed: | 
 |     out.append(output_api.PresubmitPromptWarning( | 
 |         'Please make sure that url_pattern_index::kUrlPatternIndexFormatVersion' | 
 |         ' is modified if necessary.')) | 
 |  | 
 |   return out | 
 |  | 
 | def CheckChangeOnUpload(input_api, output_api): | 
 |   return CheckUrlPatternIndexFormatVersion(input_api, output_api) |