Rename `supported-color-schemes` to `color-scheme`.
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Apr 2019 23:15:01 +0000 (23:15 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 17 Apr 2019 23:15:01 +0000 (23:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=197016
rdar://problem/49980259

Reviewed by Simon Fraser.

Source/WebCore:

Changed `supported-color-schemes` to `color-scheme` to follow the spec changes
being tracked by: https://github.com/w3c/csswg-drafts/issues/3807

The old `supported-color-schemes` is now an alias of `color-scheme` for compatibility.

Tests: css-dark-mode/color-scheme-css-parse.html
       css-dark-mode/color-scheme-css.html
       css-dark-mode/color-scheme-meta.html
       css-dark-mode/color-scheme-priority.html
       css-dark-mode/color-scheme-scrollbar.html
       css-dark-mode/older-syntax/supported-color-schemes-css.html
       css-dark-mode/older-syntax/supported-color-schemes-meta.html
       css-dark-mode/older-systems/color-scheme-css.html
       css-dark-mode/older-systems/color-scheme-meta.html

* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::updateColorScheme):
(WebCore::StyleBuilderConverter::convertColorScheme):
(WebCore::StyleBuilderConverter::updateSupportedColorSchemes): Deleted.
(WebCore::StyleBuilderConverter::convertSupportedColorSchemes): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueColorScheme):
(WebCore::StyleBuilderCustom::applyValueSupportedColorSchemes): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyMatchedProperties):
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeColorScheme):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeSupportedColorSchemes): Deleted.
* dom/Document.cpp:
(WebCore::processColorSchemeString):
(WebCore::Document::processColorScheme):
(WebCore::Document::useDarkAppearance const):
(WebCore::processColorSchemes): Deleted.
(WebCore::Document::processSupportedColorSchemes): Deleted.
* dom/Document.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process):
* page/FrameView.cpp:
(WebCore::FrameView::rendererForColorScheme const):
(WebCore::FrameView::useDarkAppearance const):
(WebCore::FrameView::styleColorOptions const):
(WebCore::FrameView::rendererForSupportedColorSchemes const): Deleted.
* page/FrameView.h:
* rendering/style/RenderStyle.cpp:
(WebCore::rareInheritedDataChangeRequiresRepaint):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::colorScheme const):
(WebCore::RenderStyle::setHasExplicitlySetColorScheme):
(WebCore::RenderStyle::hasExplicitlySetColorScheme const):
(WebCore::RenderStyle::setColorScheme):
(WebCore::RenderStyle::initialColorScheme):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::supportedColorSchemes const): Deleted.
(WebCore::RenderStyle::setHasExplicitlySetSupportedColorSchemes): Deleted.
(WebCore::RenderStyle::hasExplicitlySetSupportedColorSchemes const): Deleted.
(WebCore::RenderStyle::setSupportedColorSchemes): Deleted.
(WebCore::RenderStyle::initialSupportedColorSchemes): Deleted.
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleColorScheme.h: Renamed from Source/WebCore/rendering/style/StyleSupportedColorSchemes.h.
(WebCore::StyleColorScheme::StyleColorScheme):
(WebCore::StyleColorScheme::operator== const):
(WebCore::StyleColorScheme::operator!= const):
(WebCore::StyleColorScheme::isAuto const):
(WebCore::StyleColorScheme::isOnly const):
(WebCore::StyleColorScheme::colorScheme const):
(WebCore::StyleColorScheme::add):
(WebCore::StyleColorScheme::contains const):
(WebCore::StyleColorScheme::setAllowsTransformations):
(WebCore::StyleColorScheme::allowsTransformations const):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
* rendering/style/StyleRareInheritedData.h:

Source/WebInspectorUI:

* UserInterface/Views/Main.css:
(:root):

LayoutTests:

* css-dark-mode/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
* css-dark-mode/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
* css-dark-mode/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
* css-dark-mode/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes.html.
* css-dark-mode/color-scheme-parse-expected.txt: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes-expected.txt.
* css-dark-mode/color-scheme-parse.html: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes.html.
* css-dark-mode/color-scheme-priority-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority-expected.txt.
* css-dark-mode/color-scheme-priority.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority.html.
* css-dark-mode/color-scheme-scrollbar-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar-expected.txt.
* css-dark-mode/color-scheme-scrollbar.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar.html.
* css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
* css-dark-mode/older-syntax/supported-color-schemes-css.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
* css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
* css-dark-mode/older-syntax/supported-color-schemes-meta.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes.html.
* css-dark-mode/older-systems/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt
* css-dark-mode/older-systems/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html.
* css-dark-mode/older-systems/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt.
* css-dark-mode/older-systems/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html.
* fast/css/style-enumerate-properties.html: Updated property count.

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

46 files changed:
LayoutTests/ChangeLog
LayoutTests/css-dark-mode/color-scheme-css-expected.txt [new file with mode: 0644]
LayoutTests/css-dark-mode/color-scheme-css-parse-expected.txt [moved from LayoutTests/css-dark-mode/parse-supported-color-schemes-expected.txt with 100% similarity]
LayoutTests/css-dark-mode/color-scheme-css-parse.html [new file with mode: 0644]
LayoutTests/css-dark-mode/color-scheme-css.html [new file with mode: 0644]
LayoutTests/css-dark-mode/color-scheme-meta-expected.txt [new file with mode: 0644]
LayoutTests/css-dark-mode/color-scheme-meta.html [new file with mode: 0644]
LayoutTests/css-dark-mode/color-scheme-priority-expected.txt [moved from LayoutTests/css-dark-mode/supported-color-schemes-priority-expected.txt with 70% similarity]
LayoutTests/css-dark-mode/color-scheme-priority.html [moved from LayoutTests/css-dark-mode/supported-color-schemes-priority.html with 90% similarity]
LayoutTests/css-dark-mode/color-scheme-scrollbar-expected.txt [moved from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar-expected.txt with 60% similarity]
LayoutTests/css-dark-mode/color-scheme-scrollbar.html [moved from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar.html with 78% similarity]
LayoutTests/css-dark-mode/default-colors.html
LayoutTests/css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt [moved from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt with 100% similarity]
LayoutTests/css-dark-mode/older-syntax/supported-color-schemes-css.html [moved from LayoutTests/css-dark-mode/supported-color-schemes-css.html with 79% similarity]
LayoutTests/css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt [moved from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt with 74% similarity]
LayoutTests/css-dark-mode/older-syntax/supported-color-schemes-meta.html [moved from LayoutTests/css-dark-mode/supported-color-schemes.html with 88% similarity]
LayoutTests/css-dark-mode/older-systems/color-scheme-css-expected.txt [new file with mode: 0644]
LayoutTests/css-dark-mode/older-systems/color-scheme-css.html [moved from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html with 71% similarity]
LayoutTests/css-dark-mode/older-systems/color-scheme-meta-expected.txt [new file with mode: 0644]
LayoutTests/css-dark-mode/older-systems/color-scheme-meta.html [moved from LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html with 71% similarity]
LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt [deleted file]
LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt [deleted file]
LayoutTests/css-dark-mode/parse-supported-color-schemes.html [deleted file]
LayoutTests/fast/css/style-enumerate-properties.html
Source/WebCore/ChangeLog
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/css/CSSComputedStyleDeclaration.cpp
Source/WebCore/css/CSSProperties.json
Source/WebCore/css/CSSValueKeywords.in
Source/WebCore/css/StyleBuilderConverter.h
Source/WebCore/css/StyleBuilderCustom.h
Source/WebCore/css/StyleResolver.cpp
Source/WebCore/css/parser/CSSPropertyParser.cpp
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/Document.h
Source/WebCore/html/HTMLMetaElement.cpp
Source/WebCore/page/FrameView.cpp
Source/WebCore/page/FrameView.h
Source/WebCore/rendering/style/RenderStyle.cpp
Source/WebCore/rendering/style/RenderStyle.h
Source/WebCore/rendering/style/RenderStyleConstants.h
Source/WebCore/rendering/style/StyleColorScheme.h [moved from Source/WebCore/rendering/style/StyleSupportedColorSchemes.h with 64% similarity]
Source/WebCore/rendering/style/StyleRareInheritedData.cpp
Source/WebCore/rendering/style/StyleRareInheritedData.h
Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/Views/Main.css

