Title: [203453] trunk/Tools
Revision
203453
Author
commit-qu...@webkit.org
Date
2016-07-20 08:40:05 -0700 (Wed, 20 Jul 2016)

Log Message

Improve prepare-ChangeLog for @media blocks
https://bugs.webkit.org/show_bug.cgi?id=159907

Patch by Joseph Pecoraro <pecor...@apple.com> on 2016-07-20
Reviewed by Timothy Hatcher.

* Scripts/prepare-ChangeLog:
(get_selector_line_ranges_for_css):
Get a range for @media blocks just like a selector.
    Start Line = line with '{'
    End line = line with '}'
    Name = "@media ..."

* Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt:
Improved error messages for unbalanced portions.

* Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
* Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css:
(.media-query::before):
(@media only screen and (max-width: 980px)):
(.media-query a):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.both a):
(.both b):
(.media-query b):
(.media-query::after):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (203452 => 203453)


--- trunk/Tools/ChangeLog	2016-07-20 14:50:32 UTC (rev 203452)
+++ trunk/Tools/ChangeLog	2016-07-20 15:40:05 UTC (rev 203453)
@@ -1,3 +1,31 @@
+2016-07-20  Joseph Pecoraro  <pecor...@apple.com>
+
+        Improve prepare-ChangeLog for @media blocks
+        https://bugs.webkit.org/show_bug.cgi?id=159907
+
+        Reviewed by Timothy Hatcher.
+
+        * Scripts/prepare-ChangeLog:
+        (get_selector_line_ranges_for_css):
+        Get a range for @media blocks just like a selector.
+            Start Line = line with '{'
+            End line = line with '}'
+            Name = "@media ..."
+
+        * Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt:
+        Improved error messages for unbalanced portions.
+
+        * Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
+        * Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css:
+        (.media-query::before):
+        (@media only screen and (max-width: 980px)):
+        (.media-query a):
+        (@media (-webkit-min-device-pixel-ratio: 2)):
+        (.both a):
+        (.both b):
+        (.media-query b):
+        (.media-query::after):
+
 2016-07-20  Csaba Osztrogonác  <o...@webkit.org>
 
         Fix expectedFailErrorHandler in run-jsc-stress-tests

Modified: trunk/Tools/Scripts/prepare-ChangeLog (203452 => 203453)


--- trunk/Tools/Scripts/prepare-ChangeLog	2016-07-20 14:50:32 UTC (rev 203452)
+++ trunk/Tools/Scripts/prepare-ChangeLog	2016-07-20 15:40:05 UTC (rev 203453)
@@ -1781,42 +1781,60 @@
 
     my @ranges;
 
-    my $currentSelector = "";
-    my $start = 0;
     my $inComment = 0;
     my $inBrace = 0;
