Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog (210168 => 210169)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-12-27 15:26:52 UTC (rev 210168)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/ChangeLog 2016-12-27 16:36:58 UTC (rev 210169)
@@ -1,3 +1,36 @@
+2016-11-09 Michael Catanzaro <[email protected]>
+
+ Experimental features should not be enabled by default
+ https://bugs.webkit.org/show_bug.cgi?id=164367
+
+ Reviewed by Darin Adler.
+
+ We have two classes of experimental features:
+
+ (1) Features that are unstable and should be off by default, except for the developers
+ currently working on them. This is straightforward to handle; the default value should
+ be false.
+ (2) Features that are still not ready for end users, but are stable enough for testing. We
+ want these features to be enabled in testing environments like the bots, MiniBrowser,
+ Safari Tech Preview, and so forth, but not in stable release builds.
+
+ Implement this. It is better than having all experimental features on unconditionally, and
+ expecting them to be disabled manually on release branches, which is not something we are
+ keen to do. An exception is Cocoa ports, which to my knowledge do not currently have any
+ concept of development builds. These ports seem happy to continue disabling features
+ manually in release branches, and should continue to do so at least for now.
+
+ We also have features that we wish to enumerate at runtime, yet have enabled by default
+ unconditionally. We do not currently have any infrastructure to support this and should not
+ abuse the experimental status for this purpose; it requires future work. All settings can
+ still be toggled at runtime by clients that know about them using the existing runtime
+ features API.
+
+ Lastly, the custom elements feature is ready to be enabled by default, so it's no longer
+ experimental and can graduate to the list of normal boolean features.
+
+ * Shared/WebPreferencesDefinitions.h:
+
2016-11-03 Carlos Garcia Campos <[email protected]>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.14.2 release.
Modified: releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/WebPreferencesDefinitions.h (210168 => 210169)
--- releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2016-12-27 15:26:52 UTC (rev 210168)
+++ releases/WebKitGTK/webkit-2.14/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2016-12-27 16:36:58 UTC (rev 210169)
@@ -278,20 +278,30 @@
#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)
+#define DEFAULT_EXPERIMENTAL_FEATURES_ENABLED true
+#else
+#define DEFAULT_EXPERIMENTAL_FEATURES_ENABLED false
+#endif
+
// 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.
-// - They should be false by default, although they are currently set to true while we develop client UI.
+// - The default value may be either false (for very unstable features) or
+// DEFAULT_EXPERIMENTAL_FEATURE_ENABLED (for features that are ready for
+// wider testing).
#define FOR_EACH_WEBKIT_EXPERIMENTAL_FEATURE_PREFERENCE(macro) \
- macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, false, "CSS Grid", "CSS Grid Layout Module support") \
- macro(CustomElementsEnabled, customElementsEnabled, Bool, bool, false, "Custom Elements", "HTML Custom Elements prototype") \
- macro(GamepadsEnabled, gamepadsEnabled, Bool, bool, false, "Gamepads", "Web Gamepad API support") \
- macro(SpringTimingFunctionEnabled, springTimingFunctionEnabled, Bool, bool, true, "CSS Spring Animations", "CSS Spring Animation prototype") \
- macro(WebGL2Enabled, webGL2Enabled, Bool, bool, true, "WebGL 2.0", "WebGL 2 prototype") \
- macro(VisualViewportEnabled, visualViewportEnabled, Bool, bool, false, "Visual Viewport", "Use Visual Viewport for fixed elements when zooming") \
+ macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "CSS Grid", "CSS Grid Layout Module support") \
+ macro(SpringTimingFunctionEnabled, springTimingFunctionEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "CSS Spring Animations", "CSS Spring Animation prototype") \
+ macro(CustomElementsEnabled, customElementsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "", "") \
+ macro(GamepadsEnabled, gamepadsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Gamepads", "Web Gamepad API support") \
+ macro(WebGL2Enabled, webGL2Enabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "WebGL 2.0", "WebGL 2 prototype") \
+ macro(VisualViewportEnabled, visualViewportEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Visual Viewport", "Use Visual Viewport for fixed elements when zooming") \
\
#if PLATFORM(COCOA)