index 65f9d76..b520cd4 100644 (file)
@@ -1,3 +1,31 @@
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Rename `supported-color-schemes` to `color-scheme`.
+        https://bugs.webkit.org/show_bug.cgi?id=197016
+        rdar://problem/49980259
+
+        Reviewed by Simon Fraser.
+
+        * css-dark-mode/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
+        * css-dark-mode/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
+        * css-dark-mode/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
+        * css-dark-mode/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes.html.
+        * css-dark-mode/color-scheme-parse-expected.txt: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes-expected.txt.
+        * css-dark-mode/color-scheme-parse.html: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes.html.
+        * css-dark-mode/color-scheme-priority-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority-expected.txt.
+        * css-dark-mode/color-scheme-priority.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority.html.
+        * css-dark-mode/color-scheme-scrollbar-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar-expected.txt.
+        * css-dark-mode/color-scheme-scrollbar.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar.html.
+        * css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
+        * css-dark-mode/older-syntax/supported-color-schemes-css.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
+        * css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
+        * css-dark-mode/older-syntax/supported-color-schemes-meta.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes.html.
+        * css-dark-mode/older-systems/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt
+        * css-dark-mode/older-systems/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html.
+        * css-dark-mode/older-systems/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt.
+        * css-dark-mode/older-systems/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html.
+        * fast/css/style-enumerate-properties.html: Updated property count.
+
 2019-04-17  Justin Fan  <justin_fan@apple.com>
 
         [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
diff --git a/LayoutTests/css-dark-mode/color-scheme-css-expected.txt b/LayoutTests/css-dark-mode/color-scheme-css-expected.txt
new file mode 100644 (file)
index 0000000..afdf3e0
--- /dev/null
@@ -0,0 +1,28 @@
+
+PASS Element colors are correct in light color scheme with only light supported color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with only light supported color scheme 
+PASS Light color scheme enabled 
+PASS Color schemes changed to light and dark 
+PASS Element colors are correct in light color scheme with light and dark supported color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with light and dark supported color scheme 
+PASS Light color scheme enabled 
+PASS Color schemes changed to dark 
+PASS Element colors are correct in light color scheme with only dark supported color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with only dark supported color scheme 
+PASS Color schemes changed to light and a bogus value 
+PASS Element colors are correct in dark color scheme with only light supported color scheme 
+PASS Color schemes changed to auto value 
+PASS Element colors are correct in dark color scheme with implicit light supported color scheme 
+PASS Color schemes changed to light and dark via <meta> element 
+PASS Element colors are correct in dark color scheme with light and dark supported color scheme via <meta> element 
+PASS Color schemes changed to light value 
+PASS Element colors are correct in dark color scheme with explicit light, overriding <meta> element 
+PASS Remove test meta element 
+PASS Color schemes changed to light and dark 
+PASS Element colors are correct in dark color scheme with light and dark supported color scheme 
+PASS Color schemes changed to a bogus value and dark 
+PASS Element colors are correct in dark color scheme with dark supported color scheme 
+
diff --git a/LayoutTests/css-dark-mode/color-scheme-css-parse.html b/LayoutTests/css-dark-mode/color-scheme-css-parse.html
new file mode 100644 (file)
index 0000000..8c01abf
--- /dev/null
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+
+<style>
+#testAuto {
+    color-scheme: auto;
+}
+
+#testOnly {
+    color-scheme: only;
+}
+
+#testLight {
+    color-scheme: light;
+}
+
+#testDark {
+    color-scheme: dark;
+}
+
+#testLightDark {
+    color-scheme: light dark;
+}
+
+#testDarkLight {
+    color-scheme: dark light;
+}
+
+#testLightDarkOnly {
+    color-scheme: light dark only;
+}
+
+#testOnlyDark {
+    color-scheme: only dark;
+}
+
+#testLightOnlyDark {
+    color-scheme: light only dark;
+}
+
+#testLightUnknown {
+    color-scheme: light foo;
+}
+
+#testUnknownDarkOnly {
+    color-scheme: bar dark only;
+}
+
+#testLightUnknownOnly {
+    color-scheme: light baz only;
+}
+
+#testInvalidLightAuto {
+    color-scheme: light auto;
+}
+
+#testInvalidAutoDark {
+    color-scheme: auto dark;
+}
+
+#testInvalidLightDarkLight {
+    color-scheme: light dark light;
+}
+
+#testInvalidNumber {
+    color-scheme: 42;
+}
+
+#testInvalidString {
+    color-scheme: "foo";
+}
+
+#testInvalidLightString {
+    color-scheme: light "foo";
+}
+</style>
+
+<div id="testAuto"></div>
+<div id="testOnly"></div>
+<div id="testLight"></div>
+<div id="testDark"></div>
+<div id="testLightDark"></div>
+<div id="testDarkLight"></div>
+<div id="testLightDarkOnly"></div>
+<div id="testOnlyDark"></div>
+<div id="testLightOnlyDark"></div>
+<div id="testLightUnknown"></div>
+<div id="testUnknownDarkOnly"></div>
+
+<div id="testInvalidLightAuto"></div>
+<div id="testInvalidAutoDark"></div>
+<div id="testInvalidLightDarkLight"></div>
+<div id="testInvalidNumber"></div>
+<div id="testInvalidString"></div>
+<div id="testInvalidLightString"></div>
+
+<script>
+function test_prop(id, property, expected) {
+    assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(property), expected);
+}
+
+test(function() {
+    test_prop("testAuto", "color-scheme", "auto");
+    test_prop("testOnly", "color-scheme", "light only");
+    test_prop("testLight", "color-scheme", "light");
+    test_prop("testDark", "color-scheme", "dark");
+    test_prop("testLightDark", "color-scheme", "light dark");
+    test_prop("testDarkLight", "color-scheme", "light dark");
+    test_prop("testLightDarkOnly", "color-scheme", "light dark only");
+    test_prop("testOnlyDark", "color-scheme", "dark only");
+    test_prop("testLightOnlyDark", "color-scheme", "light dark only");
+    test_prop("testLightUnknown", "color-scheme", "light");
+    test_prop("testUnknownDarkOnly", "color-scheme", "dark only");
+}, "Test valid values");
+
+test(function() {
+    test_prop("testInvalidLightAuto", "color-scheme", "auto");
+    test_prop("testInvalidAutoDark", "color-scheme", "auto");
+    test_prop("testInvalidLightDarkLight", "color-scheme", "auto");
+    test_prop("testInvalidNumber", "color-scheme", "auto");
+    test_prop("testInvalidString", "color-scheme", "auto");
+    test_prop("testInvalidLightString", "color-scheme", "auto");
+}, "Test invalid values");
+</script>
diff --git a/LayoutTests/css-dark-mode/color-scheme-css.html b/LayoutTests/css-dark-mode/color-scheme-css.html
new file mode 100644 (file)
index 0000000..ba56f66
--- /dev/null
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+
+<style>
+#test1 {
+    color: text;
+}
+</style>
+
+<div id="test1"></div>
+
+<script>
+function test_prop(element, prop, expected) {
+    assert_equals(window.getComputedStyle(element).getPropertyValue(prop), expected);
+}
+
+function test_color_is_white(id) {
+    test_prop(document.getElementById("test1"), "color", "rgb(255, 255, 255)");
+}
+
+function test_color_is_black(id) {
+    test_prop(document.getElementById("test1"), "color", "rgb(0, 0, 0)");
+}
+
+test(function() {
+    // The semantic text color should be black.
+    test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light supported color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be black, and not change.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with only light supported color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(false);
+}, "Light color scheme enabled");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "light dark");
+    test_prop(document.body, "color-scheme", "light dark");
+}, "Color schemes changed to light and dark");
+
+test(function() {
+    // The semantic text color should be black.
+    test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be white.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with light and dark supported color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(false);
+}, "Light color scheme enabled");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "dark");
+    test_prop(document.body, "color-scheme", "dark");
+}, "Color schemes changed to dark");
+
+test(function() {
+    // The semantic text color should be white.
+    test_color_is_white("test1");
+}, "Element colors are correct in light color scheme with only dark supported color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be white still.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with only dark supported color scheme");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "light foo");
+    test_prop(document.body, "color-scheme", "light");
+}, "Color schemes changed to light and a bogus value");
+
+test(function() {
+    // The semantic text color should be black again.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with only light supported color scheme");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "auto");
+    test_prop(document.body, "color-scheme", "auto");
+}, "Color schemes changed to auto value");
+
+test(function() {
+    // The semantic text color should be black still.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with implicit light supported color scheme");
+
+test(function() {
+    let meta = document.createElement("meta");
+    meta.id = "test-meta";
+    meta.name = "color-scheme";
+    meta.content = "light dark";
+    document.head.appendChild(meta);
+}, "Color schemes changed to light and dark via <meta> element");
+
+test(function() {
+    // The semantic text color should be white now.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with light and dark supported color scheme via <meta> element");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "light");
+    test_prop(document.body, "color-scheme", "light");
+}, "Color schemes changed to light value");
+
+test(function() {
+    // The semantic text color should be black again.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with explicit light, overriding <meta> element");
+
+test(function() {
+    document.getElementById("test-meta").remove();
+}, "Remove test meta element");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "light dark");
+    test_prop(document.body, "color-scheme", "light dark");
+}, "Color schemes changed to light and dark");
+
+test(function() {
+    // The semantic text color should be white now.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with light and dark supported color scheme");
+
+test(function() {
+    document.body.style.setProperty("color-scheme", "foo dark");
+    test_prop(document.body, "color-scheme", "dark");
+}, "Color schemes changed to a bogus value and dark");
+
+test(function() {
+    // The semantic text color should be white still.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with dark supported color scheme");
+</script>
diff --git a/LayoutTests/css-dark-mode/color-scheme-meta-expected.txt b/LayoutTests/css-dark-mode/color-scheme-meta-expected.txt
new file mode 100644 (file)
index 0000000..afc914d
--- /dev/null
@@ -0,0 +1,23 @@
+
+PASS Element colors are correct in light color scheme with only light color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with only light color scheme 
+PASS Light color scheme enabled 
+PASS Color schemes changed to light and dark 
+PASS Element colors are correct in light color scheme with light and dark color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with light and dark color scheme 
+PASS Light color scheme enabled 
+PASS Color schemes changed to dark 
+PASS Element colors are correct in light color scheme with only dark color scheme 
+PASS Dark color scheme enabled 
+PASS Element colors are correct in dark color scheme with only dark color scheme 
+PASS Color schemes changed to light and a bogus value 
+PASS Element colors are correct in dark color scheme with only light color scheme 
+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 and dark 
+PASS Element colors are correct in dark color scheme with light and dark color scheme 
+PASS Color schemes changed to a bogus value and dark 
+PASS Element colors are correct in dark color scheme with dark color scheme 
+
diff --git a/LayoutTests/css-dark-mode/color-scheme-meta.html b/LayoutTests/css-dark-mode/color-scheme-meta.html
new file mode 100644 (file)
index 0000000..f52b75e
--- /dev/null
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+
+<style>
+#test1 {
+    color: text;
+}
+</style>
+
+<meta id="meta" name="color-scheme" content="light">
+
+<div id="test1"></div>
+
+<script>
+function test_prop(id, prop, expected) {
+    assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop).trim(), expected);
+}
+
+function test_color_is_white(id) {
+    test_prop("test1", "color", "rgb(255, 255, 255)");
+}
+
+function test_color_is_black(id) {
+    test_prop("test1", "color", "rgb(0, 0, 0)");
+}
+
+test(function() {
+    // The semantic text color should be black.
+    test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be black, and not change.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with only light color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(false);
+}, "Light color scheme enabled");
+
+test(function() {
+    document.getElementById("meta").content = "light dark";
+}, "Color schemes changed to light and dark");
+
+test(function() {
+    // The semantic text color should be black.
+    test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be white.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with light and dark color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(false);
+}, "Light color scheme enabled");
+
+test(function() {
+    document.getElementById("meta").content = "dark";
+}, "Color schemes changed to dark");
+
+test(function() {
+    // The semantic text color should be white.
+    test_color_is_white("test1");
+}, "Element colors are correct in light color scheme with only dark color scheme");
+
+test(function() {
+    if (window.internals)
+        internals.settings.setUseDarkAppearance(true);
+}, "Dark color scheme enabled");
+
+test(function() {
+    // The semantic text color should be white still.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with only dark color scheme");
+
+test(function() {
+    document.getElementById("meta").content = "light ,foo ";
+}, "Color schemes changed to light and a bogus value");
+
+test(function() {
+    // The semantic text color should be black again.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with only light color scheme");
+
+test(function() {
+    document.getElementById("meta").content = "";
+}, "Color schemes changed to empty value");
+
+test(function() {
+    // The semantic text color should be black still.
+    test_color_is_black("test1");
+}, "Element colors are correct in dark color scheme with implicit light color scheme");
+
+test(function() {
+    document.getElementById("meta").content = "   light, dark ";
+}, "Color schemes changed to light and dark");
+
+test(function() {
+    // The semantic text color should be white now.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with light and dark color scheme");
+
+test(function() {
+    document.getElementById("meta").content = ", foo dark";
+}, "Color schemes changed to a bogus value and dark");
+
+test(function() {
+    // The semantic text color should be white still.
+    test_color_is_white("test1");
+}, "Element colors are correct in dark color scheme with dark color scheme");
+</script>
@@ -1,5 +1,5 @@
 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
+PASS Element colors are correct in light color scheme with light and dark color scheme 
 PASS Dark color scheme enabled 
-PASS Element colors are correct in dark color scheme with light and dark supported color scheme 
+PASS Element colors are correct in dark color scheme with light and dark color scheme 
 
@@ -7,7 +7,7 @@
 
 <style>
 #test1 {
-    supported-color-schemes: light dark;
+    color-scheme: light dark;
     color: text;
 }
 </style>
@@ -30,7 +30,7 @@ function test_color_is_black(id) {
 test(function() {
     // The semantic text color should be black.
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+}, "Element colors are correct in light color scheme with light and dark color scheme");
 
 test(function() {
     if (window.internals)
@@ -40,5 +40,5 @@ test(function() {
 test(function() {
     // The semantic text color should be white.
     test_color_is_white("test1");
-}, "Element colors are correct in dark color scheme with light and dark supported color scheme");
+}, "Element colors are correct in dark color scheme with light and dark color scheme");
 </script>
@@ -1,15 +1,15 @@
 
 PASS Set dark appearance 
 PASS Set view to transparent 
-PASS Body Element supported color scheme is light and dark 
-PASS Document Element supported color scheme is auto 
+PASS Body Element color scheme is light and dark 
+PASS Document Element color scheme is auto 
 PASS Document scrollbar overlay style is light 
 PASS Document scrollbar is using dark appearance 
 PASS Element scrollbar overlay style is default 
 PASS Element scrollbar is using dark appearance 
-PASS Set prefers-color-schemes: light on the document element 
-PASS Body Element supported color scheme is light and dark 
-PASS Document Element supported color scheme is light 
+PASS Set color scheme to light on the document element 
+PASS Body Element color scheme is light and dark 
+PASS Document Element color scheme is light 
 PASS Document scrollbar overlay style is default 
 PASS Document scrollbar is using light appearance 
 PASS Element scrollbar overlay style is default 
@@ -7,7 +7,7 @@
 
 <style>
 body {
-    supported-color-schemes: light dark;
+    color-scheme: light dark;
 }
 
 #test {
@@ -43,12 +43,12 @@ test(function() {
 }, "Set view to transparent");
 
 test(function() {
-    test_prop(document.body, "supported-color-schemes", "light dark");
-}, "Body Element supported color scheme is light and dark");
+    test_prop(document.body, "color-scheme", "light dark");
+}, "Body Element color scheme is light and dark");
 
 test(function() {
-    test_prop(document.documentElement, "supported-color-schemes", "auto");
-}, "Document Element supported color scheme is auto");
+    test_prop(document.documentElement, "color-scheme", "auto");
+}, "Document Element color scheme is auto");
 
 test(function() {
     if (!window.internals)
@@ -76,17 +76,17 @@ test(function() {
 
 test(function() {
     let styleElement = document.createElement("style");
-    styleElement.textContent = ":root { supported-color-schemes: light }";
+    styleElement.textContent = ":root { color-scheme: light }";
     document.head.appendChild(styleElement);
-}, "Set prefers-color-schemes: light on the document element");
+}, "Set color scheme to light on the document element");
 
 test(function() {
-    test_prop(document.body, "supported-color-schemes", "light dark");
-}, "Body Element supported color scheme is light and dark");
+    test_prop(document.body, "color-scheme", "light dark");
+}, "Body Element color scheme is light and dark");
 
 test(function() {
-    test_prop(document.documentElement, "supported-color-schemes", "light");
-}, "Document Element supported color scheme is light");
+    test_prop(document.documentElement, "color-scheme", "light");
+}, "Document Element color scheme is light");
 
 test(function() {
     if (!window.internals)
index b40d921..9a95772 100644 (file)
@@ -36,7 +36,7 @@ test(function() {
 
 test(function() {
     let styleElement = document.createElement("style");
-    styleElement.textContent = ":root { supported-color-schemes: light dark; }";
+    styleElement.textContent = ":root { color-scheme: light dark; }";
     document.head.appendChild(styleElement);
 }, "Set prefers-color-schemes: light dark on the body");
 
@@ -2,8 +2,8 @@
 
 <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
 
-<script src="../resources/testharness.js"></script>
-<script src="../resources/testharnessreport.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
 
 <style>
 #test1 {
 <div id="test1"></div>
 
 <script>
-function test_prop(id, prop, expected) {
-    assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop), expected);
+function test_prop(element, prop, expected) {
+    assert_equals(window.getComputedStyle(element).getPropertyValue(prop), expected);
 }
 
 function test_color_is_white(id) {
-    test_prop("test1", "color", "rgb(255, 255, 255)");
+    test_prop(document.getElementById("test1"), "color", "rgb(255, 255, 255)");
 }
 
 function test_color_is_black(id) {
-    test_prop("test1", "color", "rgb(0, 0, 0)");
+    test_prop(document.getElementById("test1"), "color", "rgb(0, 0, 0)");
 }
 
 test(function() {
@@ -48,6 +48,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "light dark");
+    test_prop(document.body, "supported-color-schemes", "light dark");
+    test_prop(document.body, "color-scheme", "light dark");
 }, "Supported color schemes changed to light and dark");
 
 test(function() {
@@ -72,6 +74,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "dark");
+    test_prop(document.body, "supported-color-schemes", "dark");
+    test_prop(document.body, "color-scheme", "dark");
 }, "Supported color schemes changed to dark");
 
 test(function() {
@@ -91,6 +95,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "light foo");
+    test_prop(document.body, "supported-color-schemes", "light");
+    test_prop(document.body, "color-scheme", "light");
 }, "Supported color schemes changed to light and a bogus value");
 
 test(function() {
@@ -100,6 +106,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "auto");
+    test_prop(document.body, "supported-color-schemes", "auto");
+    test_prop(document.body, "color-scheme", "auto");
 }, "Supported color schemes changed to auto value");
 
 test(function() {
@@ -122,6 +130,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "light");
+    test_prop(document.body, "supported-color-schemes", "light");
+    test_prop(document.body, "color-scheme", "light");
 }, "Supported color schemes changed to light value");
 
 test(function() {
@@ -135,6 +145,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "light dark");
+    test_prop(document.body, "supported-color-schemes", "light dark");
+    test_prop(document.body, "color-scheme", "light dark");
 }, "Supported color schemes changed to light and dark");
 
 test(function() {
@@ -144,6 +156,8 @@ test(function() {
 
 test(function() {
     document.body.style.setProperty("supported-color-schemes", "foo dark");
+    test_prop(document.body, "supported-color-schemes", "dark");
+    test_prop(document.body, "color-scheme", "dark");
 }, "Supported color schemes changed to a bogus value and dark");
 
 test(function() {
@@ -1,23 +1,23 @@
 
-PASS Element colors are correct in light color scheme with only light supported color scheme 
+PASS Element colors are correct in light color scheme with only light color scheme 
 PASS Dark color scheme enabled 
-PASS Element colors are correct in dark color scheme with only light supported color scheme 
+PASS Element colors are correct in dark color scheme with only light color scheme 
 PASS Light color scheme enabled 
 PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
+PASS Element colors are correct in light color scheme with light and dark color scheme 
 PASS Dark color scheme enabled 
-PASS Element colors are correct in dark color scheme with light and dark supported color scheme 
+PASS Element colors are correct in dark color scheme with light and dark color scheme 
 PASS Light color scheme enabled 
 PASS Supported color schemes changed to dark 
-PASS Element colors are correct in light color scheme with only dark supported color scheme 
+PASS Element colors are correct in light color scheme with only dark color scheme 
 PASS Dark color scheme enabled 
-PASS Element colors are correct in dark color scheme with only dark supported color scheme 
+PASS Element colors are correct in dark color scheme with only dark color scheme 
 PASS Supported color schemes changed to light and a bogus value 
-PASS Element colors are correct in dark color scheme with only light supported color scheme 
+PASS Element colors are correct in dark color scheme with only light color scheme 
 PASS Supported color schemes changed to empty value 
-PASS Element colors are correct in dark color scheme with implicit light supported color scheme 
+PASS Element colors are correct in dark color scheme with implicit light color scheme 
 PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in dark color scheme with light and dark supported color scheme 
+PASS Element colors are correct in dark color scheme with light and dark color scheme 
 PASS Supported color schemes changed to a bogus value and dark 
-PASS Element colors are correct in dark color scheme with dark supported color scheme 
+PASS Element colors are correct in dark color scheme with dark color scheme 
 
@@ -2,8 +2,8 @@
 
 <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
 
-<script src="../resources/testharness.js"></script>
-<script src="../resources/testharnessreport.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
 
 <style>
 #test1 {
@@ -31,7 +31,7 @@ function test_color_is_black(id) {
 test(function() {
     // The semantic text color should be black.
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with only light supported color scheme");
+}, "Element colors are correct in light color scheme with only light color scheme");
 
 test(function() {
     if (window.internals)
@@ -41,7 +41,7 @@ test(function() {
 test(function() {
     // The semantic text color should be black, and not change.
     test_color_is_black("test1");
-}, "Element colors are correct in dark color scheme with only light supported color scheme");
+}, "Element colors are correct in dark color scheme with only light color scheme");
 
 test(function() {
     if (window.internals)
@@ -55,7 +55,7 @@ test(function() {
 test(function() {
     // The semantic text color should be black.
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+}, "Element colors are correct in light color scheme with light and dark color scheme");
 
 test(function() {
     if (window.internals)
@@ -65,7 +65,7 @@ test(function() {
 test(function() {
     // The semantic text color should be white.
     test_color_is_white("test1");
-}, "Element colors are correct in dark color scheme with light and dark supported color scheme");
+}, "Element colors are correct in dark color scheme with light and dark color scheme");
 
 test(function() {
     if (window.internals)
@@ -79,7 +79,7 @@ test(function() {
 test(function() {
     // The semantic text color should be white.
     test_color_is_white("test1");
-}, "Element colors are correct in light color scheme with only dark supported color scheme");
+}, "Element colors are correct in light color scheme with only dark color scheme");
 
 test(function() {
     if (window.internals)
@@ -89,7 +89,7 @@ test(function() {
 test(function() {
     // The semantic text color should be white still.
     test_color_is_white("test1");
-}, "Element colors are correct in dark color scheme with only dark supported color scheme");
+}, "Element colors are correct in dark color scheme with only dark color scheme");
 
 test(function() {
     document.getElementById("meta").content = "light ,foo ";
@@ -98,7 +98,7 @@ test(function() {
 test(function() {
     // The semantic text color should be black again.
     test_color_is_black("test1");
-}, "Element colors are correct in dark color scheme with only light supported color scheme");
+}, "Element colors are correct in dark color scheme with only light color scheme");
 
 test(function() {
     document.getElementById("meta").content = "";
@@ -107,7 +107,7 @@ test(function() {
 test(function() {
     // The semantic text color should be black still.
     test_color_is_black("test1");
-}, "Element colors are correct in dark color scheme with implicit light supported color scheme");
+}, "Element colors are correct in dark color scheme with implicit light color scheme");
 
 test(function() {
     document.getElementById("meta").content = "   light, dark ";
@@ -116,7 +116,7 @@ test(function() {
 test(function() {
     // The semantic text color should be white now.
     test_color_is_white("test1");
-}, "Element colors are correct in dark color scheme with light and dark supported color scheme");
+}, "Element colors are correct in dark color scheme with light and dark color scheme");
 
 test(function() {
     document.getElementById("meta").content = ", foo dark";
@@ -125,5 +125,5 @@ test(function() {
 test(function() {
     // The semantic text color should be white still.
     test_color_is_white("test1");
-}, "Element colors are correct in dark color scheme with dark supported color scheme");
+}, "Element colors are correct in dark color scheme with dark color scheme");
 </script>
diff --git a/LayoutTests/css-dark-mode/older-systems/color-scheme-css-expected.txt b/LayoutTests/css-dark-mode/older-systems/color-scheme-css-expected.txt
new file mode 100644 (file)
index 0000000..bd4cd24
--- /dev/null
@@ -0,0 +1,20 @@
+
+PASS Element colors are correct in light color scheme with only light color scheme
+PASS Color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark color scheme
+PASS Color schemes changed to dark
+PASS Element colors are correct in light color scheme with only dark color scheme
+PASS Color schemes changed to light and a bogus value
+PASS Element colors are correct in light color scheme with only light color scheme
+PASS Color schemes changed to auto value
+PASS Element colors are correct in light color scheme with implicit light color scheme
+PASS Color schemes changed to light and dark via <meta> element
+PASS Element colors are correct in light color scheme with light and dark color scheme via <meta> element
+PASS Color schemes changed to light value
+PASS Element colors are correct in light color scheme with explicit light, overriding <meta> element 
+PASS Remove test meta element 
+PASS Color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark color scheme
+PASS Color schemes changed to a bogus value and dark
+PASS Element colors are correct in light color scheme with dark color scheme
+
@@ -28,8 +28,8 @@ test(function() {
 }, "Element colors are correct in light color scheme with only light supported color scheme");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "light dark");
-}, "Supported color schemes changed to light and dark");
+    document.body.style.setProperty("color-scheme", "light dark");
+}, "Color schemes changed to light and dark");
 
 test(function() {
     // The semantic text color should be black.
@@ -37,16 +37,16 @@ test(function() {
 }, "Element colors are correct in light color scheme with light and dark supported color scheme");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "dark");
-}, "Supported color schemes changed to dark");
+    document.body.style.setProperty("color-scheme", "dark");
+}, "Color schemes changed to dark");
 
 test(function() {
     test_color_is_black("test1");
 }, "Element colors are correct in light color scheme with only dark supported color scheme");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "light foo");
-}, "Supported color schemes changed to light and a bogus value");
+    document.body.style.setProperty("color-scheme", "light foo");
+}, "Color schemes changed to light and a bogus value");
 
 test(function() {
     // The semantic text color should be black again.
@@ -54,8 +54,8 @@ test(function() {
 }, "Element colors are correct in light color scheme with only light supported color scheme");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "auto");
-}, "Supported color schemes changed to auto value");
+    document.body.style.setProperty("color-scheme", "auto");
+}, "Color schemes changed to auto value");
 
 test(function() {
     // The semantic text color should be black still.
@@ -65,18 +65,18 @@ test(function() {
 test(function() {
     let meta = document.createElement("meta");
     meta.id = "test-meta";
-    meta.name = "supported-color-schemes";
+    meta.name = "color-scheme";
     meta.content = "light dark";
     document.head.appendChild(meta);
-}, "Supported color schemes changed to light and dark via <meta> element");
+}, "Color schemes changed to light and dark via <meta> element");
 
 test(function() {
     test_color_is_black("test1");
 }, "Element colors are correct in light color scheme with light and dark supported color scheme via <meta> element");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "light");
-}, "Supported color schemes changed to light value");
+    document.body.style.setProperty("color-scheme", "light");
+}, "Color schemes changed to light value");
 
 test(function() {
     // The semantic text color should be black again.
@@ -88,16 +88,16 @@ test(function() {
 }, "Remove test meta element");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "light dark");
-}, "Supported color schemes changed to light and dark");
+    document.body.style.setProperty("color-scheme", "light dark");
+}, "Color schemes changed to light and dark");
 
 test(function() {
     test_color_is_black("test1");
 }, "Element colors are correct in light color scheme with light and dark supported color scheme");
 
 test(function() {
-    document.body.style.setProperty("supported-color-schemes", "foo dark");
-}, "Supported color schemes changed to a bogus value and dark");
+    document.body.style.setProperty("color-scheme", "foo dark");
+}, "Color schemes changed to a bogus value and dark");
 
 test(function() {
     test_color_is_black("test1");
diff --git a/LayoutTests/css-dark-mode/older-systems/color-scheme-meta-expected.txt b/LayoutTests/css-dark-mode/older-systems/color-scheme-meta-expected.txt
new file mode 100644 (file)
index 0000000..0133d1b
--- /dev/null
@@ -0,0 +1,15 @@
+
+PASS Element colors are correct in light color scheme with only light color scheme
+PASS Color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark color scheme
+PASS Color schemes changed to dark
+PASS Element colors are correct in light color scheme with only dark color scheme
+PASS Color schemes changed to light and a bogus value
+PASS Element colors are correct in light color scheme with only light color scheme
+PASS Color schemes changed to empty value
+PASS Element colors are correct in light color scheme with implicit light color scheme
+PASS Color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark color scheme
+PASS Color schemes changed to a bogus value and dark
+PASS Element colors are correct in light color scheme with dark color scheme
+
@@ -11,7 +11,7 @@
 }
 </style>
 
-<meta id="meta" name="supported-color-schemes" content="light">
+<meta id="meta" name="color-scheme" content="light">
 
 <div id="test1"></div>
 
@@ -26,53 +26,53 @@ function test_color_is_black(id) {
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with only light supported color scheme");
+}, "Element colors are correct in light color scheme with only light color scheme");
 
 test(function() {
     document.getElementById("meta").content = "light dark";
-}, "Supported color schemes changed to light and dark");
+}, "Color schemes changed to light and dark");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+}, "Element colors are correct in light color scheme with light and dark color scheme");
 
 test(function() {
     document.getElementById("meta").content = "dark";
-}, "Supported color schemes changed to dark");
+}, "Color schemes changed to dark");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with only dark supported color scheme");
+}, "Element colors are correct in light color scheme with only dark color scheme");
 
 test(function() {
     document.getElementById("meta").content = "light ,foo ";
-}, "Supported color schemes changed to light and a bogus value");
+}, "Color schemes changed to light and a bogus value");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with only light supported color scheme");
+}, "Element colors are correct in light color scheme with only light color scheme");
 
 test(function() {
     document.getElementById("meta").content = "";
-}, "Supported color schemes changed to empty value");
+}, "Color schemes changed to empty value");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with implicit light supported color scheme");
+}, "Element colors are correct in light color scheme with implicit light color scheme");
 
 test(function() {
     document.getElementById("meta").content = "   light, dark ";
-}, "Supported color schemes changed to light and dark");
+}, "Color schemes changed to light and dark");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+}, "Element colors are correct in light color scheme with light and dark color scheme");
 
 test(function() {
     document.getElementById("meta").content = ", foo dark";
-}, "Supported color schemes changed to a bogus value and dark");
+}, "Color schemes changed to a bogus value and dark");
 
 test(function() {
     test_color_is_black("test1");
-}, "Element colors are correct in light color scheme with dark supported color scheme");
+}, "Element colors are correct in light color scheme with dark color scheme");
 </script>
diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt
deleted file mode 100644 (file)
index a66c52d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-
-PASS Element colors are correct in light color scheme with only light supported color scheme 
-PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
-PASS Supported color schemes changed to dark 
-PASS Element colors are correct in light color scheme with only dark supported color scheme 
-PASS Supported color schemes changed to light and a bogus value 
-PASS Element colors are correct in light color scheme with only light supported color scheme 
-PASS Supported color schemes changed to auto value 
-PASS Element colors are correct in light color scheme with implicit light supported color scheme 
-PASS Supported color schemes changed to light and dark via <meta> element 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme via <meta> element 
-PASS Supported color schemes changed to light value 
-PASS Element colors are correct in light color scheme with explicit light, overriding <meta> element 
-PASS Remove test meta element 
-PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
-PASS Supported color schemes changed to a bogus value and dark 
-PASS Element colors are correct in light color scheme with dark supported color scheme 
-
diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt
deleted file mode 100644 (file)
index 274122b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-
-PASS Element colors are correct in light color scheme with only light supported color scheme 
-PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
-PASS Supported color schemes changed to dark 
-PASS Element colors are correct in light color scheme with only dark supported color scheme 
-PASS Supported color schemes changed to light and a bogus value 
-PASS Element colors are correct in light color scheme with only light supported color scheme 
-PASS Supported color schemes changed to empty value 
-PASS Element colors are correct in light color scheme with implicit light supported color scheme 
-PASS Supported color schemes changed to light and dark 
-PASS Element colors are correct in light color scheme with light and dark supported color scheme 
-PASS Supported color schemes changed to a bogus value and dark 
-PASS Element colors are correct in light color scheme with dark supported color scheme 
-
diff --git a/LayoutTests/css-dark-mode/parse-supported-color-schemes.html b/LayoutTests/css-dark-mode/parse-supported-color-schemes.html
deleted file mode 100644 (file)
index 1bc10a8..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE html>
-
-<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
-
-<script src="../resources/testharness.js"></script>
-<script src="../resources/testharnessreport.js"></script>
-
-<style>
-#testAuto {
-    supported-color-schemes: auto;
-}
-
-#testOnly {
-    supported-color-schemes: only;
-}
-
-#testLight {
-    supported-color-schemes: light;
-}
-
-#testDark {
-    supported-color-schemes: dark;
-}
-
-#testLightDark {
-    supported-color-schemes: light dark;
-}
-
-#testDarkLight {
-    supported-color-schemes: dark light;
-}
-
-#testLightDarkOnly {
-    supported-color-schemes: light dark only;
-}
-
-#testOnlyDark {
-    supported-color-schemes: only dark;
-}
-
-#testLightOnlyDark {
-    supported-color-schemes: light only dark;
-}
-
-#testLightUnknown {
-    supported-color-schemes: light foo;
-}
-
-#testUnknownDarkOnly {
-    supported-color-schemes: bar dark only;
-}
-
-#testLightUnknownOnly {
-    supported-color-schemes: light baz only;
-}
-
-#testInvalidLightAuto {
-    supported-color-schemes: light auto;
-}
-
-#testInvalidAutoDark {
-    supported-color-schemes: auto dark;
-}
-
-#testInvalidLightDarkLight {
-    supported-color-schemes: light dark light;
-}
-
-#testInvalidNumber {
-    supported-color-schemes: 42;
-}
-
-#testInvalidString {
-    supported-color-schemes: "foo";
-}
-
-#testInvalidLightString {
-    supported-color-schemes: light "foo";
-}
-</style>
-
-<div id="testAuto"></div>
-<div id="testOnly"></div>
-<div id="testLight"></div>
-<div id="testDark"></div>
-<div id="testLightDark"></div>
-<div id="testDarkLight"></div>
-<div id="testLightDarkOnly"></div>
-<div id="testOnlyDark"></div>
-<div id="testLightOnlyDark"></div>
-<div id="testLightUnknown"></div>
-<div id="testUnknownDarkOnly"></div>
-
-<div id="testInvalidLightAuto"></div>
-<div id="testInvalidAutoDark"></div>
-<div id="testInvalidLightDarkLight"></div>
-<div id="testInvalidNumber"></div>
-<div id="testInvalidString"></div>
-<div id="testInvalidLightString"></div>
-
-<script>
-function test_prop(id, property, expected) {
-    assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(property), expected);
-}
-
-test(function() {
-    test_prop("testAuto", "supported-color-schemes", "auto");
-    test_prop("testOnly", "supported-color-schemes", "light only");
-    test_prop("testLight", "supported-color-schemes", "light");
-    test_prop("testDark", "supported-color-schemes", "dark");
-    test_prop("testLightDark", "supported-color-schemes", "light dark");
-    test_prop("testDarkLight", "supported-color-schemes", "light dark");
-    test_prop("testLightDarkOnly", "supported-color-schemes", "light dark only");
-    test_prop("testOnlyDark", "supported-color-schemes", "dark only");
-    test_prop("testLightOnlyDark", "supported-color-schemes", "light dark only");
-    test_prop("testLightUnknown", "supported-color-schemes", "light");
-    test_prop("testUnknownDarkOnly", "supported-color-schemes", "dark only");
-}, "Test valid values");
-
-test(function() {
-    test_prop("testInvalidLightAuto", "supported-color-schemes", "auto");
-    test_prop("testInvalidAutoDark", "supported-color-schemes", "auto");
-    test_prop("testInvalidLightDarkLight", "supported-color-schemes", "auto");
-    test_prop("testInvalidNumber", "supported-color-schemes", "auto");
-    test_prop("testInvalidString", "supported-color-schemes", "auto");
-    test_prop("testInvalidLightString", "supported-color-schemes", "auto");
-}, "Test invalid values");
-</script>
index 703d81e..877fa61 100644 (file)
@@ -40,7 +40,7 @@
                 testFailed("Invalid CSS-mapped property order: '" + p + "' after '" + previous + "'");
                 break;
             }
