[M94 Dev] Remove *.pyc files from git repositories
[platform/framework/web/chromium-efl.git] / chrome / browser / PRESUBMIT.py
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """Presubmit script for Chromium browser code."""
6
7 USE_PYTHON3 = True
8
9 import re
10
11 def _RunHistogramChecks(input_api, output_api, histogram_name):
12   try:
13     # Setup sys.path so that we can call histograms code.
14     import sys
15     original_sys_path = sys.path
16     sys.path = sys.path + [input_api.os_path.join(
17         input_api.change.RepositoryRoot(),
18         'tools', 'metrics', 'histograms')]
19
20     results = []
21
22     import presubmit_bad_message_reasons
23     results.extend(presubmit_bad_message_reasons.PrecheckBadMessage(input_api,
24         output_api, histogram_name))
25
26     return results
27   except:
28     return [output_api.PresubmitError('Could not verify histogram!')]
29   finally:
30     sys.path = original_sys_path
31
32 def _CheckUnwantedDependencies(input_api, output_api):
33   problems = []
34   for f in input_api.AffectedFiles():
35     if not f.LocalPath().endswith('DEPS'):
36       continue
37
38     for line_num, line in f.ChangedContents():
39       if not line.strip().startswith('#'):
40         m = re.search(r".*\/blink\/public\/web.*", line)
41         if m:
42           problems.append(m.group(0))
43
44   if not problems:
45     return []
46   return [output_api.PresubmitPromptWarning(
47       'chrome/browser cannot depend on blink/public/web interfaces. ' +
48       'Use blink/public/common instead.',
49       items=problems)]
50
51 def _CommonChecks(input_api, output_api):
52   """Checks common to both upload and commit."""
53   results = []
54   results.extend(_CheckUnwantedDependencies(input_api, output_api))
55   results.extend(_RunHistogramChecks(input_api, output_api,
56                  "BadMessageReasonChrome"))
57   return results
58
59
60 def CheckChangeOnUpload(input_api, output_api):
61   return _CommonChecks(input_api, output_api)
62
63
64 def CheckChangeOnCommit(input_api, output_api):
65   return _CommonChecks(input_api, output_api)