Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: chrome/browser/web_dev_style/html_checker.py

Issue 2890513003: Move chrome/browser/web_dev_style/ to tools/ to use from more places (Closed)
Patch Set: tsergeant@ review Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/web_dev_style/css_checker_test.py ('k') | chrome/browser/web_dev_style/html_checker_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/web_dev_style/html_checker.py
diff --git a/chrome/browser/web_dev_style/html_checker.py b/chrome/browser/web_dev_style/html_checker.py
deleted file mode 100644
index bd5070a72382f901d17dc2e2d0106f9bc42c8e48..0000000000000000000000000000000000000000
--- a/chrome/browser/web_dev_style/html_checker.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# 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.
-
-"""
-Presubmit for Chromium HTML resources. See chrome/browser/PRESUBMIT.py.
-"""
-
-import regex_check
-
-
-class HtmlChecker(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 ClassesUseDashFormCheck(self, line_number, line):
- regex = self.input_api.re.compile("""
- (?:^|\s) # start of line or whitespace
- (class="[^"]*[A-Z_][^"]*") # class contains caps or '_'
- """,
- self.input_api.re.VERBOSE)
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- "Classes should use dash-form.")
-
- def DoNotCloseSingleTagsCheck(self, line_number, line):
- regex = r"(/>)"
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- "Do not close single tags.")
-
- def DoNotUseBrElementCheck(self, line_number, line):
- regex = r"(<br)"
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- "Do not use <br>; place blocking elements (<div>) as appropriate.")
-
- def DoNotUseInputTypeButtonCheck(self, line_number, line):
- regex = self.input_api.re.compile("""
- (<input [^>]* # "<input " followed by anything but ">"
- type="button" # type="button"
- [^>]*>) # anything but ">" then ">"
- """,
- self.input_api.re.VERBOSE)
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- 'Use the button element instead of <input type="button">')
-
- def DoNotUseSingleQuotesCheck(self, line_number, line):
- regex = self.input_api.re.compile("""
- <\S+ # The tag name.
- (?:\s+\S+\$?="[^"]*"|\s+\S+)* # Correctly quoted or non-value props.
- \s+(\S+\$?='[^']*') # Find incorrectly quoted (foo='bar').
- [^>]*> # To the end of the tag.
- """,
- self.input_api.re.MULTILINE | self.input_api.re.VERBOSE)
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- 'Use double quotes rather than single quotes in HTML properties')
-
- def I18nContentJavaScriptCaseCheck(self, line_number, line):
- regex = self.input_api.re.compile("""
- (?:^|\s) # start of line or whitespace
- i18n-content=" # i18n-content="
- ([A-Z][^"]*|[^"]*[-_][^"]*)" # starts with caps or contains '-' or '_'
- """,
- self.input_api.re.VERBOSE)
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- "For i18n-content use javaScriptCase.")
-
- def LabelCheck(self, line_number, line):
- regex = self.input_api.re.compile("""
- (?:^|\s) # start of line or whitespace
- <label[^>]+? # <label tag
- (for=) # for=
- """,
- self.input_api.re.VERBOSE)
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- "Avoid 'for' attribute on <label>. Place the input within the <label>, "
- "or use aria-labelledby for <select>.")
-
- def QuotePolymerBindings(self, line_number, line):
- regex = self.input_api.re.compile(r"=(\[\[|\{\{)")
- return regex_check.RegexCheck(self.input_api.re, line_number, line, regex,
- 'Please use quotes around Polymer bindings (i.e. attr="[[prop]]")')
-
- def RunChecks(self):
- """Check for violations of the Chromium web development style guide. See
- https://chromium.googlesource.com/chromium/src/+/master/styleguide/web/web.md
- """
- results = []
-
- affected_files = self.input_api.change.AffectedFiles(
- file_filter=self.file_filter, include_deletes=False)
-
- for f in affected_files:
- if not f.LocalPath().endswith('.html'):
- continue
-
- errors = []
-
- for line_number, line in f.ChangedContents():
- errors.extend(filter(None, [
- self.ClassesUseDashFormCheck(line_number, line),
- self.DoNotCloseSingleTagsCheck(line_number, line),
- self.DoNotUseBrElementCheck(line_number, line),
- self.DoNotUseInputTypeButtonCheck(line_number, line),
- self.I18nContentJavaScriptCaseCheck(line_number, line),
- self.LabelCheck(line_number, line),
- self.QuotePolymerBindings(line_number, line),
- ]))
-
- if errors:
- abs_local_path = f.AbsoluteLocalPath()
- file_indicator = 'Found HTML style issues in %s' % abs_local_path
- prompt_msg = file_indicator + '\n\n' + '\n'.join(errors) + '\n'
- results.append(self.output_api.PresubmitPromptWarning(prompt_msg))
-
- return results
« no previous file with comments | « chrome/browser/web_dev_style/css_checker_test.py ('k') | chrome/browser/web_dev_style/html_checker_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698