Index: components/subresource_filter/core/common/PRESUBMIT.py |
diff --git a/components/subresource_filter/core/common/PRESUBMIT.py b/components/subresource_filter/core/common/PRESUBMIT.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bb1e72ce5202b2f4b8943245185b09805f703e8b |
--- /dev/null |
+++ b/components/subresource_filter/core/common/PRESUBMIT.py |
@@ -0,0 +1,45 @@ |
+# Copyright 2017 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 subresource_filter component's core/common directory. |
+ |
+See https://www.chromium.org/developers/how-tos/depottools/presubmit-scripts |
+for more details about the presubmit API built into depot_tools. |
+""" |
+ |
+def CheckIndexedRulesetVersion(input_api, output_api): |
+ """ Checks that IndexedRuleset format version is modified when necessary. |
+ |
+ Whenever a *.fbs or indexed_ruleset.cc file is touched in |
+ components/subresource_filter/core/common and kIndexedFormatVersion constant |
+ is not changed, this check returns a presubmit warning to make sure the value |
+ should not be updated. |
+ """ |
+ |
+ indexed_ruleset_changed = False |
+ indexed_ruleset_version_changed = False |
+ |
+ for affected_file in input_api.AffectedFiles(): |
+ path = affected_file.LocalPath() |
+ if not 'components/subresource_filter/core/common' in path: |
+ continue |
+ basename = input_api.basename(path) |
+ |
+ if basename.endswith('.fbs') or basename == 'indexed_ruleset.cc': |
+ indexed_ruleset_changed = True |
+ if basename == 'indexed_ruleset.cc': |
+ for (_, line) in affected_file.ChangedContents(): |
+ if 'kIndexedFormatVersion =' in line: |
+ indexed_ruleset_version_changed = True |
+ break |
+ |
+ if indexed_ruleset_changed and not indexed_ruleset_version_changed: |
+ return [output_api.PresubmitPromptWarning( |
+ 'Please make sure that IndexedRuleset modifications in *.fbs and ' |
+ 'indexed_ruleset.cc do not require updating ' |
+ 'RulesetIndexer::kIndexedFormatVersion.')] |
+ return [] |
+ |
+def CheckChangeOnUpload(input_api, output_api): |
+ return CheckIndexedRulesetVersion(input_api, output_api) |