Title: [269390] trunk/Tools
Revision
269390
Author
wei...@apple.com
Date
2020-11-04 14:22:03 -0800 (Wed, 04 Nov 2020)

Log Message

Remove support for experimental: and internal: prefixes from WebKitTestRunner and DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=218569

Reviewed by Tim Horton.

The prefixes were removed from use in tests in r269360.

* DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::webViewIsCompatibleWithOptions const):
Replace duplicated comparison code with call to operator==.

* TestRunnerShared/TestFeatures.cpp:
(WTR::merge):
Remove special maps for internal and experimental features.

(WTR::operator==):
(WTR::operator!=):
Add operator== support for use by TestOptions in determining compatibility.

(WTR::parseTestHeaderFeature):
(WTR::parseTestHeader):
Split out feature parsing for future use in command line parsing.

* TestRunnerShared/TestFeatures.h:
Remove special maps for internal and experimental features.

* WebKitTestRunner/Options.cpp:
(WTR::handleOptionAcceleratedDrawing):
(WTR::handleOptionRemoteLayerTree):
(WTR::handleOptionShowWebView):
(WTR::handleOptionShowTouches):
(WTR::parseFeature):
(WTR::handleOptionExperimentalFeature):
(WTR::handleOptionInternalFeature):
* WebKitTestRunner/Options.h:
Rather than parsing into bools / extra maps, parse the command line options
directly into a TestFeatures.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize):
Initialize global features from the new Options' TestFeatures.

(WTR::TestController::resetPreferencesToConsistentValues):
Remove special casing for experimental and internal features, they are now just
generic bool WebPreferences. Move special cases for internal features into TestOptions.

(WTR::TestController::testOptionsForTest const):
Now that global features is not seeded with the default features, construct the
full merge chain starting with the default features instead.

* WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
Add some additional defaults moved from TestController::resetPreferencesToConsistentValues.

(WTR::TestOptions::hasSameInitializationOptions const):
Use operator== to reduce duplicated code.

* WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::experimentalFeatures const): Deleted.
(WTR::TestOptions::internalDebugFeatures const): Deleted.
Remove now unused extra maps for external and internal features.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (269389 => 269390)


--- trunk/Tools/ChangeLog	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/ChangeLog	2020-11-04 22:22:03 UTC (rev 269390)
@@ -1,3 +1,67 @@
+2020-11-04  Sam Weinig  <wei...@apple.com>
+
+        Remove support for experimental: and internal: prefixes from WebKitTestRunner and DumpRenderTree
+        https://bugs.webkit.org/show_bug.cgi?id=218569
+
+        Reviewed by Tim Horton.
+
+        The prefixes were removed from use in tests in r269360.
+
+        * DumpRenderTree/TestOptions.cpp:
+        (WTR::TestOptions::webViewIsCompatibleWithOptions const):
+        Replace duplicated comparison code with call to operator==.
+
+        * TestRunnerShared/TestFeatures.cpp:
+        (WTR::merge):
+        Remove special maps for internal and experimental features.
+
+        (WTR::operator==):
+        (WTR::operator!=):
+        Add operator== support for use by TestOptions in determining compatibility.
+
+        (WTR::parseTestHeaderFeature):
+        (WTR::parseTestHeader):
+        Split out feature parsing for future use in command line parsing.
+
+        * TestRunnerShared/TestFeatures.h:
+        Remove special maps for internal and experimental features.
+
+        * WebKitTestRunner/Options.cpp:
+        (WTR::handleOptionAcceleratedDrawing):
+        (WTR::handleOptionRemoteLayerTree):
+        (WTR::handleOptionShowWebView):
+        (WTR::handleOptionShowTouches):
+        (WTR::parseFeature):
+        (WTR::handleOptionExperimentalFeature):
+        (WTR::handleOptionInternalFeature):
+        * WebKitTestRunner/Options.h:
+        Rather than parsing into bools / extra maps, parse the command line options
+        directly into a TestFeatures.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::initialize):
+        Initialize global features from the new Options' TestFeatures. 
+
+        (WTR::TestController::resetPreferencesToConsistentValues):
+        Remove special casing for experimental and internal features, they are now just
+        generic bool WebPreferences. Move special cases for internal features into TestOptions.
+
+        (WTR::TestController::testOptionsForTest const):
+        Now that global features is not seeded with the default features, construct the
+        full merge chain starting with the default features instead.
+
+        * WebKitTestRunner/TestOptions.cpp:
+        (WTR::TestOptions::defaults):
+        Add some additional defaults moved from TestController::resetPreferencesToConsistentValues.
+
+        (WTR::TestOptions::hasSameInitializationOptions const):
+        Use operator== to reduce duplicated code.
+
+        * WebKitTestRunner/TestOptions.h:
+        (WTR::TestOptions::experimentalFeatures const): Deleted.
+        (WTR::TestOptions::internalDebugFeatures const): Deleted.
+        Remove now unused extra maps for external and internal features.
+
 2020-11-04  David Kilzer  <ddkil...@apple.com>
 
         WebKit should remove unused debug variant support

