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.
7 This script currently only checks HTML/CSS/JS files in resources/.
9 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
10 for more details about the presubmit API built into gcl/git cl, and see
11 http://www.chromium.org/developers/web-development-style-guide for the rules
16 def CheckChangeOnUpload(input_api
, output_api
):
17 return _CommonChecks(input_api
, output_api
)
20 def CheckChangeOnCommit(input_api
, output_api
):
21 return _CommonChecks(input_api
, output_api
)
24 def _CommonChecks(input_api
, output_api
):
25 """Checks common to both upload and commit."""
28 path
= input_api
.os_path
29 cwd
= input_api
.PresubmitLocalPath()
30 resources
= path
.join(cwd
, 'resources')
31 webui
= path
.join(cwd
, 'ui', 'webui')
33 affected_files
= (f
.AbsoluteLocalPath() for f
in input_api
.AffectedFiles())
34 would_affect_tests
= (
35 path
.join(cwd
, 'PRESUBMIT.py'),
36 path
.join(cwd
, 'test_presubmit.py'),
37 path
.join(cwd
, 'web_dev_style', 'css_checker.py'),
38 path
.join(cwd
, 'web_dev_style', 'js_checker.py'),
40 if any(f
for f
in affected_files
if f
in would_affect_tests
):
41 tests
= [path
.join(cwd
, 'test_presubmit.py')]
43 input_api
.canned_checks
.RunUnitTests(input_api
, output_api
, tests
))
49 sys
.path
= [cwd
] + old_path
50 from web_dev_style
import css_checker
, js_checker
52 search_dirs
= (resources
, webui
)
53 def _html_css_js_resource(p
):
54 return p
.endswith(('.html', '.css', '.js')) and p
.startswith(search_dirs
)
56 BLACKLIST
= ['chrome/browser/resources/pdf/index.html',
57 'chrome/browser/resources/pdf/index.js']
58 def is_resource(maybe_resource
):
59 return (maybe_resource
.LocalPath() not in BLACKLIST
and
60 _html_css_js_resource(maybe_resource
.AbsoluteLocalPath()))
62 results
.extend(css_checker
.CSSChecker(
63 input_api
, output_api
, file_filter
=is_resource
).RunChecks())
64 results
.extend(js_checker
.JSChecker(
65 input_api
, output_api
, file_filter
=is_resource
).RunChecks())