| Index: chrome/browser/web_dev_style/js_checker.py
|
| diff --git a/chrome/browser/web_dev_style/js_checker.py b/chrome/browser/web_dev_style/js_checker.py
|
| deleted file mode 100644
|
| index ab3a54661e8e3c55c3f9194b949958e7b2b157b1..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/web_dev_style/js_checker.py
|
| +++ /dev/null
|
| @@ -1,129 +0,0 @@
|
| -# Copyright (c) 2012 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.
|
| -
|
| -"""Presubmit script for Chromium JS resources.
|
| -
|
| -See chrome/browser/PRESUBMIT.py
|
| -"""
|
| -
|
| -import regex_check
|
| -
|
| -
|
| -class JSChecker(object):
|
| - def __init__(self, input_api, output_api, file_filter=None):
|
| - self.input_api = input_api
|
| - self.output_api = output_api
|
| - self.file_filter = file_filter
|
| -
|
| - def RegexCheck(self, line_number, line, regex, message):
|
| - return regex_check.RegexCheck(
|
| - self.input_api.re, line_number, line, regex, message)
|
| -
|
| - def ChromeSendCheck(self, i, line):
|
| - """Checks for a particular misuse of 'chrome.send'."""
|
| - return self.RegexCheck(i, line, r"chrome\.send\('[^']+'\s*(, \[\])\)",
|
| - 'Passing an empty array to chrome.send is unnecessary')
|
| -
|
| - def CommentIfAndIncludeCheck(self, line_number, line):
|
| - return self.RegexCheck(line_number, line, r'(?<!\/\/ )(<if|<include) ',
|
| - '<if> or <include> should be in a single line comment with a space ' +
|
| - 'after the slashes. Examples:\n' +
|
| - ' // <include src="...">\n' +
|
| - ' // <if expr="chromeos">\n' +
|
| - ' // </if>\n')
|
| -
|
| - def ConstCheck(self, i, line):
|
| - """Check for use of the 'const' keyword."""
|
| - if self.input_api.re.search(r'\*\s+@const', line):
|
| - # Probably a JsDoc line
|
| - return ''
|
| -
|
| - return self.RegexCheck(i, line, r'(?:^|\s|\()(const)\s',
|
| - 'Use /** @const */ var varName; instead of const varName;')
|
| -
|
| - def EndJsDocCommentCheck(self, i, line):
|
| - msg = 'End JSDoc comments with */ instead of **/'
|
| - def _check(regex):
|
| - return self.RegexCheck(i, line, regex, msg)
|
| - return _check(r'^\s*(\*\*/)\s*$') or _check(r'/\*\* @[a-zA-Z]+.* (\*\*/)')
|
| -
|
| - def ExtraDotInGenericCheck(self, i, line):
|
| - return self.RegexCheck(i, line, r"((?:Array|Object|Promise)\.<)",
|
| - "Don't use a dot after generics (Object.<T> should be Object<T>).")
|
| -
|
| - def GetElementByIdCheck(self, i, line):
|
| - """Checks for use of 'document.getElementById' instead of '$'."""
|
| - return self.RegexCheck(i, line, r"(document\.getElementById)\('",
|
| - "Use $('id') or getSVGElement('id') from chrome://resources/js/util.js "
|
| - "instead of document.getElementById('id')")
|
| -
|
| - def InheritDocCheck(self, i, line):
|
| - """Checks for use of '@inheritDoc' instead of '@override'."""
|
| - return self.RegexCheck(i, line, r"\* (@inheritDoc)",
|
| - "@inheritDoc is deprecated, use @override instead")
|
| -
|
| - def PolymerLocalIdCheck(self, i, line):
|
| - """Checks for use of element.$.localId."""
|
| - return self.RegexCheck(i, line, r"(?<!this)(\.\$)[\[\.]",
|
| - "Please only use this.$.localId, not element.$.localId")
|
| -
|
| - def WrapperTypeCheck(self, i, line):
|
| - """Check for wrappers (new String()) instead of builtins (string)."""
|
| - return self.RegexCheck(i, line,
|
| - r"(?:/\*)?\*.*?@(?:param|return|type) ?" # /** @param/@return/@type
|
| - r"{[^}]*\b(String|Boolean|Number)\b[^}]*}", # {(Boolean|Number|String)}
|
| - "Don't use wrapper types (i.e. new String() or @type {String})")
|
| -
|
| - def VarNameCheck(self, i, line):
|
| - """See the style guide. http://goo.gl/eQiXVW"""
|
| - return self.RegexCheck(i, line,
|
| - r"var (?!g_\w+)(_?[a-z][a-zA-Z]*[_$][\w_$]*)(?<! \$)",
|
| - "Please use var namesLikeThis <https://goo.gl/eQiXVW>")
|
| -
|
| - def _GetErrorHighlight(self, start, length):
|
| - """Takes a start position and a length, and produces a row of '^'s to
|
| - highlight the corresponding part of a string.
|
| - """
|
| - return start * ' ' + length * '^'
|
| -
|
| - def RunChecks(self):
|
| - """Check for violations of the Chromium JavaScript style guide. See
|
| - https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md#JavaScript
|
| - """
|
| - results = []
|
| -
|
| - affected_files = self.input_api.change.AffectedFiles(
|
| - file_filter=self.file_filter,
|
| - include_deletes=False)
|
| - affected_js_files = filter(lambda f: f.LocalPath().endswith('.js'),
|
| - affected_files)
|
| - for f in affected_js_files:
|
| - error_lines = []
|
| -
|
| - for i, line in enumerate(f.NewContents(), start=1):
|
| - error_lines += filter(None, [
|
| - self.ChromeSendCheck(i, line),
|
| - self.CommentIfAndIncludeCheck(i, line),
|
| - self.ConstCheck(i, line),
|
| - self.GetElementByIdCheck(i, line),
|
| - self.EndJsDocCommentCheck(i, line),
|
| - self.ExtraDotInGenericCheck(i, line),
|
| - self.InheritDocCheck(i, line),
|
| - self.PolymerLocalIdCheck(i, line),
|
| - self.WrapperTypeCheck(i, line),
|
| - self.VarNameCheck(i, line),
|
| - ])
|
| -
|
| - if error_lines:
|
| - error_lines = [
|
| - 'Found JavaScript style violations in %s:' %
|
| - f.LocalPath()] + error_lines
|
| - results.append(self.output_api.PresubmitError('\n'.join(error_lines)))
|
| -
|
| - if results:
|
| - results.append(self.output_api.PresubmitNotifyResult(
|
| - 'See the JavaScript style guide at '
|
| - 'https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md#JavaScript'))
|
| -
|
| - return results
|
|
|