-            if (++cssPropertyCount <= 119)
+            if (++cssPropertyCount <= 430)
                 previous = p;
             else {
                 if (seenFilter)
index 5e3c140..2f14878 100644 (file)
@@ -1,3 +1,91 @@
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Rename `supported-color-schemes` to `color-scheme`.
+        https://bugs.webkit.org/show_bug.cgi?id=197016
+        rdar://problem/49980259
+
+        Reviewed by Simon Fraser.
+
+        Changed `supported-color-schemes` to `color-scheme` to follow the spec changes
+        being tracked by: https://github.com/w3c/csswg-drafts/issues/3807
+
+        The old `supported-color-schemes` is now an alias of `color-scheme` for compatibility.
+
+        Tests: css-dark-mode/color-scheme-css-parse.html
+               css-dark-mode/color-scheme-css.html
+               css-dark-mode/color-scheme-meta.html
+               css-dark-mode/color-scheme-priority.html
+               css-dark-mode/color-scheme-scrollbar.html
+               css-dark-mode/older-syntax/supported-color-schemes-css.html
+               css-dark-mode/older-syntax/supported-color-schemes-meta.html
+               css-dark-mode/older-systems/color-scheme-css.html
+               css-dark-mode/older-systems/color-scheme-meta.html
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::updateColorScheme):
+        (WebCore::StyleBuilderConverter::convertColorScheme):
+        (WebCore::StyleBuilderConverter::updateSupportedColorSchemes): Deleted.
+        (WebCore::StyleBuilderConverter::convertSupportedColorSchemes): Deleted.
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueColorScheme):
+        (WebCore::StyleBuilderCustom::applyValueSupportedColorSchemes): Deleted.
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::applyMatchedProperties):
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeColorScheme):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+        (WebCore::consumeSupportedColorSchemes): Deleted.
+        * dom/Document.cpp:
+        (WebCore::processColorSchemeString):
+        (WebCore::Document::processColorScheme):
+        (WebCore::Document::useDarkAppearance const):
+        (WebCore::processColorSchemes): Deleted.
+        (WebCore::Document::processSupportedColorSchemes): Deleted.
+        * dom/Document.h:
+        * html/HTMLMetaElement.cpp:
+        (WebCore::HTMLMetaElement::process):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::rendererForColorScheme const):
+        (WebCore::FrameView::useDarkAppearance const):
+        (WebCore::FrameView::styleColorOptions const):
+        (WebCore::FrameView::rendererForSupportedColorSchemes const): Deleted.
+        * page/FrameView.h:
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::rareInheritedDataChangeRequiresRepaint):
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::colorScheme const):
+        (WebCore::RenderStyle::setHasExplicitlySetColorScheme):
+        (WebCore::RenderStyle::hasExplicitlySetColorScheme const):
+        (WebCore::RenderStyle::setColorScheme):
+        (WebCore::RenderStyle::initialColorScheme):
+        (WebCore::RenderStyle::NonInheritedFlags::operator== const):
+        (WebCore::RenderStyle::supportedColorSchemes const): Deleted.
+        (WebCore::RenderStyle::setHasExplicitlySetSupportedColorSchemes): Deleted.
+        (WebCore::RenderStyle::hasExplicitlySetSupportedColorSchemes const): Deleted.
+        (WebCore::RenderStyle::setSupportedColorSchemes): Deleted.
+        (WebCore::RenderStyle::initialSupportedColorSchemes): Deleted.
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/style/StyleColorScheme.h: Renamed from Source/WebCore/rendering/style/StyleSupportedColorSchemes.h.
+        (WebCore::StyleColorScheme::StyleColorScheme):
+        (WebCore::StyleColorScheme::operator== const):
+        (WebCore::StyleColorScheme::operator!= const):
+        (WebCore::StyleColorScheme::isAuto const):
+        (WebCore::StyleColorScheme::isOnly const):
+        (WebCore::StyleColorScheme::colorScheme const):
+        (WebCore::StyleColorScheme::add):
+        (WebCore::StyleColorScheme::contains const):
+        (WebCore::StyleColorScheme::setAllowsTransformations):
+        (WebCore::StyleColorScheme::allowsTransformations const):
+        * rendering/style/StyleRareInheritedData.cpp:
+        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
+        (WebCore::StyleRareInheritedData::operator== const):
+        * rendering/style/StyleRareInheritedData.h:
+
 2019-04-17  Justin Fan  <justin_fan@apple.com>
 
         [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
index 85db74a..4d38dbb 100644 (file)
                1C010701192594DF008A4201 /* InlineTextBoxStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0106FF192594DF008A4201 /* InlineTextBoxStyle.h */; };
                1C0939EB1A13E12900B788E5 /* CachedSVGFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0939E91A13E12900B788E5 /* CachedSVGFont.h */; };
                1C09D0591E31C6A900725F18 /* libPAL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C09D0501E31C32900725F18 /* libPAL.a */; };
