summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/common/extensions/api/PRESUBMIT.py
blob: 88e6835d021a862ce418f87ce2a146a230467d3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Copyright 2016 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/common.

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 _CheckExterns(input_api, output_api):
  original_sys_path = sys.path

  join = input_api.os_path.join
  api_root = input_api.PresubmitLocalPath()
  src_root = join(api_root, '..', '..', '..', '..')
  try:
    sys.path.append(join(src_root, 'extensions', 'common', 'api'))
    from externs_checker import ExternsChecker
  finally:
    sys.path = original_sys_path

  externs_root = join(src_root, 'third_party', 'closure_compiler', 'externs')

  api_pair_names = {
    'accessibility_private.json': 'accessibility_private.js',
    'activity_log_private.json': 'activity_log_private.js',
    'autofill_private.idl': 'autofill_private.js',
    'developer_private.idl': 'developer_private.js',
    'bookmark_manager_private.json': 'bookmark_manager_private.js',
    'command_line_private.json': 'command_line_private.js',
    'file_manager_private.idl': 'file_manager_private.js',
    'file_system_provider.idl': 'file_system_provider.js',
    'input_method_private.json': 'input_method_private.js',
    'language_settings_private.idl': 'language_settings_private.js',
    'media_player_private.json': 'media_player_private.js',
    'passwords_private.idl': 'passwords_private.js',
    'quick_unlock_private.idl': 'quick_unlock_private.js',
    'resources_private.idl': 'resources_private.js',
    'safe_browsing_private.idl': 'safe_browsing_private.js',
    'settings_private.idl': 'settings_private.js',
    'system_private.json': 'system_private.js',
    'users_private.idl': 'users_private.js',
    # TODO(rdevlin.cronin): Add more!
  }
  normpath = input_api.os_path.normpath
  api_pairs = {
      normpath(join(api_root, k)):
          normpath(join(externs_root, v)) for k, v in api_pair_names.items()
  }

  return ExternsChecker(input_api, output_api, api_pairs).RunChecks()


def CheckChangeOnUpload(input_api, output_api):
  return _CheckExterns(input_api, output_api)