Title: [222394] trunk
Revision
222394
Author
[email protected]
Date
2017-09-22 11:11:51 -0700 (Fri, 22 Sep 2017)

Log Message

Remove build-webkit's notion of feature flags having a default value
https://bugs.webkit.org/show_bug.cgi?id=177338

Reviewed by Alex Christensen.

.:

Add an ENABLE_EXPERIMENTAL_FEATURES flag and use it to enable certain features.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/WebKit:

Use ENABLE_EXPERIMENTAL_FEATURES instead of ENABLE_DEVELOPER_MODE to enable runtime
experimental features.

* Shared/WebPreferencesDefinitions.h:

Tools:

Delegate feature flag default values to the build system.
(FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(Factory.__init__):
Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
bots instead of --default-cmake-features.

* Scripts/build-webkit:
(cMakeArgsFromFeatures):
Default feature values to 'undef'.
Remove the --default-cmake-features argument; it is now the default.
Add --no-experimental-features to replace it.
Stop printing the default feature flag value in the help.
Avoid propagating undefined values to the build system;
only mention flags that are overridden on the command line.

This has the nice side effect of using the default CMake features
for CMake builds, but still allowing toggling of them using the
prettier --FEATURE and --no-FEATURE arguments.

* Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject):
No longer need to suppress CMake warnings about unused arguments.

* Scripts/webkitperl/FeatureList.pm:
Remove the default values from the feature list.

Modified Paths

Diff

Modified: trunk/ChangeLog (222393 => 222394)


--- trunk/ChangeLog	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/ChangeLog	2017-09-22 18:11:51 UTC (rev 222394)
@@ -1,3 +1,16 @@
+2017-09-22  Tim Horton <[email protected]> and Michael Catanzaro <[email protected]>
+
+        Remove build-webkit's notion of feature flags having a default value
+        https://bugs.webkit.org/show_bug.cgi?id=177338
+
+        Reviewed by Alex Christensen.
+
+        Add an ENABLE_EXPERIMENTAL_FEATURES flag and use it to enable certain features.
+
+        * Source/cmake/OptionsGTK.cmake:
+        * Source/cmake/OptionsWPE.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+
 2017-09-20  Keith Miller  <[email protected]>
 
         JSC should use unified sources for platform specific files.

Modified: trunk/Source/WebKit/ChangeLog (222393 => 222394)


--- trunk/Source/WebKit/ChangeLog	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Source/WebKit/ChangeLog	2017-09-22 18:11:51 UTC (rev 222394)
@@ -1,3 +1,15 @@
+2017-09-22  Tim Horton <[email protected]> and Michael Catanzaro <[email protected]>
+
+        Remove build-webkit's notion of feature flags having a default value
+        https://bugs.webkit.org/show_bug.cgi?id=177338
+
+        Reviewed by Alex Christensen.
+
+        Use ENABLE_EXPERIMENTAL_FEATURES instead of ENABLE_DEVELOPER_MODE to enable runtime
+        experimental features.
+
+        * Shared/WebPreferencesDefinitions.h:
+
 2017-09-22  Chris Dumez  <[email protected]>
 
         Use high resolution timestamp for event time

Modified: trunk/Source/WebKit/Shared/WebPreferencesDefinitions.h (222393 => 222394)


--- trunk/Source/WebKit/Shared/WebPreferencesDefinitions.h	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Source/WebKit/Shared/WebPreferencesDefinitions.h	2017-09-22 18:11:51 UTC (rev 222394)
@@ -348,9 +348,8 @@
 #define FOR_EACH_WEBKIT_DEBUG_UINT32_PREFERENCE(macro) \
     macro(VisibleDebugOverlayRegions, visibleDebugOverlayRegions, UInt32, uint32_t, 0, "", "")
 
-// Our Xcode build system does not currently have any concept of DEVELOPER_MODE.
 // Cocoa ports must disable experimental features on release branches for now.
-#if ENABLE(DEVELOPER_MODE) || PLATFORM(COCOA)
+#if ENABLE(EXPERIMENTAL_FEATURES) || PLATFORM(COCOA)
 #define DEFAULT_EXPERIMENTAL_FEATURES_ENABLED true
 #else
 #define DEFAULT_EXPERIMENTAL_FEATURES_ENABLED false
@@ -358,13 +357,16 @@
 
 // For experimental features:
 // - The type should be boolean.
-// - You must provide the last two parameters for all experimental features. They
-//   are the text exposed to the user from the WebKit client.
-// - They should be alphabetically ordered by the human readable text (the first string).
-// - The default value may be either false (for unstable features) or
+// - You must provide the last two parameters for all experimental features.
+//   They are the text exposed to the user from the WebKit client.
+// - They should be *alphabetically ordered* by the human readable text (the
+//   first string).
+// - The default value may be either false (for really unstable features) or
 //   DEFAULT_EXPERIMENTAL_FEATURES_ENABLED (for features that are ready for
-//   wider testing).
-
+//   wider testing). *The default value may not be true*. That would no longer
+//   be experimental.
+//
+// Actually read the comment above before modifying this list!
 #define FOR_EACH_WEBKIT_EXPERIMENTAL_FEATURE_PREFERENCE(macro) \
     macro(ConstantPropertiesEnabled, constantPropertiesEnabled, Bool, bool, true, "Constant Properties", "Enable CSS constant() properties") \
     macro(DisplayContentsEnabled, displayContentsEnabled, Bool, bool, false, "CSS display: contents", "Enable CSS display: contents support") \