Modified: trunk/Tools/DumpRenderTree/TestOptions.cpp (269389 => 269390)


--- trunk/Tools/DumpRenderTree/TestOptions.cpp	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/DumpRenderTree/TestOptions.cpp	2020-11-04 22:22:03 UTC (rev 269390)
@@ -130,29 +130,9 @@
     return map;
 }
 
-bool TestOptions::webViewIsCompatibleWithOptions(const TestOptions& options) const
+bool TestOptions::webViewIsCompatibleWithOptions(const TestOptions& other) const
 {
-    if (m_features.experimentalFeatures != options.m_features.experimentalFeatures)
-        return false;
-    if (m_features.internalDebugFeatures != options.m_features.internalDebugFeatures)
-        return false;
-    if (m_features.boolWebPreferenceFeatures != options.m_features.boolWebPreferenceFeatures)
-        return false;
-    if (m_features.doubleWebPreferenceFeatures != options.m_features.doubleWebPreferenceFeatures)
-        return false;
-    if (m_features.uint32WebPreferenceFeatures != options.m_features.uint32WebPreferenceFeatures)
-        return false;
-    if (m_features.stringWebPreferenceFeatures != options.m_features.stringWebPreferenceFeatures)
-        return false;
-    if (m_features.boolTestRunnerFeatures != options.m_features.boolTestRunnerFeatures)
-        return false;
-    if (m_features.doubleTestRunnerFeatures != options.m_features.doubleTestRunnerFeatures)
-        return false;
-    if (m_features.stringTestRunnerFeatures != options.m_features.stringTestRunnerFeatures)
-        return false;
-    if (m_features.stringVectorTestRunnerFeatures != options.m_features.stringVectorTestRunnerFeatures)
-        return false;
-    return true;
+    return m_features == other.m_features;
 }
 
 template<typename T> T featureValue(std::string key, T defaultValue, const std::unordered_map<std::string, T>& map)

Modified: trunk/Tools/TestRunnerShared/TestFeatures.cpp (269389 => 269390)


--- trunk/Tools/TestRunnerShared/TestFeatures.cpp	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/TestRunnerShared/TestFeatures.cpp	2020-11-04 22:22:03 UTC (rev 269390)
@@ -42,8 +42,6 @@
 void merge(TestFeatures& base, TestFeatures additional)
 {
     // FIXME: This should use std::unordered_map::merge when it is available for all ports.
-    merge(base.experimentalFeatures, additional.experimentalFeatures);
-    merge(base.internalDebugFeatures, additional.internalDebugFeatures);
     merge(base.boolWebPreferenceFeatures, additional.boolWebPreferenceFeatures);
     merge(base.doubleWebPreferenceFeatures, additional.doubleWebPreferenceFeatures);
     merge(base.uint32WebPreferenceFeatures, additional.uint32WebPreferenceFeatures);
@@ -54,6 +52,32 @@
     merge(base.stringVectorTestRunnerFeatures, additional.stringVectorTestRunnerFeatures);
 }
 