-               1C0AA16D21940DC800896829 /* StyleSupportedColorSchemes.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0AA16A21940DC700896829 /* StyleSupportedColorSchemes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               1C0AA16D21940DC800896829 /* StyleColorScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0AA16A21940DC700896829 /* StyleColorScheme.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C12AC2B1EE778AE0079E0A0 /* FontFamilySpecificationCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C12AC291EE778AE0079E0A0 /* FontFamilySpecificationCoreText.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C18DA59181AF6A500C4EF22 /* TextPainter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C18DA57181AF6A500C4EF22 /* TextPainter.h */; };
                1C21E57D183ED1FF001C289D /* IOSurfacePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C21E57B183ED1FF001C289D /* IOSurfacePool.h */; settings = {ATTRIBUTES = (Private, ); }; };
                1C0939E81A13E12900B788E5 /* CachedSVGFont.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedSVGFont.cpp; sourceTree = "<group>"; };
                1C0939E91A13E12900B788E5 /* CachedSVGFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedSVGFont.h; sourceTree = "<group>"; };
                1C09D04B1E31C32800725F18 /* PAL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = PAL.xcodeproj; path = PAL/PAL.xcodeproj; sourceTree = "<group>"; };
-               1C0AA16A21940DC700896829 /* StyleSupportedColorSchemes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSupportedColorSchemes.h; sourceTree = "<group>"; };
+               1C0AA16A21940DC700896829 /* StyleColorScheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleColorScheme.h; sourceTree = "<group>"; };
                1C12AC281EE778AE0079E0A0 /* FontFamilySpecificationCoreText.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FontFamilySpecificationCoreText.cpp; sourceTree = "<group>"; };
                1C12AC291EE778AE0079E0A0 /* FontFamilySpecificationCoreText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontFamilySpecificationCoreText.h; sourceTree = "<group>"; };
                1C12AC2C1EE779950079E0A0 /* FontDescriptionCocoa.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FontDescriptionCocoa.cpp; sourceTree = "<group>"; };
                                BC5EB67A0E81D3BE00B25965 /* StyleBoxData.h */,
                                BCEF44790E6747D0001C1287 /* StyleCachedImage.cpp */,
                                BCEF444C0E674628001C1287 /* StyleCachedImage.h */,
