| # Copyright 2014 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. |
| |
| """Chromium presubmit script for src/extensions/browser. |
| |
| See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| for more details on the presubmit API built into depot_tools. |
| """ |
| |
| import sys |
| |
| def _CreateHistogramValueChecker(input_api, output_api, path): |
| original_sys_path = sys.path |
| |
| try: |
| sys.path.append(input_api.os_path.join( |
| input_api.PresubmitLocalPath(), '..', '..', 'tools', |
| 'strict_enum_value_checker')) |
| from strict_enum_value_checker import StrictEnumValueChecker |
| finally: |
| sys.path = original_sys_path |
| |
| return StrictEnumValueChecker(input_api, output_api, |
| start_marker='enum HistogramValue {', end_marker=' // Last entry:', |
| path=path) |
| |
| |
| def _RunHistogramValueCheckers(input_api, output_api): |
| results = [] |
| histogram_paths = ('extensions/browser/extension_event_histogram_value.h', |
| 'extensions/browser/extension_function_histogram_value.h') |
| for path in histogram_paths: |
| results += _CreateHistogramValueChecker(input_api, output_api, path).Run() |
| return results |
| |
| def _RunHistogramChecks(input_api, output_api, histogram_name): |
| try: |
| # Setup sys.path so that we can call histograms code. |
| import sys |
| original_sys_path = sys.path |
| sys.path = sys.path + [input_api.os_path.join( |
| input_api.change.RepositoryRoot(), |
| 'tools', 'metrics', 'histograms')] |
| |
| import presubmit_bad_message_reasons |
| return presubmit_bad_message_reasons.PrecheckBadMessage(input_api, |
| output_api, histogram_name) |
| except: |
| return [output_api.PresubmitError('Could not verify histogram!')] |
| finally: |
| sys.path = original_sys_path |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| results = [] |
| results += _RunHistogramValueCheckers(input_api, output_api) |
| results += _RunHistogramChecks(input_api, output_api, |
| "BadMessageReasonExtensions") |
| return results |