+bool operator==(const TestFeatures& a, const TestFeatures& b)
+{
+    if (a.boolWebPreferenceFeatures != b.boolWebPreferenceFeatures)
+        return false;
+    if (a.doubleWebPreferenceFeatures != b.doubleWebPreferenceFeatures)
+        return false;
+    if (a.uint32WebPreferenceFeatures != b.uint32WebPreferenceFeatures)
+        return false;
+    if (a.stringWebPreferenceFeatures != b.stringWebPreferenceFeatures)
+        return false;
+    if (a.boolTestRunnerFeatures != b.boolTestRunnerFeatures)
+        return false;
+    if (a.doubleTestRunnerFeatures != b.doubleTestRunnerFeatures)
+        return false;
+    if (a.stringTestRunnerFeatures != b.stringTestRunnerFeatures)
+        return false;
+    if (a.stringVectorTestRunnerFeatures != b.stringVectorTestRunnerFeatures)
+        return false;
+    return true;
+}
+
+bool operator!=(const TestFeatures& a, const TestFeatures& b)
+{
+    return !(a == b);
+}
+
 static bool pathContains(const std::string& pathOrURL, const char* substring)
 {
     return pathOrURL.find(substring) != std::string::npos;
@@ -170,7 +194,7 @@
     return result;
 }
 
-static TestFeatures parseTestHeader(std::filesystem::path path, const std::unordered_map<std::string, TestHeaderKeyType>& keyTypeMap)
+bool parseTestHeaderFeature(TestFeatures& features, std::string key, std::string value, std::filesystem::path path, const std::unordered_map<std::string, TestHeaderKeyType>& keyTypeMap)
 {
     auto keyType = [&keyTypeMap](auto& key) {
         auto it = keyTypeMap.find(key);
@@ -179,6 +203,48 @@
         return it->second;
     };
 
+    switch (keyType(key)) {
+    case TestHeaderKeyType::BoolWebPreference:
+        features.boolWebPreferenceFeatures.insert_or_assign(key, parseBooleanTestHeaderValue(value));
+        return true;
+    case TestHeaderKeyType::DoubleWebPreference:
+        features.doubleWebPreferenceFeatures.insert_or_assign(key, parseDoubleTestHeaderValue(value));
+        return true;
+    case TestHeaderKeyType::UInt32WebPreference:
+        features.uint32WebPreferenceFeatures.insert_or_assign(key, parseUInt32TestHeaderValue(value));
+        return true;
+    case TestHeaderKeyType::StringWebPreference:
+        features.stringWebPreferenceFeatures.insert_or_assign(key, value);
+        return true;
+
+    case TestHeaderKeyType::BoolTestRunner:
+        features.boolTestRunnerFeatures.insert_or_assign(key, parseBooleanTestHeaderValue(value));
+        return true;
+    case TestHeaderKeyType::DoubleTestRunner:
+        features.doubleTestRunnerFeatures.insert_or_assign(key, parseDoubleTestHeaderValue(value));
+        return true;
+    case TestHeaderKeyType::StringTestRunner:
+        features.stringTestRunnerFeatures.insert_or_assign(key, value);
+        return true;
+    case TestHeaderKeyType::StringRelativePathTestRunner:
+        features.stringTestRunnerFeatures.insert_or_assign(key, parseStringTestHeaderValueAsRelativePath(value, path));
+        return true;
+    case TestHeaderKeyType::StringURLTestRunner:
+        features.stringTestRunnerFeatures.insert_or_assign(key, parseStringTestHeaderValueAsURL(value));
+        return true;
+    case TestHeaderKeyType::StringVectorTestRunner:
+        features.stringVectorTestRunnerFeatures.insert_or_assign(key, parseStringTestHeaderValueAsStringVector(value));
+        return true;
+
+    case TestHeaderKeyType::Unknown:
+        return false;
+    }
+
+    return false;
+}
+
+static TestFeatures parseTestHeader(std::filesystem::path path, const std::unordered_map<std::string, TestHeaderKeyType>& keyTypeMap)
+{
     TestFeatures features;
     if (!std::filesystem::exists(path))
         return features;
@@ -214,53 +280,10 @@
         }
         auto key = pairString.substr(pairStart, equalsLocation - pairStart);
         auto value = pairString.substr(equalsLocation + 1, pairEnd - (equalsLocation + 1));
