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.
5 """Presubmit script for Chromium browser code."""
11 def _RunHistogramChecks(input_api, output_api, histogram_name):
13 # Setup sys.path so that we can call histograms code.
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')]
22 import presubmit_bad_message_reasons
23 results.extend(presubmit_bad_message_reasons.PrecheckBadMessage(input_api,
24 output_api, histogram_name))
28 return [output_api.PresubmitError('Could not verify histogram!')]
30 sys.path = original_sys_path
32 def _CheckUnwantedDependencies(input_api, output_api):
34 for f in input_api.AffectedFiles():
35 if not f.LocalPath().endswith('DEPS'):
38 for line_num, line in f.ChangedContents():
39 if not line.strip().startswith('#'):
40 m = re.search(r".*\/blink\/public\/web.*", line)
42 problems.append(m.group(0))
46 return [output_api.PresubmitPromptWarning(
47 'chrome/browser cannot depend on blink/public/web interfaces. ' +
48 'Use blink/public/common instead.',
51 def _CommonChecks(input_api, output_api):
52 """Checks common to both upload and commit."""
54 results.extend(_CheckUnwantedDependencies(input_api, output_api))
55 results.extend(_RunHistogramChecks(input_api, output_api,
56 "BadMessageReasonChrome"))
60 def CheckChangeOnUpload(input_api, output_api):
61 return _CommonChecks(input_api, output_api)
64 def CheckChangeOnCommit(input_api, output_api):
65 return _CommonChecks(input_api, output_api)