Modified: trunk/Source/cmake/OptionsGTK.cmake (222393 => 222394)


--- trunk/Source/cmake/OptionsGTK.cmake	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Source/cmake/OptionsGTK.cmake	2017-09-22 18:11:51 UTC (rev 222394)
@@ -157,6 +157,8 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PRIVATE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PUBLIC_SUFFIX_LIST PRIVATE ON)
@@ -166,6 +168,7 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USER_MESSAGE_HANDLERS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL PRIVATE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
 
 include(GStreamerDefinitions)
 

Modified: trunk/Source/cmake/OptionsWPE.cmake (222393 => 222394)


--- trunk/Source/cmake/OptionsWPE.cmake	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Source/cmake/OptionsWPE.cmake	2017-09-22 18:11:51 UTC (rev 222394)
@@ -14,7 +14,7 @@
 WEBKIT_OPTION_DEFINE(EXPORT_DEPRECATED_WEBKIT2_C_API "Whether to export the WebKit2 C API" PRIVATE OFF)
 
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PUBLIC ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SELECTORS_LEVEL4 PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION PUBLIC OFF)
@@ -24,7 +24,7 @@
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS PRIVATE OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PUBLIC_SUFFIX_LIST PRIVATE ON)

Modified: trunk/Source/cmake/WebKitFeatures.cmake (222393 => 222394)


--- trunk/Source/cmake/WebKitFeatures.cmake	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Source/cmake/WebKitFeatures.cmake	2017-09-22 18:11:51 UTC (rev 222394)
@@ -343,3 +343,6 @@
     )
     file(REMOVE "${CMAKE_BINARY_DIR}/cmakeconfig.h.tmp")
 endmacro()
+
+option(ENABLE_EXPERIMENTAL_FEATURES "Enable experimental features" OFF)
+SET_AND_EXPOSE_TO_BUILD(ENABLE_EXPERIMENTAL_FEATURES ${ENABLE_EXPERIMENTAL_FEATURES})

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json (222393 => 222394)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json	2017-09-22 18:11:51 UTC (rev 222394)
@@ -307,13 +307,13 @@
                     {
                       "name": "GTK Linux 64-bit Release Debian Stable (Build)", "type": "Build", "builddir": "gtk-linux-64-release-debian",
                       "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
-                      "additionalArguments": ["--default-cmake-features"],
+                      "additionalArguments": ["--no-experimental-features"],
                       "slavenames": ["gtk-linux-slave-10"]
                     },
                     {
                       "name": "GTK Linux 64-bit Release Ubuntu LTS (Build)", "type": "Build", "builddir": "gtk-linux-64-release-ubuntu",
                       "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
-                      "additionalArguments": ["--default-cmake-features"],
+                      "additionalArguments": ["--no-experimental-features"],
                       "slavenames": ["gtk-linux-slave-11"]
                     },
                     {

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg (222393 => 222394)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2017-09-22 18:11:51 UTC (rev 222394)
@@ -871,7 +871,7 @@
         self.addStep(DeleteStaleBuildFiles())
         if platform == "win":
             self.addStep(InstallWin32Dependencies())
-        if platform == "gtk" and additionalArguments != ["--default-cmake-features"]:
+        if platform == "gtk" and additionalArguments != ["--no-experimental-features"]:
             self.addStep(InstallGtkDependencies())
         if platform == "wpe":
             self.addStep(InstallWpeDependencies())

Modified: trunk/Tools/ChangeLog (222393 => 222394)


--- trunk/Tools/ChangeLog	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/ChangeLog	2017-09-22 18:11:51 UTC (rev 222394)
@@ -1,3 +1,39 @@
+2017-09-22  Tim Horton <[email protected]> and Michael Catanzaro <[email protected]>
+
+        Remove build-webkit's notion of feature flags having a default value
+        https://bugs.webkit.org/show_bug.cgi?id=177338
+
+        Reviewed by Alex Christensen.
+
+        Delegate feature flag default values to the build system.
+        (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
+
+        * BuildSlaveSupport/build.webkit.org-config/config.json:
+        * BuildSlaveSupport/build.webkit.org-config/master.cfg:
+        (Factory.__init__):
+        Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
+        bots instead of --default-cmake-features.
+
+        * Scripts/build-webkit:
+        (cMakeArgsFromFeatures):
+        Default feature values to 'undef'.
+        Remove the --default-cmake-features argument; it is now the default.
+        Add --no-experimental-features to replace it.
+        Stop printing the default feature flag value in the help.
+        Avoid propagating undefined values to the build system;
+        only mention flags that are overridden on the command line.
+
+        This has the nice side effect of using the default CMake features
+        for CMake builds, but still allowing toggling of them using the
+        prettier --FEATURE and --no-FEATURE arguments.
+
+        * Scripts/webkitdirs.pm:
+        (generateBuildSystemFromCMakeProject):
+        No longer need to suppress CMake warnings about unused arguments.
+
+        * Scripts/webkitperl/FeatureList.pm:
+        Remove the default values from the feature list.
+
 2017-09-21  Joseph Pecoraro  <[email protected]>
 
         Unreviewed, add the ability to skip a test262 test.
@@ -393,7 +429,6 @@
         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
         (TEST):
 
->>>>>>> .r222309
 2017-09-20  Alex Christensen  <[email protected]>
 
         Add infrastructure for adding custom headers to requests per website

Modified: trunk/Tools/Scripts/build-webkit (222393 => 222394)


--- trunk/Tools/Scripts/build-webkit	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/Scripts/build-webkit	2017-09-22 18:11:51 UTC (rev 222394)
@@ -52,7 +52,6 @@
 
 my $showHelp = 0;
 my $clean = 0;
-my $defaultCMakeFeatures = 0;
 my $minimal = 0;
 my $installHeaders;
 my $installLibs;
@@ -62,6 +61,7 @@
 my $_onlyWebKitProject_ = 0;
 my $coverageSupport = 0;
 my $shouldRunStaticAnalyzer = 0;
+my $noExperimentalFeatures = 0;
 my $startTime = time();
 my $archs32bit = 0;
 
@@ -79,9 +79,10 @@
     }
 }
 