-
-        if (key.rfind("experimental:") == 0) {
-            key = key.substr(13);
-            features.experimentalFeatures.insert({ key, parseBooleanTestHeaderValue(value) });
-        } else if (key.rfind("internal:") == 0) {
-            key = key.substr(9);
-            features.internalDebugFeatures.insert({ key, parseBooleanTestHeaderValue(value) });
-        }
-
-        switch (keyType(key)) {
-        case TestHeaderKeyType::BoolWebPreference:
-            features.boolWebPreferenceFeatures.insert({ key, parseBooleanTestHeaderValue(value) });
-            break;
-        case TestHeaderKeyType::DoubleWebPreference:
-            features.doubleWebPreferenceFeatures.insert({ key, parseDoubleTestHeaderValue(value) });
-            break;
-        case TestHeaderKeyType::UInt32WebPreference:
-            features.uint32WebPreferenceFeatures.insert({ key, parseUInt32TestHeaderValue(value) });
-            break;
-        case TestHeaderKeyType::StringWebPreference:
-            features.stringWebPreferenceFeatures.insert({ key, value });
-            break;
-
-        case TestHeaderKeyType::BoolTestRunner:
-            features.boolTestRunnerFeatures.insert({ key, parseBooleanTestHeaderValue(value) });
-            break;
-        case TestHeaderKeyType::DoubleTestRunner:
-            features.doubleTestRunnerFeatures.insert({ key, parseDoubleTestHeaderValue(value) });
-            break;
-        case TestHeaderKeyType::StringTestRunner:
-            features.stringTestRunnerFeatures.insert({ key, value });
-            break;
-        case TestHeaderKeyType::StringRelativePathTestRunner:
-            features.stringTestRunnerFeatures.insert({ key, parseStringTestHeaderValueAsRelativePath(value, path) });
-            break;
-        case TestHeaderKeyType::StringURLTestRunner:
-            features.stringTestRunnerFeatures.insert({ key, parseStringTestHeaderValueAsURL(value) });
-            break;
-        case TestHeaderKeyType::StringVectorTestRunner:
-            features.stringVectorTestRunnerFeatures.insert({ key, parseStringTestHeaderValueAsStringVector(value) });
-            break;
-
-        case TestHeaderKeyType::Unknown:
+        
+        if (!parseTestHeaderFeature(features, key, value, path, keyTypeMap))
             LOG_ERROR("Unknown key, '%s, in test header in %s", key.c_str(), path.c_str());
-            break;
-        }
-
+        
         pairStart = pairEnd + 1;
     }
 

Modified: trunk/Tools/TestRunnerShared/TestFeatures.h (269389 => 269390)


--- trunk/Tools/TestRunnerShared/TestFeatures.h	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/TestRunnerShared/TestFeatures.h	2020-11-04 22:22:03 UTC (rev 269390)
@@ -35,9 +35,6 @@
 struct TestCommand;
 
 struct TestFeatures {
-    std::unordered_map<std::string, bool> experimentalFeatures;
-    std::unordered_map<std::string, bool> internalDebugFeatures;
-
     std::unordered_map<std::string, bool> boolWebPreferenceFeatures;
     std::unordered_map<std::string, double> doubleWebPreferenceFeatures;
     std::unordered_map<std::string, uint32_t> uint32WebPreferenceFeatures;
@@ -49,6 +46,9 @@
     std::unordered_map<std::string, std::vector<std::string>> stringVectorTestRunnerFeatures;
 };
 
+bool operator==(const TestFeatures&, const TestFeatures&);
+bool operator!=(const TestFeatures&, const TestFeatures&);
+
 void merge(TestFeatures& base, TestFeatures additional);
 
 TestFeatures hardcodedFeaturesBasedOnPathForTest(const TestCommand&);