+                               1C0AA16A21940DC700896829 /* StyleColorScheme.h */,
                                9DAC7C561AF2CB6400437C44 /* StyleContentAlignmentData.h */,
                                BC779E151BB226A200CAA8BF /* StyleCustomPropertyData.h */,
                                BC5EB67E0E81D4A700B25965 /* StyleDashboardRegion.h */,
                                F47A5E3A195B8C8A00483100 /* StyleScrollSnapPoints.cpp */,
                                F47A5E3B195B8C8A00483100 /* StyleScrollSnapPoints.h */,
                                9D63800F1AF16E160031A15C /* StyleSelfAlignmentData.h */,
-                               1C0AA16A21940DC700896829 /* StyleSupportedColorSchemes.h */,
                                BC5EB5E60E81BFEF00B25965 /* StyleSurroundData.cpp */,
                                BC5EB5E40E81BF6D00B25965 /* StyleSurroundData.h */,
                                BC5EB80D0E81F2CE00B25965 /* StyleTransformData.cpp */,
                                BCEF444D0E674628001C1287 /* StyleCachedImage.h in Headers */,
                                E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */,
                                9418278B1D8B244000492764 /* StyleColor.h in Headers */,
+                               1C0AA16D21940DC800896829 /* StyleColorScheme.h in Headers */,
                                9DAC7C571AF2CB6400437C44 /* StyleContentAlignmentData.h in Headers */,
                                BC779E171BB227CA00CAA8BF /* StyleCustomPropertyData.h in Headers */,
                                BC5EB67F0E81D4A700B25965 /* StyleDashboardRegion.h in Headers */,
                                A8EA800C0A19516E00A8EF5F /* StyleSheet.h in Headers */,
                                E4F9EEF3156DA00700D23E7E /* StyleSheetContents.h in Headers */,
                                A8EA800A0A19516E00A8EF5F /* StyleSheetList.h in Headers */,
-                               1C0AA16D21940DC800896829 /* StyleSupportedColorSchemes.h in Headers */,
                                BC5EB5E50E81BF6D00B25965 /* StyleSurroundData.h in Headers */,
                                BC5EB8100E81F2CE00B25965 /* StyleTransformData.h in Headers */,
                                E4DEAA1817A93DC3000E0430 /* StyleTreeResolver.h in Headers */,