-# Initialize values from defaults
+# Feature flags default to undefined, where they will inherit the default value
+# specified by the build system, or to 'off' if --minimal is specified.
 foreach (@features) {
-    ${$_->{value}} = ($minimal ? 0 : $_->{default});
+    ${$_->{value}} = ($minimal ? 0 : undef);
 }
 
 my $programName = basename($0);
@@ -106,12 +107,12 @@
 
   --inspector-frontend              Copy Web Inspector user interface resources to the build directory
 
-  --prefix=<path>                   Set installation prefix to the given path (Gtk/Efl only)
+  --prefix=<path>                   Set installation prefix to the given path (CMake only, except Windows)
   --makeargs=<arguments>            Optional Makefile flags
   --cmakeargs=<arguments>           One or more optional CMake flags (e.g. --cmakeargs="-DFOO=bar -DCMAKE_PREFIX_PATH=/usr/local")
 
   --minimal                         No optional features, unless explicitly enabled
-  --default-cmake-features          Use the default CMake features enabled for the port (CMake based ports)
+  --no-experimental-features        No experimental features, unless explicitly enabled (CMake only)
 
   --only-webkit                     Build only the WebKit project
 
@@ -129,13 +130,13 @@
     'only-webkit' => \$onlyWebKitProject,
     'coverage' => \$coverageSupport,
     'analyze' => \$shouldRunStaticAnalyzer,
-    'default-cmake-features' => \$defaultCMakeFeatures,
+    'no-experimental-features' => \$noExperimentalFeatures,
 );
 
 # Build usage text and options list from features
 foreach (@features) {
     my $opt = sprintf("%-35s", "  --[no-]$_->{option}");
-    $usage .= "$opt $_->{desc} (default: $_->{default})\n";
+    $usage .= "$opt $_->{desc}\n";
     $options{"$_->{option}!"} = $_->{value};
 }
 
