2011-06-08 Justin Novosad <junov@chromium.org>
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Jun 2011 06:40:44 +0000 (06:40 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Jun 2011 06:40:44 +0000 (06:40 +0000)
commita3a8cc27126ecda8615b08e244dda52080128d00
treebf1228617afcc042cad651be18690a3763628432
parent24dc109fb96f34f1446e5f5cbe80a4d93ee5757a
2011-06-08  Justin Novosad  <junov@chromium.org>

        Reviewed by James Robinson.

        [Chromium] Crash when closing a tab with accelerated 2d canvas
        https://bugs.webkit.org/show_bug.cgi?id=62324
        Upon graphics context destruction, it is important to signal skia
        to abandon all of its resource handles.  This prevents a crash caused
        by skia attempting to release resources that were in the destroyed
        graphics context.

        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
        (WebCore::SharedGraphicsContext3D::~SharedGraphicsContext3D):
2011-06-08  Justin Novosad  <junov@chromium.org>

        Reviewed by James Robinson.

        [Chromium] Crash when closing a tab with accelerated 2d canvas
        https://bugs.webkit.org/show_bug.cgi?id=62324
        In GraphicsContext3DInternal::setContextLostCallback we are passing a
        non-refcounted ptr to a refcounted member. this can cause an access
        violation after the destruction of GraphicsContext3D.  Upon destruction
        a null callback is sent to setContextLostCallback, which is good
        except that it gets placed in a non-null adapter object.  This fix
        prevents the creation of the adapter when the callback is null, thus
        preventing a later crash.

        * src/GraphicsContext3DChromium.cpp:
        (WebCore::GraphicsContextLostCallbackAdapter::create):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@88429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp