Changeset 222394 in webkit


Ignore:
Timestamp:
Sep 22, 2017 11:11:51 AM (7 years ago)
Author:
Michael Catanzaro
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.

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r222327 r222394  
     12017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
     2
     3        Remove build-webkit's notion of feature flags having a default value
     4        https://bugs.webkit.org/show_bug.cgi?id=177338
     5
     6        Reviewed by Alex Christensen.
     7
     8        Add an ENABLE_EXPERIMENTAL_FEATURES flag and use it to enable certain features.
     9
     10        * Source/cmake/OptionsGTK.cmake:
     11        * Source/cmake/OptionsWPE.cmake:
     12        * Source/cmake/WebKitFeatures.cmake:
     13
    1142017-09-20  Keith Miller  <keith_miller@apple.com>
    215
  • trunk/Source/WebKit/ChangeLog

    r222392 r222394  
     12017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
     2
     3        Remove build-webkit's notion of feature flags having a default value
     4        https://bugs.webkit.org/show_bug.cgi?id=177338
     5
     6        Reviewed by Alex Christensen.
     7
     8        Use ENABLE_EXPERIMENTAL_FEATURES instead of ENABLE_DEVELOPER_MODE to enable runtime
     9        experimental features.
     10
     11        * Shared/WebPreferencesDefinitions.h:
     12
    1132017-09-22  Chris Dumez  <cdumez@apple.com>
    214
  • trunk/Source/WebKit/Shared/WebPreferencesDefinitions.h

    r222376 r222394  
    349349    macro(VisibleDebugOverlayRegions, visibleDebugOverlayRegions, UInt32, uint32_t, 0, "", "")
    350350
    351 // Our Xcode build system does not currently have any concept of DEVELOPER_MODE.
    352351// Cocoa ports must disable experimental features on release branches for now.
    353 #if ENABLE(DEVELOPER_MODE) || PLATFORM(COCOA)
     352#if ENABLE(EXPERIMENTAL_FEATURES) || PLATFORM(COCOA)
    354353#define DEFAULT_EXPERIMENTAL_FEATURES_ENABLED true
    355354#else
     
    359358// For experimental features:
    360359// - The type should be boolean.
    361 // - You must provide the last two parameters for all experimental features. They
    362 //   are the text exposed to the user from the WebKit client.
    363 // - They should be alphabetically ordered by the human readable text (the first string).
    364 // - The default value may be either false (for unstable features) or
     360// - You must provide the last two parameters for all experimental features.
     361//   They are the text exposed to the user from the WebKit client.
     362// - They should be *alphabetically ordered* by the human readable text (the
     363//   first string).
     364// - The default value may be either false (for really unstable features) or
    365365//   DEFAULT_EXPERIMENTAL_FEATURES_ENABLED (for features that are ready for
    366 //   wider testing).
    367 
     366//   wider testing). *The default value may not be true*. That would no longer
     367//   be experimental.
     368//
     369// Actually read the comment above before modifying this list!
    368370#define FOR_EACH_WEBKIT_EXPERIMENTAL_FEATURE_PREFERENCE(macro) \
    369371    macro(ConstantPropertiesEnabled, constantPropertiesEnabled, Bool, bool, true, "Constant Properties", "Enable CSS constant() properties") \
  • trunk/Source/cmake/OptionsGTK.cmake

    r222222 r222394  
    158158WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON)
    159159WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PRIVATE ON)
     160WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
     161WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
    160162WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON)
    161163WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS PRIVATE ON)
     
    167169WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SUBTLE_CRYPTO PRIVATE ON)
    168170WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL PRIVATE ON)
     171WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
    169172
    170173include(GStreamerDefinitions)
  • trunk/Source/cmake/OptionsWPE.cmake

    r222296 r222394  
    1515
    1616WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_TRANSFORMS PUBLIC ON)
    17 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF)
     17WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
    1818WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_REGIONS PUBLIC OFF)
    1919WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_SELECTORS_LEVEL4 PUBLIC ON)
     
    2525WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE_IN_WORKERS PRIVATE OFF)
    2626WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON)
    27 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF)
     27WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC ${ENABLE_EXPERIMENTAL_FEATURES})
    2828WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON)
    2929WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API PRIVATE OFF)
  • trunk/Source/cmake/WebKitFeatures.cmake

    r222222 r222394  
    344344    file(REMOVE "${CMAKE_BINARY_DIR}/cmakeconfig.h.tmp")
    345345endmacro()
     346
     347option(ENABLE_EXPERIMENTAL_FEATURES "Enable experimental features" OFF)
     348SET_AND_EXPOSE_TO_BUILD(ENABLE_EXPERIMENTAL_FEATURES ${ENABLE_EXPERIMENTAL_FEATURES})
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json

    r222251 r222394  
    308308                      "name": "GTK Linux 64-bit Release Debian Stable (Build)", "type": "Build", "builddir": "gtk-linux-64-release-debian",
    309309                      "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
    310                       "additionalArguments": ["--default-cmake-features"],
     310                      "additionalArguments": ["--no-experimental-features"],
    311311                      "slavenames": ["gtk-linux-slave-10"]
    312312                    },
     
    314314                      "name": "GTK Linux 64-bit Release Ubuntu LTS (Build)", "type": "Build", "builddir": "gtk-linux-64-release-ubuntu",
    315315                      "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
    316                       "additionalArguments": ["--default-cmake-features"],
     316                      "additionalArguments": ["--no-experimental-features"],
    317317                      "slavenames": ["gtk-linux-slave-11"]
    318318                    },
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg

    r221886 r222394  
    872872        if platform == "win":
    873873            self.addStep(InstallWin32Dependencies())
    874         if platform == "gtk" and additionalArguments != ["--default-cmake-features"]:
     874        if platform == "gtk" and additionalArguments != ["--no-experimental-features"]:
    875875            self.addStep(InstallGtkDependencies())
    876876        if platform == "wpe":
  • trunk/Tools/ChangeLog

    r222371 r222394  
     12017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
     2
     3        Remove build-webkit's notion of feature flags having a default value
     4        https://bugs.webkit.org/show_bug.cgi?id=177338
     5
     6        Reviewed by Alex Christensen.
     7
     8        Delegate feature flag default values to the build system.
     9        (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
     10
     11        * BuildSlaveSupport/build.webkit.org-config/config.json:
     12        * BuildSlaveSupport/build.webkit.org-config/master.cfg:
     13        (Factory.__init__):
     14        Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
     15        bots instead of --default-cmake-features.
     16
     17        * Scripts/build-webkit:
     18        (cMakeArgsFromFeatures):
     19        Default feature values to 'undef'.
     20        Remove the --default-cmake-features argument; it is now the default.
     21        Add --no-experimental-features to replace it.
     22        Stop printing the default feature flag value in the help.
     23        Avoid propagating undefined values to the build system;
     24        only mention flags that are overridden on the command line.
     25
     26        This has the nice side effect of using the default CMake features
     27        for CMake builds, but still allowing toggling of them using the
     28        prettier --FEATURE and --no-FEATURE arguments.
     29
     30        * Scripts/webkitdirs.pm:
     31        (generateBuildSystemFromCMakeProject):
     32        No longer need to suppress CMake warnings about unused arguments.
     33
     34        * Scripts/webkitperl/FeatureList.pm:
     35        Remove the default values from the feature list.
     36
    1372017-09-21  Joseph Pecoraro  <pecoraro@apple.com>
    238
     
    394430        (TEST):
    395431
    396 >>>>>>> .r222309
    3974322017-09-20  Alex Christensen  <achristensen@webkit.org>
    398433
  • trunk/Tools/Scripts/build-webkit

    r222160 r222394  
    5353my $showHelp = 0;
    5454my $clean = 0;
    55 my $defaultCMakeFeatures = 0;
    5655my $minimal = 0;
    5756my $installHeaders;
     
    6362my $coverageSupport = 0;
    6463my $shouldRunStaticAnalyzer = 0;
     64my $noExperimentalFeatures = 0;
    6565my $startTime = time();
    6666my $archs32bit = 0;
     
    8080}
    8181
    82 # Initialize values from defaults
     82# Feature flags default to undefined, where they will inherit the default value
     83# specified by the build system, or to 'off' if --minimal is specified.
    8384foreach (@features) {
    84     ${$_->{value}} = ($minimal ? 0 : $_->{default});
     85    ${$_->{value}} = ($minimal ? 0 : undef);
    8586}
    8687
     
    107108  --inspector-frontend              Copy Web Inspector user interface resources to the build directory
    108109
    109   --prefix=<path>                   Set installation prefix to the given path (Gtk/Efl only)
     110  --prefix=<path>                   Set installation prefix to the given path (CMake only, except Windows)
    110111  --makeargs=<arguments>            Optional Makefile flags
    111112  --cmakeargs=<arguments>           One or more optional CMake flags (e.g. --cmakeargs="-DFOO=bar -DCMAKE_PREFIX_PATH=/usr/local")
    112113
    113114  --minimal                         No optional features, unless explicitly enabled
    114   --default-cmake-features          Use the default CMake features enabled for the port (CMake based ports)
     115  --no-experimental-features        No experimental features, unless explicitly enabled (CMake only)
    115116
    116117  --only-webkit                     Build only the WebKit project
     
    130131    'coverage' => \$coverageSupport,
    131132    'analyze' => \$shouldRunStaticAnalyzer,
    132     'default-cmake-features' => \$defaultCMakeFeatures,
     133    'no-experimental-features' => \$noExperimentalFeatures,
    133134);
    134135
     
    136137foreach (@features) {
    137138    my $opt = sprintf("%-35s", "  --[no-]$_->{option}");
    138     $usage .= "$opt $_->{desc} (default: $_->{default})\n";
     139    $usage .= "$opt $_->{desc}\n";
    139140    $options{"$_->{option}!"} = $_->{value};
    140141}
     
    177178if (isAppleCocoaWebKit()) {
    178179    push @options, XcodeOptions();
    179     sub option($$$)
     180    sub option($$)
    180181    {
    181         my ($feature, $isEnabled, $defaultValue) = @_;
    182         return "" if $defaultValue == $isEnabled;
     182        my ($feature, $isEnabled) = @_;
     183        return "" if not defined $isEnabled;
    183184        return $feature . "=" . ($isEnabled ? $feature : "");
    184185    }
    185186
    186187    foreach (@features) {
    187         my $option = option($_->{define}, ${$_->{value}}, $_->{default});
     188        my $option = option($_->{define}, ${$_->{value}});
    188189        push @options, $option unless $option eq "";
    189190    }
     
    250251    $makeArgs .= " -l" . maxCPULoad() if defined $maxCPULoad;
    251252
    252     # We remove CMakeCache to avoid the bots to reuse cached flags when
     253    # We remove CMakeCache to avoid the bots reusing cached flags when
    253254    # we enable new features. This forces a reconfiguration.
    254255    my @featureArgs = cMakeArgsFromFeatures();
     
    347348{
    348349    my @args;
    349     if (!$defaultCMakeFeatures) {
    350         foreach (@features) {
    351             my $featureName = $_->{define};
    352             if ($featureName) {
    353                 my $featureEnabled = ${$_->{value}} ? "ON" : "OFF";
     350
     351    if (!$noExperimentalFeatures) {
     352        push @args, "-DENABLE_EXPERIMENTAL_FEATURES=ON";
     353    }
     354
     355    foreach (@features) {
     356        my $featureName = $_->{define};
     357        if ($featureName) {
     358            my $featureValue = ${$_->{value}};
     359            if (defined $featureValue) {
     360                my $featureEnabled = $featureValue ? "ON" : "OFF";
    354361                push @args, "-D$featureName=$featureEnabled";
    355362            }
    356363        }
    357364    }
     365
    358366    return @args;
    359367}
  • trunk/Tools/Scripts/webkitdirs.pm

    r222364 r222394  
    20732073    push @args, "-DDEVELOPER_MODE=ON" if isGtk() || isJSCOnly() || isWPE();
    20742074
    2075     # Don't warn variables which aren't used by cmake ports.
    2076     push @args, "--no-warn-unused-cli";
    20772075    push @args, @cmakeArgs if @cmakeArgs;
    20782076
  • trunk/Tools/Scripts/webkitperl/FeatureList.pm

    r221547 r222394  
    144144my @features = (
    145145    { option => "3d-rendering", desc => "Toggle 3D Rendering support",
    146       define => "ENABLE_3D_TRANSFORMS", default => (isAppleCocoaWebKit() || isIOSWebKit() || isGtk() || isWPE()), value => \$threeDTransformsSupport },
     146      define => "ENABLE_3D_TRANSFORMS", value => \$threeDTransformsSupport },
    147147
    148148    { option => "accelerated-2d-canvas", desc => "Toggle Accelerated 2D Canvas support",
    149       define => "ENABLE_ACCELERATED_2D_CANVAS", default => isWPE(), value => \$accelerated2DCanvasSupport },
     149      define => "ENABLE_ACCELERATED_2D_CANVAS", value => \$accelerated2DCanvasSupport },
    150150
    151151    { option => "allinone-build", desc => "Toggle all-in-one build",
    152       define => "ENABLE_ALLINONE_BUILD", default => isWindows(), value => \$allInOneBuild },
     152      define => "ENABLE_ALLINONE_BUILD", value => \$allInOneBuild },
    153153
    154154    { option => "attachment-element", desc => "Toggle Attachment Element support",
    155       define => "ENABLE_ATTACHMENT_ELEMENT", default => 0, value => \$attachmentElementSupport },
     155      define => "ENABLE_ATTACHMENT_ELEMENT", value => \$attachmentElementSupport },
    156156
    157157    { option => "channel-messaging", desc => "Toggle Channel Messaging support",
    158       define => "ENABLE_CHANNEL_MESSAGING", default => 1, value => \$channelMessagingSupport },
     158      define => "ENABLE_CHANNEL_MESSAGING", value => \$channelMessagingSupport },
    159159
    160160    { option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support",
    161       define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },
     161      define => "ENABLE_CSS_BOX_DECORATION_BREAK", value => \$cssBoxDecorationBreakSupport },
    162162
    163163    { option => "css-compositing", desc => "Toggle CSS Compositing support",
    164       define => "ENABLE_CSS_COMPOSITING", default => isAppleWebKit(), value => \$cssCompositingSupport },
     164      define => "ENABLE_CSS_COMPOSITING", value => \$cssCompositingSupport },
    165165
    166166    { option => "css-device-adaptation", desc => "Toggle CSS Device Adaptation support",
    167       define => "ENABLE_CSS_DEVICE_ADAPTATION", default => 0, value => \$cssDeviceAdaptation },
     167      define => "ENABLE_CSS_DEVICE_ADAPTATION", value => \$cssDeviceAdaptation },
    168168
    169169    { option => "css-image-orientation", desc => "Toggle CSS image-orientation support",
    170       define => "ENABLE_CSS_IMAGE_ORIENTATION", default => isGtk(), value => \$cssImageOrientationSupport },
     170      define => "ENABLE_CSS_IMAGE_ORIENTATION", value => \$cssImageOrientationSupport },
    171171
    172172    { option => "css-image-resolution", desc => "Toggle CSS image-resolution support",
    173       define => "ENABLE_CSS_IMAGE_RESOLUTION", default => isGtk(), value => \$cssImageResolutionSupport },
     173      define => "ENABLE_CSS_IMAGE_RESOLUTION", value => \$cssImageResolutionSupport },
    174174
    175175    { option => "css-image-set", desc => "Toggle CSS image-set support",
    176       define => "ENABLE_CSS_IMAGE_SET", default => (isGtk() || isWPE()), value => \$cssImageSetSupport },
     176      define => "ENABLE_CSS_IMAGE_SET", value => \$cssImageSetSupport },
    177177
    178178    { option => "css-regions", desc => "Toggle CSS Regions support",
    179       define => "ENABLE_CSS_REGIONS", default => 0, value => \$cssRegionsSupport },
     179      define => "ENABLE_CSS_REGIONS", value => \$cssRegionsSupport },
    180180
    181181    { option => "css-shapes", desc => "Toggle CSS Shapes support",
    182       define => "ENABLE_CSS_SHAPES", default => 1, value => \$cssShapesSupport },
     182      define => "ENABLE_CSS_SHAPES", value => \$cssShapesSupport },
    183183
    184184    { option => "css3-text", desc => "Toggle CSS3 Text support",
    185       define => "ENABLE_CSS3_TEXT", default => isGtk(), value => \$css3TextSupport },
     185      define => "ENABLE_CSS3_TEXT", value => \$css3TextSupport },
    186186
    187187    { option => "custom-elements", desc => "Toggle custom elements support",
    188       define => "ENABLE_CUSTOM_ELEMENTS", default => 1, value => \$customElementsSupport },
     188      define => "ENABLE_CUSTOM_ELEMENTS", value => \$customElementsSupport },
    189189
    190190    { option => "custom-scheme-handler", desc => "Toggle Custom Scheme Handler support",
    191       define => "ENABLE_CUSTOM_SCHEME_HANDLER", default => 0, value => \$customSchemeHandlerSupport },
     191      define => "ENABLE_CUSTOM_SCHEME_HANDLER", value => \$customSchemeHandlerSupport },
    192192
    193193    { option => "data-transfer-items", desc => "Toggle Data Transfer Items support",
    194       define => "ENABLE_DATA_TRANSFER_ITEMS", default => 0, value => \$dataTransferItemsSupport },
     194      define => "ENABLE_DATA_TRANSFER_ITEMS", value => \$dataTransferItemsSupport },
    195195
    196196    { option => "datalist-element", desc => "Toggle Datalist Element support",
    197       define => "ENABLE_DATALIST_ELEMENT", default => 0, value => \$datalistElementSupport },
     197      define => "ENABLE_DATALIST_ELEMENT", value => \$datalistElementSupport },
    198198
    199199    { option => "device-orientation", desc => "Toggle Device Orientation support",
    200       define => "ENABLE_DEVICE_ORIENTATION", default => (isIOSWebKit() || isWPE()), value => \$deviceOrientationSupport },
     200      define => "ENABLE_DEVICE_ORIENTATION", value => \$deviceOrientationSupport },
    201201
    202202    { option => "dom4-events-constructor", desc => "Expose DOM4 Events constructors",
    203       define => "ENABLE_DOM4_EVENTS_CONSTRUCTOR", default => (isAppleWebKit() || isGtk()), value => \$dom4EventsConstructor },
     203      define => "ENABLE_DOM4_EVENTS_CONSTRUCTOR", value => \$dom4EventsConstructor },
    204204
    205205    { option => "download-attribute", desc => "Toggle Download Attribute support",
    206       define => "ENABLE_DOWNLOAD_ATTRIBUTE", default => isGtk(), value => \$downloadAttributeSupport },
     206      define => "ENABLE_DOWNLOAD_ATTRIBUTE", value => \$downloadAttributeSupport },
    207207
    208208    { option => "encrypted-media", desc => "Toggle EME V3 support",
    209       define => "ENABLE_ENCRYPTED_MEDIA", default => isWPE(), value => \$encryptedMediaSupport },
     209      define => "ENABLE_ENCRYPTED_MEDIA", value => \$encryptedMediaSupport },
    210210
    211211    { option => "fetch-api", desc => "Toggle Fetch API support",
    212       define => "ENABLE_FETCH_API", default => 1, value => \$fetchAPISupport },
     212      define => "ENABLE_FETCH_API", value => \$fetchAPISupport },
    213213
    214214    { option => "font-load-events", desc => "Toggle Font Load Events support",
    215       define => "ENABLE_FONT_LOAD_EVENTS", default => 0, value => \$fontLoadEventsSupport },
     215      define => "ENABLE_FONT_LOAD_EVENTS", value => \$fontLoadEventsSupport },
    216216
    217217    { option => "ftl-jit", desc => "Toggle FTL JIT support",
    218       define => "ENABLE_FTL_JIT", default => ((isARM64() || isX86_64()) && (isGtk() || isJSCOnly() || isWPE())) , value => \$ftlJITSupport },
     218      define => "ENABLE_FTL_JIT", value => \$ftlJITSupport },
    219219
    220220    { option => "ftpdir", desc => "Toggle FTP Directory support",
    221       define => "ENABLE_FTPDIR", default => 1, value => \$ftpDirSupport },
     221      define => "ENABLE_FTPDIR", value => \$ftpDirSupport },
    222222
    223223    { option => "fullscreen-api", desc => "Toggle Fullscreen API support",
    224       define => "ENABLE_FULLSCREEN_API", default => (isAppleCocoaWebKit() || isGtk()), value => \$fullscreenAPISupport },
     224      define => "ENABLE_FULLSCREEN_API", value => \$fullscreenAPISupport },
    225225
    226226    { option => "gamepad", desc => "Toggle Gamepad support",
    227       define => "ENABLE_GAMEPAD", default => 0, value => \$gamepadSupport },
     227      define => "ENABLE_GAMEPAD", value => \$gamepadSupport },
    228228
    229229    { option => "geolocation", desc => "Toggle Geolocation support",
    230       define => "ENABLE_GEOLOCATION", default => (isAppleWebKit() || isIOSWebKit() || isGtk()), value => \$geolocationSupport },
     230      define => "ENABLE_GEOLOCATION", value => \$geolocationSupport },
    231231
    232232    { option => "gstreamer-gl", desc => "Toggle GStreamer GL support",
    233       define => "USE_GSTREAMER_GL", default => (isGtk() || isWPE()), value => \$gstreamerGLSupport },
     233      define => "USE_GSTREAMER_GL", value => \$gstreamerGLSupport },
    234234
    235235    { option => "high-dpi-canvas", desc => "Toggle High DPI Canvas support",
    236       define => "ENABLE_HIGH_DPI_CANVAS", default => (isAppleWebKit()), value => \$highDPICanvasSupport },
     236      define => "ENABLE_HIGH_DPI_CANVAS", value => \$highDPICanvasSupport },
    237237
    238238    { option => "icon-database", desc => "Toggle Icondatabase support",
    239       define => "ENABLE_ICONDATABASE", default => !isIOSWebKit(), value => \$icondatabaseSupport },
     239      define => "ENABLE_ICONDATABASE", value => \$icondatabaseSupport },
    240240
    241241    { option => "indexed-database", desc => "Toggle Indexed Database support",
    242       define => "ENABLE_INDEXED_DATABASE", default => (isAppleCocoaWebKit() || isGtk() || isWPE()), value => \$indexedDatabaseSupport },
     242      define => "ENABLE_INDEXED_DATABASE", value => \$indexedDatabaseSupport },
    243243
    244244    { option => "input-speech", desc => "Toggle Input Speech support",
    245       define => "ENABLE_INPUT_SPEECH", default => 0, value => \$inputSpeechSupport },
     245      define => "ENABLE_INPUT_SPEECH", value => \$inputSpeechSupport },
    246246
    247247    { option => "input-type-color", desc => "Toggle Input Type Color support",
    248       define => "ENABLE_INPUT_TYPE_COLOR", default => isGtk(), value => \$inputTypeColorSupport },
     248      define => "ENABLE_INPUT_TYPE_COLOR", value => \$inputTypeColorSupport },
    249249
    250250    { option => "input-type-date", desc => "Toggle Input Type Date support",
    251       define => "ENABLE_INPUT_TYPE_DATE", default => 0, value => \$inputTypeDateSupport },
     251      define => "ENABLE_INPUT_TYPE_DATE", value => \$inputTypeDateSupport },
    252252
    253253    { option => "input-type-datetime", desc => "Toggle broken Input Type Datetime support",
    254       define => "ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE", default => 0, value => \$inputTypeDatetimeSupport },
     254      define => "ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE", value => \$inputTypeDatetimeSupport },
    255255
    256256    { option => "input-type-datetimelocal", desc => "Toggle Input Type Datetimelocal support",
    257       define => "ENABLE_INPUT_TYPE_DATETIMELOCAL", default => 0, value => \$inputTypeDatetimelocalSupport },
     257      define => "ENABLE_INPUT_TYPE_DATETIMELOCAL", value => \$inputTypeDatetimelocalSupport },
    258258
    259259    { option => "input-type-month", desc => "Toggle Input Type Month support",
    260       define => "ENABLE_INPUT_TYPE_MONTH", default => 0, value => \$inputTypeMonthSupport },
     260      define => "ENABLE_INPUT_TYPE_MONTH", value => \$inputTypeMonthSupport },
    261261
    262262    { option => "input-type-time", desc => "Toggle Input Type Time support",
    263       define => "ENABLE_INPUT_TYPE_TIME", default => 0, value => \$inputTypeTimeSupport },
     263      define => "ENABLE_INPUT_TYPE_TIME", value => \$inputTypeTimeSupport },
    264264
    265265    { option => "input-type-week", desc => "Toggle Input Type Week support",
    266       define => "ENABLE_INPUT_TYPE_WEEK", default => 0, value => \$inputTypeWeekSupport },
     266      define => "ENABLE_INPUT_TYPE_WEEK", value => \$inputTypeWeekSupport },
    267267
    268268    { option => "intl", desc => "Toggle Intl support",
    269       define => "ENABLE_INTL", default => 1, value => \$intlSupport },
     269      define => "ENABLE_INTL", value => \$intlSupport },
    270270
    271271    { option => "jit", desc => "Enable just-in-time JavaScript support",
    272       define => "ENABLE_JIT", default => 1, value => \$jitSupport },
     272      define => "ENABLE_JIT", value => \$jitSupport },
    273273
    274274    { option => "legacy-encrypted-media", desc => "Toggle Legacy EME V2 support",
    275       define => "ENABLE_LEGACY_ENCRYPTED_MEDIA", default => 0, value => \$legacyEncryptedMediaSupport },
     275      define => "ENABLE_LEGACY_ENCRYPTED_MEDIA", value => \$legacyEncryptedMediaSupport },
    276276
    277277    { option => "legacy-vendor-prefixes", desc => "Toggle Legacy Vendor Prefix support",
    278       define => "ENABLE_LEGACY_VENDOR_PREFIXES", default => 1, value => \$legacyVendorPrefixSupport },
     278      define => "ENABLE_LEGACY_VENDOR_PREFIXES", value => \$legacyVendorPrefixSupport },
    279279
    280280    { option => "legacy-web-audio", desc => "Toggle Legacy Web Audio support",
    281       define => "ENABLE_LEGACY_WEB_AUDIO", default => 1, value => \$legacyWebAudioSupport },
     281      define => "ENABLE_LEGACY_WEB_AUDIO", value => \$legacyWebAudioSupport },
    282282
    283283    { option => "link-prefetch", desc => "Toggle Link Prefetch support",
    284       define => "ENABLE_LINK_PREFETCH", default => isGtk(), value => \$linkPrefetchSupport },
     284      define => "ENABLE_LINK_PREFETCH", value => \$linkPrefetchSupport },
    285285
    286286    { option => "mathml", desc => "Toggle MathML support",
    287       define => "ENABLE_MATHML", default => 1, value => \$mathmlSupport },
     287      define => "ENABLE_MATHML", value => \$mathmlSupport },
    288288
    289289    { option => "media-capture", desc => "Toggle Media Capture support",
    290       define => "ENABLE_MEDIA_CAPTURE", default => 0, value => \$mediaCaptureSupport },
     290      define => "ENABLE_MEDIA_CAPTURE", value => \$mediaCaptureSupport },
    291291
    292292    { option => "media-source", desc => "Toggle Media Source support",
    293       define => "ENABLE_MEDIA_SOURCE", default => (isGtk() || isWPE()), value => \$mediaSourceSupport },
     293      define => "ENABLE_MEDIA_SOURCE", value => \$mediaSourceSupport },
    294294
    295295    { option => "media-statistics", desc => "Toggle Media Statistics support",
    296       define => "ENABLE_MEDIA_STATISTICS", default => 0, value => \$mediaStatisticsSupport },
     296      define => "ENABLE_MEDIA_STATISTICS", value => \$mediaStatisticsSupport },
    297297
    298298    { option => "media-stream", desc => "Toggle Media Stream support",
    299       define => "ENABLE_MEDIA_STREAM", default => isGtk(), value => \$mediaStreamSupport },
     299      define => "ENABLE_MEDIA_STREAM", value => \$mediaStreamSupport },
    300300
    301301    { option => "meter-element", desc => "Toggle Meter Element support",
    302       define => "ENABLE_METER_ELEMENT", default => !isAppleWinWebKit(), value => \$meterElementSupport },
     302      define => "ENABLE_METER_ELEMENT", value => \$meterElementSupport },
    303303
    304304    { option => "mhtml", desc => "Toggle MHTML support",
    305       define => "ENABLE_MHTML", default => (isGtk() || isWPE()), value => \$mhtmlSupport },
     305      define => "ENABLE_MHTML", value => \$mhtmlSupport },
    306306
    307307    { option => "mouse-cursor-scale", desc => "Toggle Scaled mouse cursor support",
    308       define => "ENABLE_MOUSE_CURSOR_SCALE", default => 0, value => \$mouseCursorScaleSupport },
     308      define => "ENABLE_MOUSE_CURSOR_SCALE", value => \$mouseCursorScaleSupport },
    309309
    310310    { option => "navigator-content-utils", desc => "Toggle Navigator Content Utils support",
    311       define => "ENABLE_NAVIGATOR_CONTENT_UTILS", default => 0, value => \$registerProtocolHandlerSupport },
    312 
    313     { option => "navigator-hardware-concurrency", desc => "Toggle Navigator hardware concurrenct support",
    314       define => "ENABLE_NAVIGATOR_HWCONCURRENCY", default => 1, value => \$hardwareConcurrencySupport },
     311      define => "ENABLE_NAVIGATOR_CONTENT_UTILS", value => \$registerProtocolHandlerSupport },
     312
     313    { option => "navigator-hardware-concurrency", desc => "Toggle Navigator hardware concurrency support",
     314      define => "ENABLE_NAVIGATOR_HWCONCURRENCY", value => \$hardwareConcurrencySupport },
    315315
    316316    { option => "netscape-plugin-api", desc => "Toggle Netscape Plugin API support",
    317       define => "ENABLE_NETSCAPE_PLUGIN_API", default => (!isIOSWebKit() && !isWPE()), value => \$netscapePluginAPISupport },
     317      define => "ENABLE_NETSCAPE_PLUGIN_API", value => \$netscapePluginAPISupport },
    318318
    319319    { option => "notifications", desc => "Toggle Notifications support",
    320       define => "ENABLE_NOTIFICATIONS", default => isGtk(), value => \$notificationsSupport },
     320      define => "ENABLE_NOTIFICATIONS", value => \$notificationsSupport },
    321321
    322322    { option => "orientation-events", desc => "Toggle Orientation Events support",
    323       define => "ENABLE_ORIENTATION_EVENTS", default => isIOSWebKit(), value => \$orientationEventsSupport },
     323      define => "ENABLE_ORIENTATION_EVENTS", value => \$orientationEventsSupport },
    324324
    325325    { option => "performance-timeline", desc => "Toggle Performance Timeline support",
    326       define => "ENABLE_PERFORMANCE_TIMELINE", default => (isGtk() || isWPE()), value => \$performanceTimelineSupport },
     326      define => "ENABLE_PERFORMANCE_TIMELINE", value => \$performanceTimelineSupport },
    327327
    328328    { option => "proximity-events", desc => "Toggle Proximity Events support",
    329       define => "ENABLE_PROXIMITY_EVENTS", default => 0, value => \$proximityEventsSupport },
     329      define => "ENABLE_PROXIMITY_EVENTS", value => \$proximityEventsSupport },
    330330
    331331    { option => "quota", desc => "Toggle Quota support",
    332       define => "ENABLE_QUOTA", default => 0, value => \$quotaSupport },
     332      define => "ENABLE_QUOTA", value => \$quotaSupport },
    333333
    334334    { option => "readableStreamAPI", desc => "Toggle ReadableStream API support",
    335       define => "ENABLE_READABLE_STREAM_API", default => 1, value => \$readableStreamAPISupport },
     335      define => "ENABLE_READABLE_STREAM_API", value => \$readableStreamAPISupport },
    336336
    337337    { option => "readableByteStreamAPI", desc => "Toggle support of ByteStream part of ReadableStream API",
    338       define => "ENABLE_READABLE_BYTE_STREAM_API", default => 1, value => \$readableByteStreamAPISupport },
     338      define => "ENABLE_READABLE_BYTE_STREAM_API", value => \$readableByteStreamAPISupport },
    339339
    340340    { option => "resolution-media-query", desc => "Toggle resolution media query support",
    341       define => "ENABLE_RESOLUTION_MEDIA_QUERY", default => 0, value => \$resolutionMediaQuerySupport },
     341      define => "ENABLE_RESOLUTION_MEDIA_QUERY", value => \$resolutionMediaQuerySupport },
    342342
    343343    { option => "scripted-speech", desc => "Toggle Scripted Speech support",
    344       define => "ENABLE_SCRIPTED_SPEECH", default => 0, value => \$scriptedSpeechSupport },
     344      define => "ENABLE_SCRIPTED_SPEECH", value => \$scriptedSpeechSupport },
    345345
    346346    { option => "subtle-crypto", desc => "Toggle WebCrypto Subtle-Crypto support",
    347       define => "ENABLE_SUBTLE_CRYPTO", default => (isGtk() || isAppleCocoaWebKit() || isIOSWebKit() || isWPE()), value => \$subtleCrypto },
     347      define => "ENABLE_SUBTLE_CRYPTO", value => \$subtleCrypto },
    348348
    349349    { option => "svg-fonts", desc => "Toggle SVG Fonts support",
    350       define => "ENABLE_SVG_FONTS", default => 1, value => \$svgFontsSupport },
     350      define => "ENABLE_SVG_FONTS", value => \$svgFontsSupport },
    351351
    352352    { option => "system-malloc", desc => "Toggle system allocator instead of bmalloc",
    353       define => "USE_SYSTEM_MALLOC", default => 0, value => \$systemMallocSupport },
     353      define => "USE_SYSTEM_MALLOC", value => \$systemMallocSupport },
    354354
    355355    { option => "touch-events", desc => "Toggle Touch Events support",
    356       define => "ENABLE_TOUCH_EVENTS", default => (isIOSWebKit() || isGtk() || isWPE()), value => \$touchEventsSupport },
     356      define => "ENABLE_TOUCH_EVENTS", value => \$touchEventsSupport },
    357357
    358358    { option => "touch-icon-loading", desc => "Toggle Touch Icon Loading Support",
    359       define => "ENABLE_TOUCH_ICON_LOADING", default => 0, value => \$touchIconLoadingSupport },
     359      define => "ENABLE_TOUCH_ICON_LOADING", value => \$touchIconLoadingSupport },
    360360
    361361    { option => "touch-slider", desc => "Toggle Touch Slider support",
    362       define => "ENABLE_TOUCH_SLIDER", default => 0, value => \$touchSliderSupport },
     362      define => "ENABLE_TOUCH_SLIDER", value => \$touchSliderSupport },
    363363
    364364    { option => "video", desc => "Toggle Video support",
    365       define => "ENABLE_VIDEO", default => (isAppleWebKit() || isGtk() || isWPE()), value => \$videoSupport },
     365      define => "ENABLE_VIDEO", value => \$videoSupport },
    366366
    367367    { option => "video-track", desc => "Toggle Video Track support",
    368       define => "ENABLE_VIDEO_TRACK", default => (isAppleWebKit() || isGtk() || isWPE()), value => \$videoTrackSupport },
     368      define => "ENABLE_VIDEO_TRACK", value => \$videoTrackSupport },
    369369
    370370    { option => "web-animations", desc => "Toggle Web Animations support",
    371       define => "ENABLE_WEB_ANIMATIONS", default => 1, value => \$webAnimationsSupport },
     371      define => "ENABLE_WEB_ANIMATIONS", value => \$webAnimationsSupport },
    372372
    373373    { option => "web-audio", desc => "Toggle Web Audio support",
    374       define => "ENABLE_WEB_AUDIO", default => (isGtk() || isWPE()), value => \$webAudioSupport },
     374      define => "ENABLE_WEB_AUDIO", value => \$webAudioSupport },
    375375
    376376    { option => "web-rtc", desc => "Toggle WebRTC support",
    377       define => "ENABLE_WEB_RTC", default => (isAppleCocoaWebKit() || isIOSWebKit() || isGtk()), value => \$webRTCSupport },
     377      define => "ENABLE_WEB_RTC", value => \$webRTCSupport },
    378378
    379379    { option => "webassembly", desc => "Toggle WebAssembly support",
    380       define => "ENABLE_WEBASSEMBLY", default => ((isARM64() || isX86_64()) && (isGtk() || isJSCOnly() || isWPE())) , value => \$webAssemblySupport },
     380      define => "ENABLE_WEBASSEMBLY", value => \$webAssemblySupport },
    381381
    382382    { option => "webgl", desc => "Toggle WebGL support",
    383       define => "ENABLE_WEBGL", default => (isAppleCocoaWebKit() || isGtk() || isWPE()), value => \$webglSupport },
     383      define => "ENABLE_WEBGL", value => \$webglSupport },
    384384
    385385    { option => "webgl2", desc => "Toggle WebGL2 support",
    386       define => "ENABLE_WEBGL2", default => (isAppleCocoaWebKit() || isWPE()), value => \$webgl2Support },
     386      define => "ENABLE_WEBGL2", value => \$webgl2Support },
    387387
    388388    { option => "writableStreamAPI", desc => "Toggle WritableStream API support",
    389       define => "ENABLE_WRITABLE_STREAM_API", default => 1, value => \$writableStreamAPISupport },
     389      define => "ENABLE_WRITABLE_STREAM_API", value => \$writableStreamAPISupport },
    390390
    391391    { option => "xslt", desc => "Toggle XSLT support",
    392       define => "ENABLE_XSLT", default => 1, value => \$xsltSupport },
     392      define => "ENABLE_XSLT", value => \$xsltSupport },
    393393);
    394394
Note: See TracChangeset for help on using the changeset viewer.