Improve WebGL object lifetime management in WebGLRenderingContext

2011-06-30  Zhenyao Mo  <zmo@google.com>

        Reviewed by Kenneth Russell.

        Improve WebGL object lifetime management in WebGLRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=63635

        * fast/canvas/webgl/gl-object-get-calls-expected.txt:
        * fast/canvas/webgl/gl-object-get-calls.html: Fix a bug so getFramebufferAtatchmentParameter generates an error if nothing is attached and something other than TYPE is queried.
        * fast/canvas/webgl/object-deletion-behaviour-expected.txt:
        * fast/canvas/webgl/object-deletion-behaviour.html: Ditto.
        * fast/canvas/webgl/program-test.html: Fix the test so the order of shaders returned by getAttachedShaders doesn't matter.
2011-06-30  Zhenyao Mo  <zmo@google.com>

        Reviewed by Kenneth Russell.

        Improve WebGL object lifetime management in WebGLRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=63635

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getAttachedShaders): Use cached objects instead of querying the underlying GL.
        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Ditto.
        (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects): Multiple loop because objects might be removed from the table within an iteration.
        * html/canvas/WebGLRenderingContext.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CRs-fixed: 407009

(cherry-picked from commit 2dbba5d5facb2c0c57a37eb0cf3958bae0f697fa)

Change-Id: I2cb88cc5790452c18f6e58420cc7b063c9ffce26