2013-08-29  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        Separate WebCLContextProperties and WebCLGLContextProperties
        Issue #293

        Reviewed by Igor.

        WebCL spec needs WebCLContextProperties and
        WebCLGLContextProperties to be two different objects.
        See for example WebCLContext::getInfo(CONTEXT_PROPERTIES)
        and WebCLGLContext::getInfo(CONTEXT_PROPERTIES) return types.

        Patch slips WebCLContextProperties into two, but keeps the creation
        place unified.

        * Modules/webcl/WebCL.cpp:
        (WebCore::WebCL::defaultProperties):

        Changed to create non-specialized WebCLContextProperties object
        as default.

        * Modules/webcl/WebCLContextProperties.cpp:
        (WebCore::WebCLContextProperties::create):
        (WebCore::WebCLContextProperties::WebCLContextProperties):

        Moved GLSharedContext specific bits out of it.

        (WebCore::WebCLContextProperties::sharedContext):

        Renamed from webGLRenderingContext to match binding expectation.
        Also it is a no-op base class implementation

        (WebCore::WebCLContextProperties::setSharedContext):

        Ditto. Renamed from setWebGLRenderingContext.

        (WebCore::WebCLContextProperties::computeContextProperties):

        public interface for getting the CL properties (needed for context creation).
        It calls in computeContextPropertiesInternal, which is virtual.

        (WebCore::WebCLContextProperties::computeContextPropertiesInternal):

        Initializes the vector property if needed.

        * Modules/webcl/WebCLContextProperties.h:
        (WebCore::WebCLContextProperties::~WebCLContextProperties):
        * Modules/webcl/WebCLContextProperties.idl:
        * Modules/webcl/WebCLGLContextProperties.cpp: Added.
        (WebCore::WebCLGLContextProperties::create):
        (WebCore::WebCLGLContextProperties::WebCLGLContextProperties):

        Static ::create and ctor taking non-default GL context arguments.

        (WebCore::WebCLGLContextProperties::sharedContext):
        (WebCore::WebCLGLContextProperties::setSharedContext):

        Actual setter and getter. The base class variant of these
        are no-op.

        (WebCore::WebCLGLContextProperties::computeContextPropertiesInternal):

        GL specific bits are added to the property list. It calls in the base class
        variant.

        * Modules/webcl/WebCLGLContextProperties.h:
        (WebCore::WebCLGLContextProperties::~WebCLGLContextProperties):
        * Modules/webcl/WebCLGLContextProperties.idl:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebCLCustom.cpp:
        (WebCore::JSWebCL::createContext):
        * bindings/js/JSWebCLCustom.h:
        (WebCore::setSharedContext):
        (WebCore::parsePropertiesAndCreateContext):
        * bindings/js/JSWebCLGLCustom.cpp:
        (WebCore::JSWebCLGL::createContext):