@@ -176,15 +177,15 @@
 
 if (isAppleCocoaWebKit()) {
     push @options, XcodeOptions();
-    sub option($$$)
+    sub option($$)
     {
-        my ($feature, $isEnabled, $defaultValue) = @_;
-        return "" if $defaultValue == $isEnabled;
+        my ($feature, $isEnabled) = @_;
+        return "" if not defined $isEnabled;
         return $feature . "=" . ($isEnabled ? $feature : "");
     }
 
     foreach (@features) {
-        my $option = option($_->{define}, ${$_->{value}}, $_->{default});
+        my $option = option($_->{define}, ${$_->{value}});
         push @options, $option unless $option eq "";
     }
 
@@ -249,7 +250,7 @@
     my $maxCPULoad = maxCPULoad() if $makeArgs !~ /-l\s*\d+\.?\d*/;
     $makeArgs .= " -l" . maxCPULoad() if defined $maxCPULoad;
 
-    # We remove CMakeCache to avoid the bots to reuse cached flags when
+    # We remove CMakeCache to avoid the bots reusing cached flags when
     # we enable new features. This forces a reconfiguration.
     my @featureArgs = cMakeArgsFromFeatures();
     removeCMakeCache(@featureArgs);
@@ -346,15 +347,22 @@
 sub cMakeArgsFromFeatures()
 {
     my @args;
-    if (!$defaultCMakeFeatures) {
-        foreach (@features) {
-            my $featureName = $_->{define};
-            if ($featureName) {
-                my $featureEnabled = ${$_->{value}} ? "ON" : "OFF";
+
+    if (!$noExperimentalFeatures) {
+        push @args, "-DENABLE_EXPERIMENTAL_FEATURES=ON";
+    }
+
+    foreach (@features) {
+        my $featureName = $_->{define};
+        if ($featureName) {
+            my $featureValue = ${$_->{value}};
+            if (defined $featureValue) {
+                my $featureEnabled = $featureValue ? "ON" : "OFF";
                 push @args, "-D$featureName=$featureEnabled";
             }
         }
     }
+
     return @args;
 }
 

Modified: trunk/Tools/Scripts/webkitdirs.pm (222393 => 222394)


--- trunk/Tools/Scripts/webkitdirs.pm	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/Scripts/webkitdirs.pm	2017-09-22 18:11:51 UTC (rev 222394)
@@ -2072,8 +2072,6 @@
     # Some ports have production mode, but build-webkit should always use developer mode.
     push @args, "-DDEVELOPER_MODE=ON" if isGtk() || isJSCOnly() || isWPE();
 
-    # Don't warn variables which aren't used by cmake ports.
-    push @args, "--no-warn-unused-cli";
     push @args, @cmakeArgs if @cmakeArgs;
 
     my $cmakeSourceDir = isCygwin() ? windowsSourceDir() : sourceDir();

Modified: trunk/Tools/Scripts/webkitperl/FeatureList.pm (222393 => 222394)


--- trunk/Tools/Scripts/webkitperl/FeatureList.pm	2017-09-22 17:45:09 UTC (rev 222393)
+++ trunk/Tools/Scripts/webkitperl/FeatureList.pm	2017-09-22 18:11:51 UTC (rev 222394)
@@ -143,253 +143,253 @@
 
 my @features = (
     { option => "3d-rendering", desc => "Toggle 3D Rendering support",
-      define => "ENABLE_3D_TRANSFORMS", default => (isAppleCocoaWebKit() || isIOSWebKit() || isGtk() || isWPE()), value => \$threeDTransformsSupport },
+      define => "ENABLE_3D_TRANSFORMS", value => \$threeDTransformsSupport },
 
     { option => "accelerated-2d-canvas", desc => "Toggle Accelerated 2D Canvas support",
-      define => "ENABLE_ACCELERATED_2D_CANVAS", default => isWPE(), value => \$accelerated2DCanvasSupport },
+      define => "ENABLE_ACCELERATED_2D_CANVAS", value => \$accelerated2DCanvasSupport },
 
     { option => "allinone-build", desc => "Toggle all-in-one build",
-      define => "ENABLE_ALLINONE_BUILD", default => isWindows(), value => \$allInOneBuild },
+      define => "ENABLE_ALLINONE_BUILD", value => \$allInOneBuild },
 
     { option => "attachment-element", desc => "Toggle Attachment Element support",
-      define => "ENABLE_ATTACHMENT_ELEMENT", default => 0, value => \$attachmentElementSupport },
+      define => "ENABLE_ATTACHMENT_ELEMENT", value => \$attachmentElementSupport },
 
     { option => "channel-messaging", desc => "Toggle Channel Messaging support",
-      define => "ENABLE_CHANNEL_MESSAGING", default => 1, value => \$channelMessagingSupport },
+      define => "ENABLE_CHANNEL_MESSAGING", value => \$channelMessagingSupport },
 
     { option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support",
-      define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },
+      define => "ENABLE_CSS_BOX_DECORATION_BREAK", value => \$cssBoxDecorationBreakSupport },
 
     { option => "css-compositing", desc => "Toggle CSS Compositing support",
-      define => "ENABLE_CSS_COMPOSITING", default => isAppleWebKit(), value => \$cssCompositingSupport },
+      define => "ENABLE_CSS_COMPOSITING", value => \$cssCompositingSupport },
 
     { option => "css-device-adaptation", desc => "Toggle CSS Device Adaptation support",
-      define => "ENABLE_CSS_DEVICE_ADAPTATION", default => 0, value => \$cssDeviceAdaptation },
+      define => "ENABLE_CSS_DEVICE_ADAPTATION", value => \$cssDeviceAdaptation },
 
     { option => "css-image-orientation", desc => "Toggle CSS image-orientation support",
-      define => "ENABLE_CSS_IMAGE_ORIENTATION", default => isGtk(), value => \$cssImageOrientationSupport },
+      define => "ENABLE_CSS_IMAGE_ORIENTATION", value => \$cssImageOrientationSupport },
 
     { option => "css-image-resolution", desc => "Toggle CSS image-resolution support",
-      define => "ENABLE_CSS_IMAGE_RESOLUTION", default => isGtk(), value => \$cssImageResolutionSupport },
+      define => "ENABLE_CSS_IMAGE_RESOLUTION", value => \$cssImageResolutionSupport },
 
     { option => "css-image-set", desc => "Toggle CSS image-set support",
-      define => "ENABLE_CSS_IMAGE_SET", default => (isGtk() || isWPE()), value => \$cssImageSetSupport },
+      define => "ENABLE_CSS_IMAGE_SET", value => \$cssImageSetSupport },
 
     { option => "css-regions", desc => "Toggle CSS Regions support",
-      define => "ENABLE_CSS_REGIONS", default => 0, value => \$cssRegionsSupport },
+      define => "ENABLE_CSS_REGIONS", value => \$cssRegionsSupport },
 
     { option => "css-shapes", desc => "Toggle CSS Shapes support",
-      define => "ENABLE_CSS_SHAPES", default => 1, value => \$cssShapesSupport },
+      define => "ENABLE_CSS_SHAPES", value => \$cssShapesSupport },
 
     { option => "css3-text", desc => "Toggle CSS3 Text support",
-      define => "ENABLE_CSS3_TEXT", default => isGtk(), value => \$css3TextSupport },
+      define => "ENABLE_CSS3_TEXT", value => \$css3TextSupport },
 
     { option => "custom-elements", desc => "Toggle custom elements support",
-      define => "ENABLE_CUSTOM_ELEMENTS", default => 1, value => \$customElementsSupport },
+      define => "ENABLE_CUSTOM_ELEMENTS", value => \$customElementsSupport },
 
     { option => "custom-scheme-handler", desc => "Toggle Custom Scheme Handler support",
-      define => "ENABLE_CUSTOM_SCHEME_HANDLER", default => 0, value => \$customSchemeHandlerSupport },
+      define => "ENABLE_CUSTOM_SCHEME_HANDLER", value => \$customSchemeHandlerSupport },
 
     { option => "data-transfer-items", desc => "Toggle Data Transfer Items support",
-      define => "ENABLE_DATA_TRANSFER_ITEMS", default => 0, value => \$dataTransferItemsSupport },
+      define => "ENABLE_DATA_TRANSFER_ITEMS", value => \$dataTransferItemsSupport },
 
     { option => "datalist-element", desc => "Toggle Datalist Element support",
-      define => "ENABLE_DATALIST_ELEMENT", default => 0, value => \$datalistElementSupport },
+      define => "ENABLE_DATALIST_ELEMENT", value => \$datalistElementSupport },
 
     { option => "device-orientation", desc => "Toggle Device Orientation support",
-      define => "ENABLE_DEVICE_ORIENTATION", default => (isIOSWebKit() || isWPE()), value => \$deviceOrientationSupport },
+      define => "ENABLE_DEVICE_ORIENTATION", value => \$deviceOrientationSupport },
 
     { option => "dom4-events-constructor", desc => "Expose DOM4 Events constructors",
-      define => "ENABLE_DOM4_EVENTS_CONSTRUCTOR", default => (isAppleWebKit() || isGtk()), value => \$dom4EventsConstructor },
+      define => "ENABLE_DOM4_EVENTS_CONSTRUCTOR", value => \$dom4EventsConstructor },
 
     { option => "download-attribute", desc => "Toggle Download Attribute support",
-      define => "ENABLE_DOWNLOAD_ATTRIBUTE", default => isGtk(), value => \$downloadAttributeSupport },
+      define => "ENABLE_DOWNLOAD_ATTRIBUTE", value => \$downloadAttributeSupport },
 
     { option => "encrypted-media", desc => "Toggle EME V3 support",
-      define => "ENABLE_ENCRYPTED_MEDIA", default => isWPE(), value => \$encryptedMediaSupport },
+      define => "ENABLE_ENCRYPTED_MEDIA", value => \$encryptedMediaSupport },
 
     { option => "fetch-api", desc => "Toggle Fetch API support",
-      define => "ENABLE_FETCH_API", default => 1, value => \$fetchAPISupport },
+      define => "ENABLE_FETCH_API", value => \$fetchAPISupport },
 
     { option => "font-load-events", desc => "Toggle Font Load Events support",
-      define => "ENABLE_FONT_LOAD_EVENTS", default => 0, value => \$fontLoadEventsSupport },
+      define => "ENABLE_FONT_LOAD_EVENTS", value => \$fontLoadEventsSupport },
 
     { option => "ftl-jit", desc => "Toggle FTL JIT support",
-      define => "ENABLE_FTL_JIT", default => ((isARM64() || isX86_64()) && (isGtk() || isJSCOnly() || isWPE())) , value => \$ftlJITSupport },
+      define => "ENABLE_FTL_JIT", value => \$ftlJITSupport },
 
     { option => "ftpdir", desc => "Toggle FTP Directory support",
-      define => "ENABLE_FTPDIR", default => 1, value => \$ftpDirSupport },
+      define => "ENABLE_FTPDIR", value => \$ftpDirSupport },
 
     { option => "fullscreen-api", desc => "Toggle Fullscreen API support",
-      define => "ENABLE_FULLSCREEN_API", default => (isAppleCocoaWebKit() || isGtk()), value => \$fullscreenAPISupport },
+      define => "ENABLE_FULLSCREEN_API", value => \$fullscreenAPISupport },
 
     { option => "gamepad", desc => "Toggle Gamepad support",
-      define => "ENABLE_GAMEPAD", default => 0, value => \$gamepadSupport },
+      define => "ENABLE_GAMEPAD", value => \$gamepadSupport },
 
     { option => "geolocation", desc => "Toggle Geolocation support",
-      define => "ENABLE_GEOLOCATION", default => (isAppleWebKit() || isIOSWebKit() || isGtk()), value => \$geolocationSupport },
+      define => "ENABLE_GEOLOCATION", value => \$geolocationSupport },
 
     { option => "gstreamer-gl", desc => "Toggle GStreamer GL support",
-      define => "USE_GSTREAMER_GL", default => (isGtk() || isWPE()), value => \$gstreamerGLSupport },
+      define => "USE_GSTREAMER_GL", value => \$gstreamerGLSupport },
 
     { option => "high-dpi-canvas", desc => "Toggle High DPI Canvas support",
-      define => "ENABLE_HIGH_DPI_CANVAS", default => (isAppleWebKit()), value => \$highDPICanvasSupport },
+      define => "ENABLE_HIGH_DPI_CANVAS", value => \$highDPICanvasSupport },
 
     { option => "icon-database", desc => "Toggle Icondatabase support",
-      define => "ENABLE_ICONDATABASE", default => !isIOSWebKit(), value => \$icondatabaseSupport },
+      define => "ENABLE_ICONDATABASE", value => \$icondatabaseSupport },
 
     { option => "indexed-database", desc => "Toggle Indexed Database support",
-      define => "ENABLE_INDEXED_DATABASE", default => (isAppleCocoaWebKit() || isGtk() || isWPE()), value => \$indexedDatabaseSupport },
+      define => "ENABLE_INDEXED_DATABASE", value => \$indexedDatabaseSupport },
 
     { option => "input-speech", desc => "Toggle Input Speech support",
-      define => "ENABLE_INPUT_SPEECH", default => 0, value => \$inputSpeechSupport },
+      define => "ENABLE_INPUT_SPEECH", value => \$inputSpeechSupport },
 
     { option => "input-type-color", desc => "Toggle Input Type Color support",
-      define => "ENABLE_INPUT_TYPE_COLOR", default => isGtk(), value => \$inputTypeColorSupport },
+      define => "ENABLE_INPUT_TYPE_COLOR", value => \$inputTypeColorSupport },
 
     { option => "input-type-date", desc => "Toggle Input Type Date support",
-      define => "ENABLE_INPUT_TYPE_DATE", default => 0, value => \$inputTypeDateSupport },
+      define => "ENABLE_INPUT_TYPE_DATE", value => \$inputTypeDateSupport },
 
     { option => "input-type-datetime", desc => "Toggle broken Input Type Datetime support",
-      define => "ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE", default => 0, value => \$inputTypeDatetimeSupport },
+      define => "ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE", value => \$inputTypeDatetimeSupport },
 
     { option => "input-type-datetimelocal", desc => "Toggle Input Type Datetimelocal support",
-      define => "ENABLE_INPUT_TYPE_DATETIMELOCAL", default => 0, value => \$inputTypeDatetimelocalSupport },
+      define => "ENABLE_INPUT_TYPE_DATETIMELOCAL", value => \$inputTypeDatetimelocalSupport },
 
     { option => "input-type-month", desc => "Toggle Input Type Month support",
-      define => "ENABLE_INPUT_TYPE_MONTH", default => 0, value => \$inputTypeMonthSupport },
+      define => "ENABLE_INPUT_TYPE_MONTH", value => \$inputTypeMonthSupport },
 
     { option => "input-type-time", desc => "Toggle Input Type Time support",
-      define => "ENABLE_INPUT_TYPE_TIME", default => 0, value => \$inputTypeTimeSupport },
+      define => "ENABLE_INPUT_TYPE_TIME", value => \$inputTypeTimeSupport },
 
     { option => "input-type-week", desc => "Toggle Input Type Week support",
-      define => "ENABLE_INPUT_TYPE_WEEK", default => 0, value => \$inputTypeWeekSupport },
+      define => "ENABLE_INPUT_TYPE_WEEK", value => \$inputTypeWeekSupport },
 
     { option => "intl", desc => "Toggle Intl support",
-      define => "ENABLE_INTL", default => 1, value => \$intlSupport },
+      define => "ENABLE_INTL", value => \$intlSupport },
 
     { option => "jit", desc => "Enable just-in-time _javascript_ support",
-      define => "ENABLE_JIT", default => 1, value => \$jitSupport },
+      define => "ENABLE_JIT", value => \$jitSupport },
 
     { option => "legacy-encrypted-media", desc => "Toggle Legacy EME V2 support",
-      define => "ENABLE_LEGACY_ENCRYPTED_MEDIA", default => 0, value => \$legacyEncryptedMediaSupport },
+      define => "ENABLE_LEGACY_ENCRYPTED_MEDIA", value => \$legacyEncryptedMediaSupport },
 
     { option => "legacy-vendor-prefixes", desc => "Toggle Legacy Vendor Prefix support",
-      define => "ENABLE_LEGACY_VENDOR_PREFIXES", default => 1, value => \$legacyVendorPrefixSupport },
+      define => "ENABLE_LEGACY_VENDOR_PREFIXES", value => \$legacyVendorPrefixSupport },
 
     { option => "legacy-web-audio", desc => "Toggle Legacy Web Audio support",
-      define => "ENABLE_LEGACY_WEB_AUDIO", default => 1, value => \$legacyWebAudioSupport },
+      define => "ENABLE_LEGACY_WEB_AUDIO", value => \$legacyWebAudioSupport },
 
     { option => "link-prefetch", desc => "Toggle Link Prefetch support",
-      define => "ENABLE_LINK_PREFETCH", default => isGtk(), value => \$linkPrefetchSupport },
+      define => "ENABLE_LINK_PREFETCH", value => \$linkPrefetchSupport },
 
     { option => "mathml", desc => "Toggle MathML support",
-      define => "ENABLE_MATHML", default => 1, value => \$mathmlSupport },
+      define => "ENABLE_MATHML", value => \$mathmlSupport },
 
     { option => "media-capture", desc => "Toggle Media Capture support",
-      define => "ENABLE_MEDIA_CAPTURE", default => 0, value => \$mediaCaptureSupport },
+      define => "ENABLE_MEDIA_CAPTURE", value => \$mediaCaptureSupport },
 
     { option => "media-source", desc => "Toggle Media Source support",
-      define => "ENABLE_MEDIA_SOURCE", default => (isGtk() || isWPE()), value => \$mediaSourceSupport },
+      define => "ENABLE_MEDIA_SOURCE", value => \$mediaSourceSupport },
 
     { option => "media-statistics", desc => "Toggle Media Statistics support",
-      define => "ENABLE_MEDIA_STATISTICS", default => 0, value => \$mediaStatisticsSupport },
+      define => "ENABLE_MEDIA_STATISTICS", value => \$mediaStatisticsSupport },
 
     { option => "media-stream", desc => "Toggle Media Stream support",
-      define => "ENABLE_MEDIA_STREAM", default => isGtk(), value => \$mediaStreamSupport },
+      define => "ENABLE_MEDIA_STREAM", value => \$mediaStreamSupport },
 
     { option => "meter-element", desc => "Toggle Meter Element support",
-      define => "ENABLE_METER_ELEMENT", default => !isAppleWinWebKit(), value => \$meterElementSupport },
+      define => "ENABLE_METER_ELEMENT", value => \$meterElementSupport },
 
     { option => "mhtml", desc => "Toggle MHTML support",
-      define => "ENABLE_MHTML", default => (isGtk() || isWPE()), value => \$mhtmlSupport },
+      define => "ENABLE_MHTML", value => \$mhtmlSupport },
 
     { option => "mouse-cursor-scale", desc => "Toggle Scaled mouse cursor support",
-      define => "ENABLE_MOUSE_CURSOR_SCALE", default => 0, value => \$mouseCursorScaleSupport },
+      define => "ENABLE_MOUSE_CURSOR_SCALE", value => \$mouseCursorScaleSupport },
 
     { option => "navigator-content-utils", desc => "Toggle Navigator Content Utils support",
-      define => "ENABLE_NAVIGATOR_CONTENT_UTILS", default => 0, value => \$registerProtocolHandlerSupport },
+      define => "ENABLE_NAVIGATOR_CONTENT_UTILS", value => \$registerProtocolHandlerSupport },
 
