Bug 29906

Summary: Turn on compile time switch for WebGL, but have runtime switch default to off
Product: WebKit Reporter: Chris Marrin <cmarrin>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: darin, kbr, mjs, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Macintosh   
OS: OS X 10.5   
Attachments:
Description Flags
Patch
oliver: review+
Replacement patch fixes LayoutTests oliver: review+

Description Chris Marrin 2009-09-29 16:40:29 PDT
A decision has been (nearly) made to turn on the ENABLE_3D_CANVAS switch in nightlies but to have the runtime switch (recently added in https://bugs.webkit.org/show_bug.cgi?id=29826) default to off.
Comment 1 Mark Rowe (bdash) 2009-09-29 18:27:39 PDT
Presumably this will involve adding a user default to control the preference so that people can enable this for testing without having to recompile?
Comment 2 Chris Marrin 2009-09-30 09:44:01 PDT
Right. There will be a flag in prefs, "webGLEnabled" which will be off by default and you can use 'default write' to turn it on. We could also add a menu item to the Debug menu in Safari if we want, like we did for acceleratedCompositingEnabled.
Comment 3 Chris Marrin 2009-09-30 14:51:32 PDT
Created attachment 40401 [details]
Patch

This patch also changes the name of the flag from experimentalWebGLEnabled to webGLEnabled. While it's true this feature is still in development, it's a standard in-progress so I don't want people to get the idea that this is a WebKit specific experiment. And I don't want to either have this legacy when the standard is ratified or have to change the name of the flag (which is in the plist) when it is ratified.
Comment 4 Darin Adler 2009-10-01 11:21:45 PDT
(In reply to comment #3)
> This patch also changes the name of the flag from experimentalWebGLEnabled to
> webGLEnabled. While it's true this feature is still in development, it's a
> standard in-progress so I don't want people to get the idea that this is a
> WebKit specific experiment.

Keep in mind that often for standards-track things we still use things like -webkit- prefixes on CSS properties in case the standard changes after we ship an initial version. The name of the flag is not important, but shipping an early version of something that becomes standard with some changes later can cause compatibility problems down the road, so is something we should think about.

In that sense this is "experimental" as all implementations before a standard is relatively firm and stable are.

I don't object to your decision, but wanted to make the point.
Comment 5 Chris Marrin 2009-10-01 17:17:57 PDT
Created attachment 40486 [details]
Replacement patch fixes LayoutTests

More extensive layout tests revealed some problems, which revealed a bug in WebGL. All fixed now.
Comment 6 Chris Marrin 2009-10-01 17:25:36 PDT
Sending        LayoutTests/ChangeLog
Sending        LayoutTests/fast/canvas/webgl/gl-get-calls.html
Sending        LayoutTests/fast/dom/Window/window-properties.html
Sending        LayoutTests/fast/dom/script-tests/constructed-objects-prototypes.js
Sending        LayoutTests/fast/dom/script-tests/prototype-inheritance-2.js
Sending        LayoutTests/fast/dom/script-tests/prototype-inheritance.js
Sending        LayoutTests/fast/js/script-tests/global-constructors.js
Sending        WebCore/ChangeLog
Sending        WebCore/Configurations/FeatureDefines.xcconfig
Sending        WebCore/WebCore.base.exp
Sending        WebCore/bindings/js/JSCanvasArrayBufferConstructor.h
Sending        WebCore/html/HTMLCanvasElement.cpp
Sending        WebCore/html/canvas/CanvasArray.cpp
Sending        WebCore/html/canvas/CanvasByteArray.cpp
Sending        WebCore/html/canvas/CanvasFloatArray.cpp
Sending        WebCore/html/canvas/CanvasIntArray.cpp
Sending        WebCore/html/canvas/CanvasShortArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedByteArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedIntArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedShortArray.cpp
Sending        WebCore/page/Settings.cpp
Sending        WebCore/page/Settings.h
Sending        WebKit/mac/ChangeLog
Sending        WebKit/mac/Configurations/FeatureDefines.xcconfig
Sending        WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Sending        WebKit/mac/WebView/WebPreferences.mm
Sending        WebKit/mac/WebView/WebPreferencesPrivate.h
Sending        WebKit/mac/WebView/WebView.mm
Sending        WebKitTools/ChangeLog
Sending        WebKitTools/Scripts/build-webkit
Transmitting file data ..............................
Committed revision 49006.