Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / web_dev_style / css_checker.py
index 495cf98..d626e60 100644 (file)
@@ -93,10 +93,10 @@ class CSSChecker(object):
     def close_brace_on_new_line(line):
       # Ignore single frames in a @keyframe, i.e. 0% { margin: 50px; }
       frame_reg = re.compile(r"""
-          \s*\d+%\s*{       # 50% {
-          \s*[\w-]+:        # rule:
-          (\s*[\w-]+)+\s*;  # value;
-          \s*}\s*           # }""",
+          \s*(from|to|\d+%)\s*{   # 50% {
+          \s*[\w-]+:              # rule:
+          (\s*[\w\(\), -]+)+\s*;  # value;
+          \s*}\s*                 # }""",
           re.VERBOSE)
       return ('}' in line and re.search(r'[^ }]', line) and
               not frame_reg.match(line))
@@ -245,6 +245,16 @@ class CSSChecker(object):
       h = hex_reg.search(line).group(1)
       return ' (replace with #%s)' % (h[0] + h[2] + h[4])
 
+    webkit_before_or_after_reg = re.compile(r'-webkit-(\w+-)(after|before):')
+
+    def suggest_top_or_bottom(line):
+      prop, pos = webkit_before_or_after_reg.search(line).groups()
+      top_or_bottom = 'top' if pos == 'before' else 'bottom'
+      return ' (replace with %s)' % (prop + top_or_bottom)
+
+    def webkit_before_or_after(line):
+      return webkit_before_or_after_reg.search(line)
+
     def zero_length_values(contents):
       hsl_reg = re.compile(r"""
           hsl\([^\)]*       # hsl(<maybe stuff>
@@ -316,6 +326,10 @@ class CSSChecker(object):
           'test': rgb_if_not_gray,
           'after': suggest_rgb_from_hex,
         },
+        { 'desc': 'Use *-top/bottom instead of -webkit-*-before/after.',
+          'test': webkit_before_or_after,
+          'after': suggest_top_or_bottom,
+        },
         { 'desc': 'Make all zero length terms (i.e. 0px) 0 unless inside of '
                   'hsl() or part of @keyframe.',
           'test': zero_length_values,