-    { option => "navigator-hardware-concurrency", desc => "Toggle Navigator hardware concurrenct support",
-      define => "ENABLE_NAVIGATOR_HWCONCURRENCY", default => 1, value => \$hardwareConcurrencySupport },
+    { option => "navigator-hardware-concurrency", desc => "Toggle Navigator hardware concurrency support",
+      define => "ENABLE_NAVIGATOR_HWCONCURRENCY", value => \$hardwareConcurrencySupport },
 
     { option => "netscape-plugin-api", desc => "Toggle Netscape Plugin API support",
-      define => "ENABLE_NETSCAPE_PLUGIN_API", default => (!isIOSWebKit() && !isWPE()), value => \$netscapePluginAPISupport },
+      define => "ENABLE_NETSCAPE_PLUGIN_API", value => \$netscapePluginAPISupport },
 
     { option => "notifications", desc => "Toggle Notifications support",
-      define => "ENABLE_NOTIFICATIONS", default => isGtk(), value => \$notificationsSupport },
+      define => "ENABLE_NOTIFICATIONS", value => \$notificationsSupport },
 
     { option => "orientation-events", desc => "Toggle Orientation Events support",
-      define => "ENABLE_ORIENTATION_EVENTS", default => isIOSWebKit(), value => \$orientationEventsSupport },
+      define => "ENABLE_ORIENTATION_EVENTS", value => \$orientationEventsSupport },
 
     { option => "performance-timeline", desc => "Toggle Performance Timeline support",
-      define => "ENABLE_PERFORMANCE_TIMELINE", default => (isGtk() || isWPE()), value => \$performanceTimelineSupport },
+      define => "ENABLE_PERFORMANCE_TIMELINE", value => \$performanceTimelineSupport },
 
     { option => "proximity-events", desc => "Toggle Proximity Events support",
-      define => "ENABLE_PROXIMITY_EVENTS", default => 0, value => \$proximityEventsSupport },
+      define => "ENABLE_PROXIMITY_EVENTS", value => \$proximityEventsSupport },
 
     { option => "quota", desc => "Toggle Quota support",
-      define => "ENABLE_QUOTA", default => 0, value => \$quotaSupport },
+      define => "ENABLE_QUOTA", value => \$quotaSupport },
 
     { option => "readableStreamAPI", desc => "Toggle ReadableStream API support",
-      define => "ENABLE_READABLE_STREAM_API", default => 1, value => \$readableStreamAPISupport },
+      define => "ENABLE_READABLE_STREAM_API", value => \$readableStreamAPISupport },
 
     { option => "readableByteStreamAPI", desc => "Toggle support of ByteStream part of ReadableStream API",
-      define => "ENABLE_READABLE_BYTE_STREAM_API", default => 1, value => \$readableByteStreamAPISupport },
+      define => "ENABLE_READABLE_BYTE_STREAM_API", value => \$readableByteStreamAPISupport },
 
     { option => "resolution-media-query", desc => "Toggle resolution media query support",
-      define => "ENABLE_RESOLUTION_MEDIA_QUERY", default => 0, value => \$resolutionMediaQuerySupport },
+      define => "ENABLE_RESOLUTION_MEDIA_QUERY", value => \$resolutionMediaQuerySupport },
 
     { option => "scripted-speech", desc => "Toggle Scripted Speech support",
-      define => "ENABLE_SCRIPTED_SPEECH", default => 0, value => \$scriptedSpeechSupport },
+      define => "ENABLE_SCRIPTED_SPEECH", value => \$scriptedSpeechSupport },
 
     { option => "subtle-crypto", desc => "Toggle WebCrypto Subtle-Crypto support",
-      define => "ENABLE_SUBTLE_CRYPTO", default => (isGtk() || isAppleCocoaWebKit() || isIOSWebKit() || isWPE()), value => \$subtleCrypto },
+      define => "ENABLE_SUBTLE_CRYPTO", value => \$subtleCrypto },
 
     { option => "svg-fonts", desc => "Toggle SVG Fonts support",
-      define => "ENABLE_SVG_FONTS", default => 1, value => \$svgFontsSupport },
+      define => "ENABLE_SVG_FONTS", value => \$svgFontsSupport },
 
     { option => "system-malloc", desc => "Toggle system allocator instead of bmalloc",
-      define => "USE_SYSTEM_MALLOC", default => 0, value => \$systemMallocSupport },
+      define => "USE_SYSTEM_MALLOC", value => \$systemMallocSupport },
 
     { option => "touch-events", desc => "Toggle Touch Events support",
-      define => "ENABLE_TOUCH_EVENTS", default => (isIOSWebKit() || isGtk() || isWPE()), value => \$touchEventsSupport },
+      define => "ENABLE_TOUCH_EVENTS", value => \$touchEventsSupport },
 
     { option => "touch-icon-loading", desc => "Toggle Touch Icon Loading Support",
-      define => "ENABLE_TOUCH_ICON_LOADING", default => 0, value => \$touchIconLoadingSupport },
+      define => "ENABLE_TOUCH_ICON_LOADING", value => \$touchIconLoadingSupport },
 
     { option => "touch-slider", desc => "Toggle Touch Slider support",
-      define => "ENABLE_TOUCH_SLIDER", default => 0, value => \$touchSliderSupport },
+      define => "ENABLE_TOUCH_SLIDER", value => \$touchSliderSupport },
 
     { option => "video", desc => "Toggle Video support",
-      define => "ENABLE_VIDEO", default => (isAppleWebKit() || isGtk() || isWPE()), value => \$videoSupport },
+      define => "ENABLE_VIDEO", value => \$videoSupport },
 
     { option => "video-track", desc => "Toggle Video Track support",
-      define => "ENABLE_VIDEO_TRACK", default => (isAppleWebKit() || isGtk() || isWPE()), value => \$videoTrackSupport },
+      define => "ENABLE_VIDEO_TRACK", value => \$videoTrackSupport },
 
     { option => "web-animations", desc => "Toggle Web Animations support",
-      define => "ENABLE_WEB_ANIMATIONS", default => 1, value => \$webAnimationsSupport },
+      define => "ENABLE_WEB_ANIMATIONS", value => \$webAnimationsSupport },
 
     { option => "web-audio", desc => "Toggle Web Audio support",
-      define => "ENABLE_WEB_AUDIO", default => (isGtk() || isWPE()), value => \$webAudioSupport },
+      define => "ENABLE_WEB_AUDIO", value => \$webAudioSupport },
 
     { option => "web-rtc", desc => "Toggle WebRTC support",
-      define => "ENABLE_WEB_RTC", default => (isAppleCocoaWebKit() || isIOSWebKit() || isGtk()), value => \$webRTCSupport },
+      define => "ENABLE_WEB_RTC", value => \$webRTCSupport },
 
     { option => "webassembly", desc => "Toggle WebAssembly support",
-      define => "ENABLE_WEBASSEMBLY", default => ((isARM64() || isX86_64()) && (isGtk() || isJSCOnly() || isWPE())) , value => \$webAssemblySupport },
+      define => "ENABLE_WEBASSEMBLY", value => \$webAssemblySupport },
 
     { option => "webgl", desc => "Toggle WebGL support",
-      define => "ENABLE_WEBGL", default => (isAppleCocoaWebKit() || isGtk() || isWPE()), value => \$webglSupport },
+      define => "ENABLE_WEBGL", value => \$webglSupport },
 
     { option => "webgl2", desc => "Toggle WebGL2 support",
-      define => "ENABLE_WEBGL2", default => (isAppleCocoaWebKit() || isWPE()), value => \$webgl2Support },
+      define => "ENABLE_WEBGL2", value => \$webgl2Support },
 
     { option => "writableStreamAPI", desc => "Toggle WritableStream API support",
-      define => "ENABLE_WRITABLE_STREAM_API", default => 1, value => \$writableStreamAPISupport },
+      define => "ENABLE_WRITABLE_STREAM_API", value => \$writableStreamAPISupport },
 
     { option => "xslt", desc => "Toggle XSLT support",
-      define => "ENABLE_XSLT", default => 1, value => \$xsltSupport },
+      define => "ENABLE_XSLT", value => \$xsltSupport },
 );
 
 sub getFeatureOptionList()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to