Source/WebCore:
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2019 21:19:57 +0000 (21:19 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 19 Apr 2019 21:19:57 +0000 (21:19 +0000)
Standardize the <meta name="color-scheme"> separator.
https://bugs.webkit.org/show_bug.cgi?id=193931
rdar://problem/49995929

Reviewed by Darin Adler.

Tests: css-dark-mode/color-scheme-meta.html

* dom/Document.cpp:
(WebCore::processColorSchemeString): Use isHTMLSpace insead of isColorSchemeSeparator and isASCIISpace.
(WebCore::isColorSchemeSeparator): Deleted.

LayoutTests:
Standardize the `<meta name="color-scheme">` separator.
https://bugs.webkit.org/show_bug.cgi?id=193931
rdar://problem/49995929

Reviewed by Darin Adler.

* css-dark-mode/color-scheme-meta-expected.txt:
* css-dark-mode/color-scheme-meta.html: Test other types of spaces like tab, newline and vertical tab.

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

LayoutTests/ChangeLog
LayoutTests/css-dark-mode/color-scheme-meta-expected.txt
LayoutTests/css-dark-mode/color-scheme-meta.html
Source/WebCore/ChangeLog
Source/WebCore/dom/Document.cpp

index f2a6709..a751bdf 100644 (file)
@@ -1,3 +1,14 @@
+2019-04-19  Timothy Hatcher  <timothy@apple.com>
+
+        Standardize the `<meta name="color-scheme">` separator.
+        https://bugs.webkit.org/show_bug.cgi?id=193931
+        rdar://problem/49995929
+
+        Reviewed by Darin Adler.
+
+        * css-dark-mode/color-scheme-meta-expected.txt:
+        * css-dark-mode/color-scheme-meta.html: Test other types of spaces like tab, newline and vertical tab.
+
 2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>
 
         [Mac WK2] REGRESSION (r244182) editing/execCommand/change-list-type.html is a flaky failure
index 0491c80..5333f33 100644 (file)
@@ -18,6 +18,8 @@ PASS Color schemes changed to empty value
 PASS Element colors are correct in dark color scheme with implicit light color scheme 
 PASS Color schemes changed to light,dark 
 PASS Element colors are in light color scheme since comma is not an allowed seperator 
+PASS Color schemes changed to foo\vdark 
+PASS Element colors are in light color scheme since vertical tab is not an allowed seperator 
 PASS Color schemes changed to a bogus value and dark 
 PASS Element colors are correct in dark color scheme with dark color scheme 
 
index ce7aafe..887dc4a 100644 (file)
@@ -92,7 +92,7 @@ test(function() {
 }, "Element colors are correct in dark color scheme with only dark color scheme");
 
 test(function() {
-    document.getElementById("meta").content = "light  foo ";
+    document.getElementById("meta").content = "\tlight  foo ";
 }, "Color schemes changed to light and a bogus value");
 
 test(function() {
@@ -119,7 +119,16 @@ test(function() {
 }, "Element colors are in light color scheme since comma is not an allowed seperator");
 
 test(function() {
-    document.getElementById("meta").content = "  foo dark";
+    document.getElementById("meta").content = "foo\vdark ";
+}, "Color schemes changed to foo\\vdark");
+
+test(function() {
+    // The semantic text color should be black still.
+    test_color_is_black("test1");
+}, "Element colors are in light color scheme since vertical tab is not an allowed seperator");
+
+test(function() {
+    document.getElementById("meta").content = "  foo\ndark";
 }, "Color schemes changed to a bogus value and dark");
 
 test(function() {
index df6fc73..ef3ecc4 100644 (file)
@@ -1,3 +1,17 @@
+2019-04-19  Timothy Hatcher  <timothy@apple.com>
+
+        Standardize the <meta name="color-scheme"> separator.
+        https://bugs.webkit.org/show_bug.cgi?id=193931
+        rdar://problem/49995929
+
+        Reviewed by Darin Adler.
+
+        Tests: css-dark-mode/color-scheme-meta.html
+
+        * dom/Document.cpp:
+        (WebCore::processColorSchemeString): Use isHTMLSpace insead of isColorSchemeSeparator and isASCIISpace.
+        (WebCore::isColorSchemeSeparator): Deleted.
+
 2019-04-19  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         [iOS] Add quirks to disable autocorrection and autocapitalization in hidden editable areas on some websites
index 9210d66..441a602 100644 (file)
@@ -3603,22 +3603,17 @@ void Document::updateViewportArguments()
 }
 
 #if ENABLE(DARK_MODE_CSS)
-static inline bool isColorSchemeSeparator(UChar character)
-{
-    return isASCIISpace(character);
-}
-
 static void processColorSchemeString(StringView colorScheme, const WTF::Function<void(StringView key)>& callback)
 {
     unsigned length = colorScheme.length();
     for (unsigned i = 0; i < length; ) {
         // Skip to first non-separator.
-        while (i < length && isColorSchemeSeparator(colorScheme[i]))
+        while (i < length && isHTMLSpace(colorScheme[i]))
             ++i;
         unsigned keyBegin = i;
 
         // Skip to first separator.
-        while (i < length && !isColorSchemeSeparator(colorScheme[i]))
+        while (i < length && !isHTMLSpace(colorScheme[i]))
             ++i;
         unsigned keyEnd = i;