haikuwebkit/LayoutTests/css-dark-mode/prefers-color-scheme.html

91 lines
2.5 KiB
HTML
Raw Permalink Normal View History

Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<style>
div {
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
background-color: red;
color: text;
}
@media (prefers-color-scheme: light) {
#test1 {
background-color: lime;
}
}
@media (prefers-color-scheme: dark) {
#test1 {
background-color: blue;
}
}
@media not (prefers-color-scheme) {
/* This is valid, but should not apply for us since there is no option for no user preference. */
#test1 {
background-color: cyan;
}
}
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
@media (prefers-color-scheme: foo) {
/* This is invalid and should not apply. */
#test1 {
background-color: yellow;
}
}
@media (prefers-color-scheme) {
/* This is valid and should always apply for us, since there is always a user preference currently. */
#test2 {
background-color: lime;
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
}
}
</style>
<div id="test1"></div>
<div id="test2"></div>
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
<script>
function test_prop(id, prop, expected) {
assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop).trim(), expected);
}
test(function() {
// Styled background-color in media query should be lime green.
test_prop("test1", "background-color", "rgb(0, 255, 0)");
// The semantic text color should be black.
test_prop("test1", "color", "rgb(0, 0, 0)");
}, "Element colors are correct in light color scheme");
test(function() {
// Styled background-color in media query should be lime green.
test_prop("test2", "background-color", "rgb(0, 255, 0)");
// The semantic text color should be black.
test_prop("test2", "color", "rgb(0, 0, 0)");
}, "Element colors are correct in light color scheme with boolean context query");
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
test(function() {
if (window.internals)
internals.settings.setUseDarkAppearance(true);
}, "Dark color scheme enabled");
test(function() {
// Styled background-color in media query should be blue.
test_prop("test1", "background-color", "rgb(0, 0, 255)");
// The semantic text color should be black, and not change.
test_prop("test1", "color", "rgb(0, 0, 0)");
}, "Element colors are correct in dark color scheme");
test(function() {
// Styled background-color in media query should be lime green.
test_prop("test2", "background-color", "rgb(0, 255, 0)");
// The semantic text color should be black.
test_prop("test2", "color", "rgb(0, 0, 0)");
}, "Element colors are correct in dark color scheme with boolean context query");
Add support for prefers-color-scheme media query https://bugs.webkit.org/show_bug.cgi?id=190499 rdar://problem/45212025 Reviewed by Dean Jackson. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebCore: Test: css-dark-mode/prefers-color-scheme.html * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * css/CSSValueKeywords.in: Added light and dark. * css/MediaFeatureNames.h: Added prefers-color-scheme. * css/MediaQueryEvaluator.cpp: (WebCore::prefersColorSchemeEvaluate): Added. * css/MediaQueryExpression.cpp: (WebCore::featureWithValidIdent): Added prefers-color-scheme. * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added. (WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added. * testing/InternalSettings.cpp: (WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance. (WebCore::InternalSettings::setUseDarkAppearance): Added. * testing/InternalSettings.h: Added setUseDarkAppearance. * testing/InternalSettings.idl: Ditto. Source/WebCore/PAL: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WebKit: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. Source/WebKitLegacy/mac: * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. Source/WTF: * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS. Tools: * Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. LayoutTests: * css-dark-mode/prefers-color-scheme-expected.txt: Added. * css-dark-mode/prefers-color-scheme.html: Added. * platform/gtk/TestExpectations: Skip css-dark-mode. * platform/ios/TestExpectations: Skip css-dark-mode. * platform/mac-wk1/TestExpectations: Skip css-dark-mode. * platform/win/TestExpectations: Skip css-dark-mode. * platform/wincairo/TestExpectations: Skip css-dark-mode. * platform/wpe/TestExpectations: Skip css-dark-mode. Canonical link: https://commits.webkit.org/205530@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 23:43:02 +00:00
</script>