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."""
9 def _RunHistogramChecks(input_api, output_api, histogram_name):
11 # Setup sys.path so that we can call histograms code.
13 original_sys_path = sys.path
14 sys.path = sys.path + [input_api.os_path.join(
15 input_api.change.RepositoryRoot(),
16 'tools', 'metrics', 'histograms')]
20 import presubmit_bad_message_reasons
21 results.extend(presubmit_bad_message_reasons.PrecheckBadMessage(input_api,
22 output_api, histogram_name))
26 return [output_api.PresubmitError('Could not verify histogram!')]
28 sys.path = original_sys_path
30 def _CheckUnwantedDependencies(input_api, output_api):
32 for f in input_api.AffectedFiles():
33 if not f.LocalPath().endswith('DEPS'):
36 for line_num, line in f.ChangedContents():
37 if not line.strip().startswith('#'):
38 m = re.search(r".*\/blink\/public\/web.*", line)
40 problems.append(m.group(0))
44 return [output_api.PresubmitPromptWarning(
45 'chrome/browser cannot depend on blink/public/web interfaces. ' +
46 'Use blink/public/common instead.',
49 def _CommonChecks(input_api, output_api):
50 """Checks common to both upload and commit."""
52 results.extend(_CheckUnwantedDependencies(input_api, output_api))
53 results.extend(_RunHistogramChecks(input_api, output_api,
54 "BadMessageReasonChrome"))
58 def CheckChangeOnUpload(input_api, output_api):
59 return _CommonChecks(input_api, output_api)
62 def CheckChangeOnCommit(input_api, output_api):
63 return _CommonChecks(input_api, output_api)