Trailing spaces in CSP source lists should not generate console warnings.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Aug 2012 22:48:25 +0000 (22:48 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 23 Aug 2012 22:48:25 +0000 (22:48 +0000)
https://bugs.webkit.org/show_bug.cgi?id=94847

Patch by Mike West <mkwst@chromium.org> on 2012-08-23
Reviewed by Adam Barth.

Trailing space after a valid source in a Content Security Policy source
list was accidentally generating console warnings about an invalid
(empty) source. This patch silently ignores trailing whitespace instead.

Source/WebCore:

A test-case has been added to 'source-list-parsing-02.html' to cover
this case.

* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::parse):
    Return early if we reach the end of the source list after skipping
    leading whitespace.

LayoutTests:

* http/tests/security/contentSecurityPolicy/source-list-parsing-02-expected.txt:
* http/tests/security/contentSecurityPolicy/source-list-parsing-02.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@126488 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-02-expected.txt
LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-02.html
Source/WebCore/ChangeLog
Source/WebCore/page/ContentSecurityPolicy.cpp

index f042372..e700736 100644 (file)
@@ -1,3 +1,17 @@
+2012-08-23  Mike West  <mkwst@chromium.org>
+
+        Trailing spaces in CSP source lists should not generate console warnings.
+        https://bugs.webkit.org/show_bug.cgi?id=94847
+
+        Reviewed by Adam Barth.
+
+        Trailing space after a valid source in a Content Security Policy source
+        list was accidentally generating console warnings about an invalid
+        (empty) source. This patch silently ignores trailing whitespace instead.
+
+        * http/tests/security/contentSecurityPolicy/source-list-parsing-02-expected.txt:
+        * http/tests/security/contentSecurityPolicy/source-list-parsing-02.html:
+
 2012-08-23  Kenneth Russell  <kbr@google.com>
 
         [Chromium] LayoutTests: css3/selector3/xml tests are flaky / have wrong expectations on Snow Leopard
index 4f4aff3..34d5a75 100644 (file)
@@ -6,7 +6,8 @@
 var tests = [
     ['yes', 'script-src\thttp://127.0.0.1:8000', 'resources/script.js'],
     ['yes', 'script-src http://127.0.0.1:8000   \t ', 'resources/script.js'],
-    ['yes', 'script-src http://127.0.0.1:* ', 'resources/script.js']
+    ['yes', 'script-src http://127.0.0.1:* ', 'resources/script.js'],
+    ['yes', 'script-src \'self\' chrome-extension-resource: ;', 'resources/script.js'],
 ];
 </script>
 </head>
index 7ad4602..38c439f 100644 (file)
@@ -1,3 +1,22 @@
+2012-08-23  Mike West  <mkwst@chromium.org>
+
+        Trailing spaces in CSP source lists should not generate console warnings.
+        https://bugs.webkit.org/show_bug.cgi?id=94847
+
+        Reviewed by Adam Barth.
+
+        Trailing space after a valid source in a Content Security Policy source
+        list was accidentally generating console warnings about an invalid
+        (empty) source. This patch silently ignores trailing whitespace instead.
+
+        A test-case has been added to 'source-list-parsing-02.html' to cover
+        this case.
+
+        * page/ContentSecurityPolicy.cpp:
+        (WebCore::CSPSourceList::parse):
+            Return early if we reach the end of the source list after skipping
+            leading whitespace.
+
 2012-08-23  Adam Barth  <abarth@webkit.org>
 
         [V8] OwnHandle is a bit of a misnomer
index 74bec7b..a3834fa 100644 (file)
@@ -262,6 +262,9 @@ void CSPSourceList::parse(const UChar* begin, const UChar* end)
     bool isFirstSourceInList = true;
     while (position < end) {
         skipWhile<isASCIISpace>(position, end);
+        if (position == end)
+            return;
+
         const UChar* beginSource = position;
         skipWhile<isSourceCharacter>(position, end);