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

Unified Diff: chrome/browser/resources/web_dev_style/css_checker.py

Issue 9808002: [WebUI] Make CSS presubmit play nice with grit XML. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: dpranke review Created 8 years, 9 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/resources/test_presubmit.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/web_dev_style/css_checker.py
diff --git a/chrome/browser/resources/web_dev_style/css_checker.py b/chrome/browser/resources/web_dev_style/css_checker.py
index db7222b3d4e9616a1ac55fb46772643a736bd99b..63bba9c4a4a08c2b3cf673bed558f341b83ba5f6 100644
--- a/chrome/browser/resources/web_dev_style/css_checker.py
+++ b/chrome/browser/resources/web_dev_style/css_checker.py
@@ -28,12 +28,19 @@ class CSSChecker(object):
def _is_gray(s):
return s[0] == s[1] == s[2] if len(s) == 3 else s[0:2] == s[2:4] == s[4:6]
+ def _remove_all(s):
+ return _remove_grit(_remove_ats(_remove_comments(s)))
+
def _remove_ats(s):
return re.sub(re.compile(r'@\w+.*?{(.*{.*?})+.*?}', re.DOTALL), '\\1', s)
def _remove_comments(s):
return re.sub(re.compile(r'/\*.*?\*/', re.DOTALL), '', s)
+ def _remove_grit(s):
+ grit_reg = r'<if[^>]*>.*<\s*/\s*if[^>]*>|<include[^>]+>'
+ return re.sub(re.compile(grit_reg, re.DOTALL), '', s)
+
def _rgb_from_hex(s):
if len(s) == 3:
r, g, b = s[0] + s[0], s[1] + s[1], s[2] + s[2]
@@ -44,8 +51,8 @@ class CSSChecker(object):
def alphabetize_props(contents):
errors = []
for rule in re.finditer(r'{(.*?)}', contents, re.DOTALL):
- rules = filter(lambda r: r.find(': ') >= 0,
- map(lambda t: t.strip(), rule.group(1).split(';'))[0:-1])
+ semis = map(lambda t: t.strip(), rule.group(1).split(';'))[:-1]
+ rules = filter(lambda r: ': ' in r, semis)
props = map(lambda r: r[0:r.find(':')], rules)
if props != sorted(props):
errors.append(' %s;\n' % (';\n '.join(rules)))
@@ -170,8 +177,9 @@ class CSSChecker(object):
file_filter=self.file_filter)
files = []
for f in affected_files:
- # Remove all /*comments*/ and @at-keywords; we're not using a real parser.
- file_contents = _remove_ats(_remove_comments('\n'.join(f.NewContents())))
+ # Remove all /*comments*/, @at-keywords, and grit <if|include> tags; we're
+ # not using a real parser. TODO(dbeam): Check alpha in <if> blocks.
+ file_contents = _remove_all('\n'.join(f.NewContents()))
files.append((f.LocalPath(), file_contents))
# Only look at CSS files for now.
« no previous file with comments | « chrome/browser/resources/test_presubmit.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698