+    my @stack;
+    my $context;
+    my @currentParseMode = ("global");
+    my $selectorBraces = 0;
 
     while (<$fileHandle>) {
         foreach my $token (split m-(\{|\}|/\*|\*/)-, $_) {
             if ($token eq "{") {
                 if (!$inComment) {
-                    warn "mismatched brace found in $fileName\n" if $inBrace;
-                    $inBrace = 1;
+                    $inBrace += 1;                    
+                    $selectorBraces += 1 if $currentParseMode[$#currentParseMode] eq "selector";
+                    warn "mismatched opening brace found in $fileName:$.\n" if $selectorBraces > 1;
                 }
             } elsif ($token eq "}") {
                 if (!$inComment) {
-                    warn "mismatched brace found in $fileName\n" if !$inBrace;
-                    $inBrace = 0;
-                    push(@ranges, [$start, $., $currentSelector]);
-                    $currentSelector = "";
-                    $start = 0;
+                    if (!$inBrace or $currentParseMode[$#currentParseMode] eq "global") {
+                        warn "mismatched closing brace found in $fileName:$.\n";
+                        next;
+                    }
+
+                    $inBrace -= 1;
+
+                    pop(@currentParseMode);
+                    my $name = pop(@stack);
+                    my $startLine = pop(@stack);
+                    my $endLine = $.;
+                    push(@ranges, [$startLine, $endLine, $name]);
+                    $selectorBraces = 0;
                 }
             } elsif ($token eq "/*") {
                 $inComment = 1;
             } elsif ($token eq "*/") {
-                warn "mismatched comment found in $fileName\n" if !$inComment;
+                warn "mismatched comment found in $fileName:$.\n" if !$inComment;
                 $inComment = 0;
             } else {
-                if (!$inComment and !$inBrace and $token !~ /^[\s\t]*$/) {
+                if (!$inComment and $currentParseMode[$#currentParseMode] ne "selector" and $token !~ /^[\s\t]*$/) {
                     $token =~ s/^[\s\t]*|[\s\t]*$//g;
-                    $currentSelector = $token;
-                    $start = $.;
+                    my $startLine = $.;
+                    if ($token =~ /^\@media/) {
+                        push(@currentParseMode, "media");
+                        push(@stack, ($startLine, $token));
+                    } else {
+                        push(@currentParseMode, "selector");
+                        push(@stack, ($startLine, $token));
+                    }
                 }
             }
         }
     }
 
-    return @ranges;
+    # Sort by start line.
+    return sort {$a->[0] <=> $b->[0]} @ranges;
 }
 
 # Read a file and get all the line ranges of the things that look like Swift classes, methods,

Modified: trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt (203452 => 203453)


--- trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt	2016-07-20 14:50:32 UTC (rev 203452)
+++ trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt	2016-07-20 15:40:05 UTC (rev 203453)
@@ -91,6 +91,46 @@
       '76',
       '79',
       'element22'
+    ],
+    [
+      '87',
+      '87',
+      '.media-query::before'
+    ],
+    [
+      '89',
+      '96',
+      '@media only screen and (max-width: 980px)'
+    ],
+    [
+      '90',
+      '90',
+      '.media-query a'
+    ],
+    [
+      '91',
+      '94',
+      '@media (-webkit-min-device-pixel-ratio: 2)'
+    ],
+    [
+      '92',
+      '92',
+      '.both a'
+    ],
+    [
+      '93',
+      '93',
+      '.both b'
+    ],
+    [
+      '95',
+      '95',
+      '.media-query b'
+    ],
+    [
+      '98',
+      '98',
+      '.media-query::after'
     ]
   ]
 }

Modified: trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css (203452 => 203453)


--- trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css	2016-07-20 14:50:32 UTC (rev 203452)
+++ trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css	2016-07-20 15:40:05 UTC (rev 203453)
@@ -83,3 +83,16 @@
     property1: 123;
 }
 */
+
+.media-query::before {}
+
+@media only screen and (max-width: 980px) {
+    .media-query a {}
+    @media (-webkit-min-device-pixel-ratio: 2) {
+        .both a {}
+        .both b {}
+    }
+    .media-query b {}
+}
+
+.media-query::after {}

Modified: trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt (203452 => 203453)


--- trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt	2016-07-20 14:50:32 UTC (rev 203452)
+++ trunk/Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt	2016-07-20 15:40:05 UTC (rev 203453)
@@ -1,12 +1,11 @@
 {
-  'stderr' => 'mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
-mismatched brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css
+  'stderr' => 'mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:21
+mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:25
+mismatched comment found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:29
+mismatched opening brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:33
+mismatched closing brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:34
+mismatched opening brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:37
+mismatched closing brace found in Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning.css:42
 ',
   'stdout' => '',
   'ranges' => [
@@ -31,11 +30,6 @@
       'element4'
     ],
     [
-      0,
-      '34',
-      ''
-    ],
-    [
       '36',
       '38',
       'element5'
@@ -46,14 +40,9 @@
       'element6'
     ],
     [
-      0,
-      '42',
-      ''
-    ],
-    [
-      0,
+      '45',
       '47',
-      ''
+      'element7'
     ]
   ]
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to