Title: [210169] releases/WebKitGTK/webkit-2.14/Source/WebKit2
Revision
210169
Author
[email protected]
Date
2016-12-27 08:36:58 -0800 (Tue, 27 Dec 2016)

Log Message

Merge r208495 - 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:

Modified Paths

Diff

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)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to