Modified: trunk/Tools/WebKitTestRunner/Options.cpp (269389 => 269390)


--- trunk/Tools/WebKitTestRunner/Options.cpp	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/WebKitTestRunner/Options.cpp	2020-11-04 22:22:03 UTC (rev 269390)
@@ -66,25 +66,25 @@
 
 static bool handleOptionAcceleratedDrawing(Options& options, const char*, const char*)
 {
-    options.shouldUseAcceleratedDrawing = true;
+    options.features.boolWebPreferenceFeatures.insert_or_assign("AcceleratedDrawingEnabled", true);
     return true;
 }
 
 static bool handleOptionRemoteLayerTree(Options& options, const char*, const char*)
 {
-    options.shouldUseRemoteLayerTree = true;
+    options.features.boolTestRunnerFeatures.insert_or_assign("useRemoteLayerTree", true);
     return true;
 }
 
 static bool handleOptionShowWebView(Options& options, const char*, const char*)
 {
-    options.shouldShowWebView = true;
+    options.features.boolTestRunnerFeatures.insert_or_assign("shouldShowWebView", true);
     return true;
 }
 
 static bool handleOptionShowTouches(Options& options, const char*, const char*)
 {
-    options.shouldShowTouches = true;
+    options.features.boolTestRunnerFeatures.insert_or_assign("shouldShowTouches", true);
     return true;
 }
 
@@ -114,7 +114,7 @@
     return true;
 }
 
-static bool parseFeature(std::string_view featureString, std::unordered_map<std::string, bool>& features)
+static bool parseFeature(std::string_view featureString, TestFeatures& features)
 {
     auto strings = split(featureString, '=');
     if (strings.empty() || strings.size() > 2)
@@ -123,18 +123,19 @@
     auto featureName = strings[0];
     bool enabled = strings.size() == 1 || strings[1] == "true";
 
-    features.insert({ std::string { featureName }, enabled });
+    // FIXME: Generalize this to work for any type of web preference using test header logic in TestFeatures.cpp
+    features.boolWebPreferenceFeatures.insert({ std::string { featureName }, enabled });
     return true;
 }
 
 static bool handleOptionExperimentalFeature(Options& options, const char*, const char* feature)
 {
-    return parseFeature(feature, options.experimentalFeatures);
+    return parseFeature(feature, options.features);
 }
 
 static bool handleOptionInternalFeature(Options& options, const char*, const char* feature)
 {
-    return parseFeature(feature, options.internalFeatures);
+    return parseFeature(feature, options.features);
 }
 
 static bool handleOptionUnmatched(Options& options, const char* option, const char*)

Modified: trunk/Tools/WebKitTestRunner/Options.h (269389 => 269390)


--- trunk/Tools/WebKitTestRunner/Options.h	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/WebKitTestRunner/Options.h	2020-11-04 22:22:03 UTC (rev 269390)
@@ -27,6 +27,7 @@
 
 #pragma once
 
+#include "TestFeatures.h"
 #include <functional>
 #include <set>
 #include <stdio.h>
@@ -46,10 +47,6 @@
     bool gcBetweenTests { false };
     bool shouldDumpPixelsForAllTests { false };
     bool forceComplexText { false };
-    bool shouldUseAcceleratedDrawing { false };
-    bool shouldUseRemoteLayerTree { false };
-    bool shouldShowWebView { false };
-    bool shouldShowTouches { false };
     bool checkForWorldLeaks { false };
     bool allowAnyHTTPSCertificateForAllowedHosts { false };
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
@@ -57,8 +54,7 @@
 #endif
     std::vector<std::string> paths;
     std::set<std::string> allowedHosts;
