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"""Chromium presubmit script for src/extensions/browser.
6
7See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8for more details on the presubmit API built into gcl.
9"""
10
11import sys
12
13def GetPreferredTryMasters(project, change):
14  return {
15    'tryserver.chromium.linux': {
16      'linux_chromium_chromeos_rel_swarming': set(['defaulttests']),
17    }
18  }
19
20def _CreateHistogramValueChecker(input_api, output_api):
21  original_sys_path = sys.path
22
23  try:
24    sys.path.append(input_api.os_path.join(
25        input_api.PresubmitLocalPath(), '..', '..', 'tools',
26        'strict_enum_value_checker'))
27    from strict_enum_value_checker import StrictEnumValueChecker
28  finally:
29    sys.path = original_sys_path
30
31  return StrictEnumValueChecker(input_api, output_api,
32      start_marker='enum HistogramValue {', end_marker='  // Last entry:',
33      path='extensions/browser/extension_function_histogram_value.h')
34
35def CheckChangeOnUpload(input_api, output_api):
36  results = []
37  results += _CreateHistogramValueChecker(input_api, output_api).Run()
38  results += input_api.canned_checks.CheckPatchFormatted(input_api, output_api)
39  return results
40
41def CheckChangeOnCommit(input_api, output_api):
42  return _CreateHistogramValueChecker(input_api, output_api).Run()
43