Bug 29906 - Turn on compile time switch for WebGL, but have runtime switch default to off
Summary: Turn on compile time switch for WebGL, but have runtime switch default to off
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: 528+ (Nightly build)
Hardware: Macintosh OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-29 16:40 PDT by Chris Marrin
Modified: 2009-11-06 16:55 PST (History)
4 users (show)

See Also:


Attachments
Patch (10.47 KB, patch)
2009-09-30 14:51 PDT, Chris Marrin
oliver: review+
Details | Formatted Diff | Diff
Replacement patch fixes LayoutTests (35.23 KB, patch)
2009-10-01 17:17 PDT, Chris Marrin
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.