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

Side by Side Diff: chrome/browser/web_dev_style/css_checker.py

Issue 2261523005: Presubmit test for overriding properties generated by Polymer mixin shim (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/web_dev_style/css_checker_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2012 The Chromium Authors. All rights reserved. 1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Presubmit script for Chromium WebUI resources. 5 """Presubmit script for Chromium WebUI resources.
6 6
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8 for more details about the presubmit API built into depot_tools, and see 8 for more details about the presubmit API built into depot_tools, and see
9 http://www.chromium.org/developers/web-development-style-guide for the rules 9 http://www.chromium.org/developers/web-development-style-guide for the rules
10 we're checking against here. 10 we're checking against here.
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 def milliseconds_for_small_times(line): 162 def milliseconds_for_small_times(line):
163 return small_seconds_reg.search(line) 163 return small_seconds_reg.search(line)
164 164
165 def suggest_ms_from_s(line): 165 def suggest_ms_from_s(line):
166 ms = int(float(small_seconds_reg.search(line).group(1)) * 1000) 166 ms = int(float(small_seconds_reg.search(line).group(1)) * 1000)
167 return ' (replace with %dms)' % ms 167 return ' (replace with %dms)' % ms
168 168
169 def no_data_uris_in_source_files(line): 169 def no_data_uris_in_source_files(line):
170 return re.search(r'\(\s*\s*data:', line) 170 return re.search(r'\(\s*\s*data:', line)
171 171
172 def no_mixin_shims(line):
173 return re.search('\-\-[\w\-]+_\-_[\w\-]+\s*:', line)
174
172 def no_quotes_in_url(line): 175 def no_quotes_in_url(line):
173 return re.search('url\s*\(\s*["\']', line, re.IGNORECASE) 176 return re.search('url\s*\(\s*["\']', line, re.IGNORECASE)
174 177
175 def one_rule_per_line(line): 178 def one_rule_per_line(line):
176 one_rule_reg = re.compile(r""" 179 one_rule_reg = re.compile(r"""
177 [\w-](?<!data): # a rule: but no data URIs 180 [\w-](?<!data): # a rule: but no data URIs
178 (?!//)[^;]+; # value; ignoring colons in protocols:// and }; 181 (?!//)[^;]+; # value; ignoring colons in protocols:// and };
179 \s*[^ }]\s* # any non-space after the end colon 182 \s*[^ }]\s* # any non-space after the end colon
180 """, 183 """,
181 re.VERBOSE) 184 re.VERBOSE)
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 'test': hex_could_be_shorter, 342 'test': hex_could_be_shorter,
340 'after': suggest_short_hex, 343 'after': suggest_short_hex,
341 }, 344 },
342 { 'desc': 'Use milliseconds for time measurements under 1 second.', 345 { 'desc': 'Use milliseconds for time measurements under 1 second.',
343 'test': milliseconds_for_small_times, 346 'test': milliseconds_for_small_times,
344 'after': suggest_ms_from_s, 347 'after': suggest_ms_from_s,
345 }, 348 },
346 { 'desc': "Don't use data URIs in source files. Use grit instead.", 349 { 'desc': "Don't use data URIs in source files. Use grit instead.",
347 'test': no_data_uris_in_source_files, 350 'test': no_data_uris_in_source_files,
348 }, 351 },
352 { 'desc': "Don't override custom properties created by Polymer's mixin "
353 "shim. Set mixins or documented custom properties directly.",
354 'test': no_mixin_shims,
355 },
349 { 'desc': "Don't use quotes in url().", 356 { 'desc': "Don't use quotes in url().",
350 'test': no_quotes_in_url, 357 'test': no_quotes_in_url,
351 }, 358 },
352 { 'desc': 'One rule per line (what not to do: color: red; margin: 0;).', 359 { 'desc': 'One rule per line (what not to do: color: red; margin: 0;).',
353 'test': one_rule_per_line, 360 'test': one_rule_per_line,
354 }, 361 },
355 { 'desc': 'One selector per line (what not to do: a, b {}).', 362 { 'desc': 'One selector per line (what not to do: a, b {}).',
356 'test': one_selector_per_line, 363 'test': one_selector_per_line,
357 'multiline': True, 364 'multiline': True,
358 }, 365 },
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 error += check['after'](line) 421 error += check['after'](line)
415 check_errors.append(error) 422 check_errors.append(error)
416 if len(check_errors) > 0: 423 if len(check_errors) > 0:
417 file_errors.append('- %s\n%s' % 424 file_errors.append('- %s\n%s' %
418 (check['desc'], '\n'.join(check_errors))) 425 (check['desc'], '\n'.join(check_errors)))
419 if file_errors: 426 if file_errors:
420 results.append(self.output_api.PresubmitPromptWarning( 427 results.append(self.output_api.PresubmitPromptWarning(
421 '%s:\n%s' % (f[0], '\n\n'.join(file_errors)))) 428 '%s:\n%s' % (f[0], '\n\n'.join(file_errors))))
422 429
423 return results 430 return results
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/web_dev_style/css_checker_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698