-    std::unordered_map<std::string, bool> internalFeatures;
-    std::unordered_map<std::string, bool> experimentalFeatures;
+    TestFeatures features;
 };
 
 class Option {

Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (269389 => 269390)


--- trunk/Tools/WebKitTestRunner/TestController.cpp	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp	2020-11-04 22:22:03 UTC (rev 269390)
@@ -468,15 +468,8 @@
     m_allowedHosts = options.allowedHosts;
     m_checkForWorldLeaks = options.checkForWorldLeaks;
     m_allowAnyHTTPSCertificateForAllowedHosts = options.allowAnyHTTPSCertificateForAllowedHosts;
+    m_globalFeatures = std::move(options.features);
 
-    m_globalFeatures = TestOptions::defaults();
-    m_globalFeatures.internalDebugFeatures = options.internalFeatures;
-    m_globalFeatures.experimentalFeatures = options.experimentalFeatures;
-    m_globalFeatures.boolWebPreferenceFeatures.insert_or_assign("AcceleratedDrawingEnabled", options.shouldUseAcceleratedDrawing);
-    m_globalFeatures.boolTestRunnerFeatures.insert_or_assign("useRemoteLayerTree", options.shouldUseRemoteLayerTree);
-    m_globalFeatures.boolTestRunnerFeatures.insert_or_assign("shouldShowWebView", options.shouldShowWebView);
-    m_globalFeatures.boolTestRunnerFeatures.insert_or_assign("shouldShowTouches", options.shouldShowTouches);
-
 #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
     m_accessibilityIsolatedTreeMode = options.accessibilityIsolatedTreeMode;
 #endif
@@ -836,24 +829,7 @@
     WKPreferencesResetTestRunnerOverrides(preferences);
 
     WKPreferencesEnableAllExperimentalFeatures(preferences);
-    for (const auto& [key, value] : options.experimentalFeatures())
-        WKPreferencesSetExperimentalFeatureForKey(preferences, value, toWK(key).get());
 
-    WKPreferencesResetAllInternalDebugFeatures(preferences);
-
-    // Set internal features that have different default values for testing.
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, false, toWK("AsyncOverflowScrollingEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, false, toWK("AsyncFrameScrollingEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, true, toWK("InputTypeDateEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, true, toWK("InputTypeDateTimeLocalEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, true, toWK("InputTypeMonthEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, true, toWK("InputTypeTimeEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, true, toWK("InputTypeWeekEnabled").get());
-    WKPreferencesSetInternalDebugFeatureForKey(preferences, false, toWK("SpeakerSelectionRequiresUserGesture").get());
-
-    for (const auto& [key, value]  : options.internalDebugFeatures())
-        WKPreferencesSetInternalDebugFeatureForKey(preferences, value, toWK(key).get());
-
     // FIXME: Convert these to default values for TestOptions.
     WKPreferencesSetProcessSwapOnNavigationEnabled(preferences, options.shouldEnableProcessSwapOnNavigation());
     WKPreferencesSetOfflineWebApplicationCacheEnabled(preferences, true);
@@ -1279,7 +1255,8 @@
 
 TestOptions TestController::testOptionsForTest(const TestCommand& command) const
 {
-    TestFeatures features = m_globalFeatures;
+    TestFeatures features = TestOptions::defaults();
+    merge(features, m_globalFeatures);
     merge(features, hardcodedFeaturesBasedOnPathForTest(command));
     merge(features, platformSpecificFeatureDefaultsForTest(command));
     merge(features, featureDefaultsFromTestHeaderForTest(command, TestOptions::keyTypeMapping()));

Modified: trunk/Tools/WebKitTestRunner/TestOptions.cpp (269389 => 269390)


--- trunk/Tools/WebKitTestRunner/TestOptions.cpp	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/WebKitTestRunner/TestOptions.cpp	2020-11-04 22:22:03 UTC (rev 269390)
@@ -38,9 +38,12 @@
         features.boolWebPreferenceFeatures = {
             // These are WebPreference values that must always be set as they may
             // differ from the default set in the WebPreferences*.yaml configuration.
+            { "AcceleratedDrawingEnabled", false },
             { "AllowFileAccessFromFileURLs", true },
             { "AllowTopNavigationToDataURLs", true },
             { "AllowUniversalAccessFromFileURLs", true },
+            { "AsyncFrameScrollingEnabled", false },
+            { "AsyncOverflowScrollingEnabled", false },
             { "CaptureAudioInGPUProcessEnabled", false },
             { "CaptureAudioInUIProcessEnabled", false },
             { "CaptureVideoInGPUProcessEnabled", false },
@@ -48,6 +51,11 @@
             { "DOMPasteAllowed", true },
             { "FrameFlatteningEnabled", false },
             { "GenericCueAPIEnabled", false },
+            { "InputTypeDateEnabled", true },
+            { "InputTypeDateTimeLocalEnabled", true },
+            { "InputTypeMonthEnabled", true },
+            { "InputTypeTimeEnabled", true },
+            { "InputTypeWeekEnabled", true },
             { "_javascript_CanAccessClipboard", true },
             { "_javascript_CanOpenWindowsAutomatically", true },
             { "MockScrollbarsEnabled", true },
@@ -57,6 +65,7 @@
             { "OffscreenCanvasEnabled", true },
             { "PageVisibilityBasedProcessSuppressionEnabled", false },
             { "PluginsEnabled", true },
+            { "SpeakerSelectionRequiresUserGesture", false },
             { "UsesBackForwardCache", false },
             { "WebAuthenticationEnabled", true },
             { "XSSAuditorEnabled", false },
@@ -151,29 +160,9 @@
     return map;
 }
 
-bool TestOptions::hasSameInitializationOptions(const TestOptions& options) const
+bool TestOptions::hasSameInitializationOptions(const TestOptions& other) const
 {
-    if (m_features.experimentalFeatures != options.m_features.experimentalFeatures)
-        return false;
-    if (m_features.internalDebugFeatures != options.m_features.internalDebugFeatures)
-        return false;
-    if (m_features.boolWebPreferenceFeatures != options.m_features.boolWebPreferenceFeatures)
-        return false;
-    if (m_features.doubleWebPreferenceFeatures != options.m_features.doubleWebPreferenceFeatures)
-        return false;
-    if (m_features.uint32WebPreferenceFeatures != options.m_features.uint32WebPreferenceFeatures)
-        return false;
-    if (m_features.stringWebPreferenceFeatures != options.m_features.stringWebPreferenceFeatures)
-        return false;
-    if (m_features.boolTestRunnerFeatures != options.m_features.boolTestRunnerFeatures)
-        return false;
-    if (m_features.doubleTestRunnerFeatures != options.m_features.doubleTestRunnerFeatures)
-        return false;
-    if (m_features.stringTestRunnerFeatures != options.m_features.stringTestRunnerFeatures)
-        return false;
-    if (m_features.stringVectorTestRunnerFeatures != options.m_features.stringVectorTestRunnerFeatures)
-        return false;
-    return true;
+    return m_features == other.m_features;
 }
 
 bool TestOptions::boolWebPreferenceFeatureValue(std::string key, bool defaultValue) const

Modified: trunk/Tools/WebKitTestRunner/TestOptions.h (269389 => 269390)


--- trunk/Tools/WebKitTestRunner/TestOptions.h	2020-11-04 22:07:11 UTC (rev 269389)
+++ trunk/Tools/WebKitTestRunner/TestOptions.h	2020-11-04 22:22:03 UTC (rev 269390)
@@ -86,9 +86,6 @@
         return enableProcessSwapOnNavigation() || enableProcessSwapOnWindowOpen();
     }
 
-    const std::unordered_map<std::string, bool>& experimentalFeatures() const { return m_features.experimentalFeatures; }
-    const std::unordered_map<std::string, bool>& internalDebugFeatures() const { return m_features.internalDebugFeatures; }
-
     const std::unordered_map<std::string, bool>& boolWebPreferenceFeatures() const { return m_features.boolWebPreferenceFeatures; }
     const std::unordered_map<std::string, double>& doubleWebPreferenceFeatures() const { return m_features.doubleWebPreferenceFeatures; }
     const std::unordered_map<std::string, uint32_t>& uint32WebPreferenceFeatures() const { return m_features.uint32WebPreferenceFeatures; }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to