index 0f1224c..2932ba3 100644 (file)
@@ -453,7 +453,7 @@ static const CSSPropertyID computedProperties[] = {
     CSSPropertyStrokeOpacity,
     CSSPropertyStrokeWidth,
 #if ENABLE(DARK_MODE_CSS)
-    CSSPropertySupportedColorSchemes,
+    CSSPropertyColorScheme,
 #endif
     CSSPropertyAlignmentBaseline,
     CSSPropertyBaselineShift,
@@ -4045,20 +4045,20 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyinStyle(const RenderSty
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-        case CSSPropertySupportedColorSchemes: {
+        case CSSPropertyColorScheme: {
             if (!RuntimeEnabledFeatures::sharedFeatures().darkModeCSSEnabled())
                 return nullptr;
 
-            auto supportedColorSchemes = style.supportedColorSchemes();
-            if (supportedColorSchemes.isAuto())
+            auto colorScheme = style.colorScheme();
+            if (colorScheme.isAuto())
                 return cssValuePool.createIdentifierValue(CSSValueAuto);
 
             auto list = CSSValueList::createSpaceSeparated();
-            if (supportedColorSchemes.contains(ColorSchemes::Light))
+            if (colorScheme.contains(ColorScheme::Light))
                 list->append(cssValuePool.createIdentifierValue(CSSValueLight));
-            if (supportedColorSchemes.contains(ColorSchemes::Dark))
+            if (colorScheme.contains(ColorScheme::Dark))
                 list->append(cssValuePool.createIdentifierValue(CSSValueDark));
-            if (!supportedColorSchemes.allowsTransformations())
+            if (!colorScheme.allowsTransformations())
                 list->append(cssValuePool.createIdentifierValue(CSSValueOnly));
             ASSERT(list->length());
             return list;
index a45a3d5..d7c7656 100644 (file)
             },
             "status": "non-standard"
         },
-        "supported-color-schemes": {
+        "color-scheme": {
             "inherited": true,
             "values": [
                 "auto",
                 "only"
             ],
             "codegen-properties": {
-                "converter": "SupportedColorSchemes",
+                "aliases": [
+                    "supported-color-schemes"
+                ],
+                "converter": "ColorScheme",
                 "comment": "This is the second highest priority property, to ensure that its value can be checked when resolving colors.",
                 "custom": "Value",
                 "enable-if": "ENABLE_DARK_MODE_CSS",
                 "high-priority": true
             },
             "status": {
-                "status": "non-standard"
+                "status": "in development",
+                "enabled-by-default": true
             }
         },
         "order": {
index c0cfdac..e37931e 100644 (file)
@@ -1408,7 +1408,7 @@ light
 dark
 // no-preference
 
-// supported-color-schemes
+// color-scheme
 only
 // light
 // dark
index 3bcef12..abf5caa 100644 (file)
@@ -79,7 +79,7 @@ public:
     template<CSSPropertyID> static RefPtr<StyleImage> convertStyleImage(StyleResolver&, CSSValue&);
     static TransformOperations convertTransform(StyleResolver&, const CSSValue&);
 #if ENABLE(DARK_MODE_CSS)
-    static StyleSupportedColorSchemes convertSupportedColorSchemes(StyleResolver&, const CSSValue&);
+    static StyleColorScheme convertColorScheme(StyleResolver&, const CSSValue&);
 #endif
     static String convertString(StyleResolver&, const CSSValue&);
     static String convertStringOrAuto(StyleResolver&, const CSSValue&);
@@ -173,7 +173,7 @@ private:
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-    static void updateSupportedColorSchemes(const CSSPrimitiveValue&, StyleSupportedColorSchemes&);
+    static void updateColorScheme(const CSSPrimitiveValue&, StyleColorScheme&);
 #endif
 
     static Length convertTo100PercentMinusLength(const Length&);
@@ -465,22 +465,22 @@ inline TransformOperations StyleBuilderConverter::convertTransform(StyleResolver
 }
 
 #if ENABLE(DARK_MODE_CSS)
-inline void StyleBuilderConverter::updateSupportedColorSchemes(const CSSPrimitiveValue& primitiveValue, StyleSupportedColorSchemes& supportedColorSchemes)
+inline void StyleBuilderConverter::updateColorScheme(const CSSPrimitiveValue& primitiveValue, StyleColorScheme& colorScheme)
 {
     ASSERT(primitiveValue.isValueID());
 
     switch (primitiveValue.valueID()) {
     case CSSValueAuto:
-        supportedColorSchemes = StyleSupportedColorSchemes();
+        colorScheme = StyleColorScheme();
         break;
     case CSSValueOnly:
-        supportedColorSchemes.setAllowsTransformations(false);
+        colorScheme.setAllowsTransformations(false);
         break;
     case CSSValueLight:
-        supportedColorSchemes.add(ColorSchemes::Light);
+        colorScheme.add(ColorScheme::Light);
         break;
     case CSSValueDark:
-        supportedColorSchemes.add(ColorSchemes::Dark);
+        colorScheme.add(ColorScheme::Dark);
         break;
     default:
         // Unknown identifiers are allowed and ignored.
@@ -488,21 +488,21 @@ inline void StyleBuilderConverter::updateSupportedColorSchemes(const CSSPrimitiv
     }
 }
 
-inline StyleSupportedColorSchemes StyleBuilderConverter::convertSupportedColorSchemes(StyleResolver&, const CSSValue& value)
+inline StyleColorScheme StyleBuilderConverter::convertColorScheme(StyleResolver&, const CSSValue& value)
 {
-    StyleSupportedColorSchemes supportedColorSchemes;
+    StyleColorScheme colorScheme;
 
     if (is<CSSValueList>(value)) {
         for (auto& currentValue : downcast<CSSValueList>(value))
-            updateSupportedColorSchemes(downcast<CSSPrimitiveValue>(currentValue.get()), supportedColorSchemes);
+            updateColorScheme(downcast<CSSPrimitiveValue>(currentValue.get()), colorScheme);
     } else if (is<CSSPrimitiveValue>(value))
-        updateSupportedColorSchemes(downcast<CSSPrimitiveValue>(value), supportedColorSchemes);
+        updateColorScheme(downcast<CSSPrimitiveValue>(value), colorScheme);
 
     // If the value was just "only", that is synonymous for "only light".
-    if (supportedColorSchemes.isOnly())
-        supportedColorSchemes.add(ColorSchemes::Light);
+    if (colorScheme.isOnly())
+        colorScheme.add(ColorScheme::Light);
 
-    return supportedColorSchemes;
+    return colorScheme;
 }
 #endif
 
index 48e6cab..fbc9481 100644 (file)
@@ -143,7 +143,7 @@ public:
     static void applyValueWillChange(StyleResolver&, CSSValue&);
 
 #if ENABLE(DARK_MODE_CSS)
-    static void applyValueSupportedColorSchemes(StyleResolver&, CSSValue&);
+    static void applyValueColorScheme(StyleResolver&, CSSValue&);
 #endif
 
     static void applyValueStrokeWidth(StyleResolver&, CSSValue&);
@@ -832,10 +832,10 @@ inline void StyleBuilderCustom::applyValueWebkitTextZoom(StyleResolver& styleRes
 }
 
 #if ENABLE(DARK_MODE_CSS)
-inline void StyleBuilderCustom::applyValueSupportedColorSchemes(StyleResolver& styleResolver, CSSValue& value)
+inline void StyleBuilderCustom::applyValueColorScheme(StyleResolver& styleResolver, CSSValue& value)
 {
-    styleResolver.style()->setSupportedColorSchemes(StyleBuilderConverter::convertSupportedColorSchemes(styleResolver, value));
-    styleResolver.style()->setHasExplicitlySetSupportedColorSchemes(true);
+    styleResolver.style()->setColorScheme(StyleBuilderConverter::convertColorScheme(styleResolver, value));
+    styleResolver.style()->setHasExplicitlySetColorScheme(true);
 }
 #endif
 
index ae51e2c..d0e9ced 100644 (file)
@@ -1418,7 +1418,7 @@ void StyleResolver::applyMatchedProperties(const MatchResult& matchResult, const
 
 #if ENABLE(DARK_MODE_CSS)
         // Supported color schemes can affect resolved colors, so we need to apply that property before any color properties.
-        applyCascadedProperties(CSSPropertySupportedColorSchemes, CSSPropertySupportedColorSchemes, applyState);
+        applyCascadedProperties(CSSPropertyColorScheme, CSSPropertyColorScheme, applyState);
 #endif
 
         applyCascadedProperties(firstCSSProperty, lastHighPriorityProperty, applyState);
@@ -1447,7 +1447,7 @@ void StyleResolver::applyMatchedProperties(const MatchResult& matchResult, const
 
 #if ENABLE(DARK_MODE_CSS)
     // Supported color schemes can affect resolved colors, so we need to apply that property before any color properties.
-    applyCascadedProperties(CSSPropertySupportedColorSchemes, CSSPropertySupportedColorSchemes, applyState);
+    applyCascadedProperties(CSSPropertyColorScheme, CSSPropertyColorScheme, applyState);
 #endif
 
     applyCascadedProperties(firstCSSProperty, lastHighPriorityProperty, applyState);
index 54ca31d..3eeaa08 100644 (file)
@@ -3767,7 +3767,7 @@ static RefPtr<CSSValue> consumeTextEmphasisPosition(CSSParserTokenRange& range)
 
 #if ENABLE(DARK_MODE_CSS)
 
-static RefPtr<CSSValue> consumeSupportedColorSchemes(CSSParserTokenRange& range)
+static RefPtr<CSSValue> consumeColorScheme(CSSParserTokenRange& range)
 {
     if (isAuto(range.peek().id()))
         return consumeIdent(range);
@@ -4357,10 +4357,10 @@ RefPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSPropertyID property, CSS
     case CSSPropertyWebkitTextEmphasisPosition:
         return consumeTextEmphasisPosition(m_range);
 #if ENABLE(DARK_MODE_CSS)
-    case CSSPropertySupportedColorSchemes:
+    case CSSPropertyColorScheme:
         if (!RuntimeEnabledFeatures::sharedFeatures().darkModeCSSEnabled())
             return nullptr;
-        return consumeSupportedColorSchemes(m_range);
+        return consumeColorScheme(m_range);
 #endif
 #if ENABLE(DASHBOARD_SUPPORT)
     case CSSPropertyWebkitDashboardRegion:
index abee743..cdfdaa2 100644 (file)
@@ -3621,36 +3621,36 @@ static bool isColorSchemeSeparator(UChar character)
     return isASCIISpace(character) || character == ',';
 }
 
-static void processColorSchemes(StringView colorSchemes, const WTF::Function<void(StringView key)>& callback)
+static void processColorSchemeString(StringView colorScheme, const WTF::Function<void(StringView key)>& callback)
 {
-    unsigned length = colorSchemes.length();
+    unsigned length = colorScheme.length();
     for (unsigned i = 0; i < length; ) {
         // Skip to first non-separator.
-        while (i < length && isColorSchemeSeparator(colorSchemes[i]))
+        while (i < length && isColorSchemeSeparator(colorScheme[i]))
             ++i;
         unsigned keyBegin = i;
 
         // Skip to first separator.
-        while (i < length && !isColorSchemeSeparator(colorSchemes[i]))
+        while (i < length && !isColorSchemeSeparator(colorScheme[i]))
             ++i;
         unsigned keyEnd = i;
 
         if (keyBegin == keyEnd)
             continue;
 
-        callback(colorSchemes.substring(keyBegin, keyEnd - keyBegin));
+        callback(colorScheme.substring(keyBegin, keyEnd - keyBegin));
     }
 }
 
-void Document::processSupportedColorSchemes(const String& colorSchemes)
+void Document::processColorScheme(const String& colorSchemeString)
 {
-    OptionSet<ColorSchemes> supportedColorSchemes;
+    OptionSet<ColorScheme> colorScheme;
     bool allowsTransformations = true;
     bool autoEncountered = false;
 
-    processColorSchemes(colorSchemes, [&](StringView key) {
+    processColorSchemeString(colorSchemeString, [&](StringView key) {
         if (equalLettersIgnoringASCIICase(key, "auto")) {
-            supportedColorSchemes = { };
+            colorScheme = { };
             allowsTransformations = true;
             autoEncountered = true;
             return;
@@ -3660,18 +3660,18 @@ void Document::processSupportedColorSchemes(const String& colorSchemes)
             return;
 
         if (equalLettersIgnoringASCIICase(key, "light"))
-            supportedColorSchemes.add(ColorSchemes::Light);
+            colorScheme.add(ColorScheme::Light);
         else if (equalLettersIgnoringASCIICase(key, "dark"))
-            supportedColorSchemes.add(ColorSchemes::Dark);
+            colorScheme.add(ColorScheme::Dark);
         else if (equalLettersIgnoringASCIICase(key, "only"))
             allowsTransformations = false;
     });
 
     // If the value was just "only", that is synonymous for "only light".
-    if (supportedColorSchemes.isEmpty() && !allowsTransformations)
-        supportedColorSchemes.add(ColorSchemes::Light);
+    if (colorScheme.isEmpty() && !allowsTransformations)
+        colorScheme.add(ColorScheme::Light);
 
-    m_supportedColorSchemes = supportedColorSchemes;
+    m_colorScheme = colorScheme;
     m_allowsColorSchemeTransformations = allowsTransformations;
 
     if (auto* frameView = view())
@@ -7471,17 +7471,17 @@ bool Document::useDarkAppearance(const RenderStyle* style) const
 {
 #if HAVE(OS_DARK_MODE_SUPPORT)
 #if ENABLE(DARK_MODE_CSS)
-    OptionSet<ColorSchemes> supportedColorSchemes;
+    OptionSet<ColorScheme> colorScheme;
 
     // Use the style's supported color schemes, if supplied.
     if (style)
-        supportedColorSchemes = style->supportedColorSchemes().colorSchemes();
+        colorScheme = style->colorScheme().colorScheme();
 
     // Fallback to the document's supported color schemes if style was empty (auto).
-    if (supportedColorSchemes.isEmpty())
-        supportedColorSchemes = m_supportedColorSchemes;
+    if (colorScheme.isEmpty())
+        colorScheme = m_colorScheme;
 
-    if (supportedColorSchemes.contains(ColorSchemes::Dark) && !supportedColorSchemes.contains(ColorSchemes::Light))
+    if (colorScheme.contains(ColorScheme::Dark) && !colorScheme.contains(ColorScheme::Light))
         return true;
 #else
     UNUSED_PARAM(style);
@@ -7495,7 +7495,7 @@ bool Document::useDarkAppearance(const RenderStyle* style) const
         return pageUsesDarkAppearance;
 
 #if ENABLE(DARK_MODE_CSS)
-    if (supportedColorSchemes.contains(ColorSchemes::Dark))
+    if (colorScheme.contains(ColorScheme::Dark))
         return pageUsesDarkAppearance;
 #endif
 #else
index 1c772aa..3cd25af 100644 (file)
@@ -892,7 +892,7 @@ public:
     void processReferrerPolicy(const String& policy, ReferrerPolicySource);
 
 #if ENABLE(DARK_MODE_CSS)
-    void processSupportedColorSchemes(const String& colorSchemes);
+    void processColorScheme(const String& colorScheme);
 #endif
 
     // Returns the owning element in the parent document.
@@ -1805,7 +1805,7 @@ private:
     HashSet<SVGUseElement*> m_svgUseElements;
 
 #if ENABLE(DARK_MODE_CSS)
-    OptionSet<ColorSchemes> m_supportedColorSchemes;
+    OptionSet<ColorScheme> m_colorScheme;
     bool m_allowsColorSchemeTransformations { true };
 #endif
 
index ccce74b..6448049 100644 (file)
@@ -92,8 +92,8 @@ void HTMLMetaElement::process()
     else if (RuntimeEnabledFeatures::sharedFeatures().disabledAdaptationsMetaTagEnabled() && equalLettersIgnoringASCIICase(name(), "disabled-adaptations"))
         document().processDisabledAdaptations(contentValue);
 #if ENABLE(DARK_MODE_CSS)
-    else if (RuntimeEnabledFeatures::sharedFeatures().darkModeCSSEnabled() && equalLettersIgnoringASCIICase(name(), "supported-color-schemes"))
-        document().processSupportedColorSchemes(contentValue);
+    else if (RuntimeEnabledFeatures::sharedFeatures().darkModeCSSEnabled() && (equalLettersIgnoringASCIICase(name(), "color-scheme") || equalLettersIgnoringASCIICase(name(), "supported-color-schemes")))
+        document().processColorScheme(contentValue);
 #endif
 #if PLATFORM(IOS_FAMILY)
     else if (equalLettersIgnoringASCIICase(name(), "format-detection"))
index e5ced21..8ecef07 100644 (file)
@@ -2003,12 +2003,12 @@ bool FrameView::shouldSetCursor() const
 }
 
 #if ENABLE(DARK_MODE_CSS)
-RenderObject* FrameView::rendererForSupportedColorSchemes() const
+RenderObject* FrameView::rendererForColorScheme() const
 {
     auto* document = frame().document();
     auto* documentElement = document ? document->documentElement() : nullptr;
     auto* documentElementRenderer = documentElement ? documentElement->renderer() : nullptr;
-    if (documentElementRenderer && documentElementRenderer->style().hasExplicitlySetSupportedColorSchemes())
+    if (documentElementRenderer && documentElementRenderer->style().hasExplicitlySetColorScheme())
         return documentElementRenderer;
     auto* bodyElement = document ? document->bodyOrFrameset() : nullptr;
     return bodyElement ? bodyElement->renderer() : nullptr;
@@ -2018,7 +2018,7 @@ RenderObject* FrameView::rendererForSupportedColorSchemes() const
 bool FrameView::useDarkAppearance() const
 {
 #if ENABLE(DARK_MODE_CSS)
-    if (auto* renderer = rendererForSupportedColorSchemes())
+    if (auto* renderer = rendererForColorScheme())
         return renderer->useDarkAppearance();
 #endif
     if (auto* document = frame().document())
@@ -2029,7 +2029,7 @@ bool FrameView::useDarkAppearance() const
 OptionSet<StyleColor::Options> FrameView::styleColorOptions() const
 {
 #if ENABLE(DARK_MODE_CSS)
-    if (auto* renderer = rendererForSupportedColorSchemes())
+    if (auto* renderer = rendererForColorScheme())
         return renderer->styleColorOptions();
 #endif
     if (auto* document = frame().document())
index 4da8e3d..253db2a 100644 (file)
@@ -738,7 +738,7 @@ private:
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-    RenderObject* rendererForSupportedColorSchemes() const;
+    RenderObject* rendererForColorScheme() const;
 #endif
 
     bool usesCompositedScrolling() const final;
index 46c5ea7..feeb708 100644 (file)
@@ -963,7 +963,7 @@ static bool rareInheritedDataChangeRequiresRepaint(const StyleRareInheritedData&
         || first.appleColorFilter != second.appleColorFilter
         || first.imageRendering != second.imageRendering
 #if ENABLE(DARK_MODE_CSS)
-        || first.supportedColorSchemes != second.supportedColorSchemes
+        || first.colorScheme != second.colorScheme
 #endif
     ;
 }
index 94534b2..68576ac 100644 (file)
@@ -86,7 +86,7 @@
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-#include "StyleSupportedColorSchemes.h"
+#include "StyleColorScheme.h"
 #endif
 
 #define SET_VAR(group, variable, value) do { \
@@ -638,9 +638,9 @@ public:
     RubyPosition rubyPosition() const { return static_cast<RubyPosition>(m_rareInheritedData->rubyPosition); }
 
 #if ENABLE(DARK_MODE_CSS)
-    StyleSupportedColorSchemes supportedColorSchemes() const { return m_rareInheritedData->supportedColorSchemes; }
-    void setHasExplicitlySetSupportedColorSchemes(bool v) { m_nonInheritedFlags.hasExplicitlySetSupportedColorSchemes = v; }
-    bool hasExplicitlySetSupportedColorSchemes() const { return m_nonInheritedFlags.hasExplicitlySetSupportedColorSchemes; };
+    StyleColorScheme colorScheme() const { return m_rareInheritedData->colorScheme; }
+    void setHasExplicitlySetColorScheme(bool v) { m_nonInheritedFlags.hasExplicitlySetColorScheme = v; }
+    bool hasExplicitlySetColorScheme() const { return m_nonInheritedFlags.hasExplicitlySetColorScheme; };
 #endif
 
     TextOrientation textOrientation() const { return static_cast<TextOrientation>(m_rareInheritedData->textOrientation); }
@@ -1179,7 +1179,7 @@ public:
     void setRubyPosition(RubyPosition position) { SET_VAR(m_rareInheritedData, rubyPosition, static_cast<unsigned>(position)); }
 
 #if ENABLE(DARK_MODE_CSS)
-    void setSupportedColorSchemes(StyleSupportedColorSchemes supported) { SET_VAR(m_rareInheritedData, supportedColorSchemes, supported); }
+    void setColorScheme(StyleColorScheme supported) { SET_VAR(m_rareInheritedData, colorScheme, supported); }
 #endif
 
     void setFilter(const FilterOperations& ops) { SET_NESTED_VAR(m_rareNonInheritedData, filter, operations, ops); }
@@ -1601,7 +1601,7 @@ public:
     static const AtomicString& initialContentAltText() { return emptyAtom(); }
 
 #if ENABLE(DARK_MODE_CSS)
-    static StyleSupportedColorSchemes initialSupportedColorSchemes() { return { }; }
+    static StyleColorScheme initialColorScheme() { return { }; }
 #endif
 
 #if ENABLE(CSS3_TEXT)
@@ -1793,7 +1793,7 @@ private:
         unsigned hasExplicitlySetWritingMode : 1;
         unsigned hasExplicitlySetTextAlign : 1;
 #if ENABLE(DARK_MODE_CSS)
-        unsigned hasExplicitlySetSupportedColorSchemes : 1;
+        unsigned hasExplicitlySetColorScheme : 1;
 #endif
         unsigned hasViewportUnits : 1;
         unsigned hasExplicitlyInheritedProperties : 1; // Explicitly inherits a non-inherited property.
@@ -1922,7 +1922,7 @@ inline bool RenderStyle::NonInheritedFlags::operator==(const NonInheritedFlags&
         && hasExplicitlySetWritingMode == other.hasExplicitlySetWritingMode
         && hasExplicitlySetTextAlign == other.hasExplicitlySetTextAlign
 #if ENABLE(DARK_MODE_CSS)
-        && hasExplicitlySetSupportedColorSchemes == other.hasExplicitlySetSupportedColorSchemes
+        && hasExplicitlySetColorScheme == other.hasExplicitlySetColorScheme
 #endif
         && hasViewportUnits == other.hasViewportUnits
         && hasExplicitlyInheritedProperties == other.hasExplicitlyInheritedProperties
index 084667b..d78d253 100644 (file)
@@ -1020,12 +1020,12 @@ enum class RubyPosition : uint8_t {
 };
 
 #if ENABLE(DARK_MODE_CSS)
-enum class ColorSchemes : uint8_t {
+enum class ColorScheme : uint8_t {
     Light = 1 << 0,
     Dark = 1 << 1
 };
 
-static const size_t ColorSchemesBits = 2;
+static const size_t ColorSchemeBits = 2;
 #endif
 
 static const size_t GridAutoFlowBits = 4;
 
 namespace WebCore {
 
-class StyleSupportedColorSchemes {
+class StyleColorScheme {
 public:
-    StyleSupportedColorSchemes() { }
+    StyleColorScheme() { }
 
-    StyleSupportedColorSchemes(const StyleSupportedColorSchemes& other)
-        : m_colorSchemes(other.m_colorSchemes)
+    StyleColorScheme(const StyleColorScheme& other)
+        : m_colorScheme(other.m_colorScheme)
         , m_allowsTransformations(other.m_allowsTransformations)
     { }
 
-    StyleSupportedColorSchemes(OptionSet<ColorSchemes> colorSchemes, bool allowsTransformations)
-        : m_colorSchemes(colorSchemes)
+    StyleColorScheme(OptionSet<ColorScheme> colorScheme, bool allowsTransformations)
+        : m_colorScheme(colorScheme)
         , m_allowsTransformations(allowsTransformations)
     { }
 
-    bool operator==(const StyleSupportedColorSchemes& other) const
+    bool operator==(const StyleColorScheme& other) const
     {
-        return m_colorSchemes == other.m_colorSchemes && m_allowsTransformations == other.m_allowsTransformations;
+        return m_colorScheme == other.m_colorScheme && m_allowsTransformations == other.m_allowsTransformations;
     }
 
-    bool operator!=(const StyleSupportedColorSchemes& other) const { return !(*this == other); }
+    bool operator!=(const StyleColorScheme& other) const { return !(*this == other); }
 
-    bool isAuto() const { return m_colorSchemes.isEmpty() && m_allowsTransformations; }
-    bool isOnly() const { return m_colorSchemes.isEmpty() && !m_allowsTransformations; }
+    bool isAuto() const { return m_colorScheme.isEmpty() && m_allowsTransformations; }
+    bool isOnly() const { return m_colorScheme.isEmpty() && !m_allowsTransformations; }
 
-    OptionSet<ColorSchemes> colorSchemes() const { return m_colorSchemes; }
+    OptionSet<ColorScheme> colorScheme() const { return m_colorScheme; }
 
-    void add(ColorSchemes colorScheme) { m_colorSchemes.add(colorScheme); }
-    bool contains(ColorSchemes colorScheme) const { return m_colorSchemes.contains(colorScheme); }
+    void add(ColorScheme colorScheme) { m_colorScheme.add(colorScheme); }
+    bool contains(ColorScheme colorScheme) const { return m_colorScheme.contains(colorScheme); }
 
     void setAllowsTransformations(bool allow) { m_allowsTransformations = allow; }
     bool allowsTransformations() const { return m_allowsTransformations; }
 
 private:
-    OptionSet<ColorSchemes> m_colorSchemes;
+    OptionSet<ColorScheme> m_colorScheme;
     bool m_allowsTransformations { true };
 };
 
index e9b0cb8..899873d 100644 (file)
 #include "RenderStyle.h"
 #include "RenderStyleConstants.h"
 #include "ShadowData.h"
+#include "StyleColorScheme.h"
 #include "StyleCustomPropertyData.h"
 #include "StyleFilterData.h"
 #include "StyleImage.h"
-#include "StyleSupportedColorSchemes.h"
 #include <wtf/PointerComparison.h>
 
 namespace WebCore {
@@ -69,7 +69,7 @@ struct GreaterThanOrSameSizeAsStyleRareInheritedData : public RefCounted<Greater
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-    StyleSupportedColorSchemes supportedColorSchemes;
+    StyleColorScheme colorScheme;
 #endif
 
     void* customPropertyDataRefs[1];
@@ -159,7 +159,7 @@ StyleRareInheritedData::StyleRareInheritedData()
     , tapHighlightColor(RenderStyle::initialTapHighlightColor())
 #endif
 #if ENABLE(DARK_MODE_CSS)
-    , supportedColorSchemes(RenderStyle::initialSupportedColorSchemes())
+    , colorScheme(RenderStyle::initialColorScheme())
 #endif
 {
 }
@@ -260,7 +260,7 @@ inline StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedDa
     , tapHighlightColor(o.tapHighlightColor)
 #endif
 #if ENABLE(DARK_MODE_CSS)
-    , supportedColorSchemes(o.supportedColorSchemes)
+    , colorScheme(o.colorScheme)
 #endif
 {
 }
@@ -309,7 +309,7 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
         && textSizeAdjust == o.textSizeAdjust
 #endif
 #if ENABLE(DARK_MODE_CSS)
-        && supportedColorSchemes == o.supportedColorSchemes
+        && colorScheme == o.colorScheme
 #endif
         && userSelect == o.userSelect
         && speakAs == o.speakAs
index b8a31ec..a0332d8 100644 (file)
@@ -38,7 +38,7 @@
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-#include "StyleSupportedColorSchemes.h"
+#include "StyleColorScheme.h"
 #endif
 
 namespace WebCore {
@@ -187,7 +187,7 @@ public:
 #endif
 
 #if ENABLE(DARK_MODE_CSS)
-    StyleSupportedColorSchemes supportedColorSchemes;
+    StyleColorScheme colorScheme;
 #endif
 
 private:
index 8af269d..d79294d 100644 (file)
@@ -1,3 +1,14 @@
+2019-04-17  Timothy Hatcher  <timothy@apple.com>
+
+        Rename `supported-color-schemes` to `color-scheme`.
+        https://bugs.webkit.org/show_bug.cgi?id=197016
+        rdar://problem/49980259
+
+        Reviewed by Simon Fraser.
+
+        * UserInterface/Views/Main.css:
+        (:root):
+
 2019-04-17  Devin Rousso  <drousso@apple.com>
 
         Web Inspector: Canvas: imported recordings aren't processed when the navigation sidebar is collapsed
index 3a535e7..a4b1b40 100644 (file)
@@ -28,7 +28,7 @@
 }
 
 :root {
-    supported-color-schemes: light dark;
+    color-scheme: light dark;
 }
 
 summary {