[chromium] The single thread proxy should not automatically tick new animations.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jun 2012 19:34:23 +0000 (19:34 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jun 2012 19:34:23 +0000 (19:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=89996

Patch by Ian Vollick <vollick@chromium.org> on 2012-06-26
Reviewed by James Robinson.

Source/WebCore:

No new tests. No change to existing functionality.

* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
(WebCore::CCSingleThreadProxy::initializeLayerRenderer):
(WebCore::CCSingleThreadProxy::didAddAnimation):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(WebCore):

Source/WebKit/chromium:

* WebKit.gypi:
* tests/CCSingleThreadProxyTest.cpp: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121277 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/WebKit.gypi
Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp [deleted file]

index d73b6c8..ea998ee 100755 (executable)
@@ -1,3 +1,19 @@
+2012-06-26  Ian Vollick  <vollick@chromium.org>
+
+        [chromium] The single thread proxy should not automatically tick new animations.
+        https://bugs.webkit.org/show_bug.cgi?id=89996
+
+        Reviewed by James Robinson.
+
+        No new tests. No change to existing functionality.
+
+        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
+        (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
+        (WebCore::CCSingleThreadProxy::didAddAnimation):
+        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+        (WebCore):
+
 2012-06-26  Julien Chaffraix  <jchaffraix@webkit.org>
 
         Crash in FixedTableLayout::layout
index cbd51d4..0ca7839 100644 (file)
@@ -39,26 +39,6 @@ using namespace WTF;
 
 namespace WebCore {
 
-class CCSingleThreadProxyAnimationTimer : public CCTimer, CCTimerClient {
-public:
-    static PassOwnPtr<CCSingleThreadProxyAnimationTimer> create(CCSingleThreadProxy* proxy) { return adoptPtr(new CCSingleThreadProxyAnimationTimer(proxy)); }
-
-    virtual void onTimerFired() OVERRIDE
-    {
-        if (m_proxy->m_layerRendererInitialized)
-            m_proxy->compositeImmediately();
-    }
-
-private:
-    explicit CCSingleThreadProxyAnimationTimer(CCSingleThreadProxy* proxy)
-        : CCTimer(CCProxy::mainThread(), this)
-        , m_proxy(proxy)
-    {
-    }
-
-    CCSingleThreadProxy* m_proxy;
-};
-
 PassOwnPtr<CCProxy> CCSingleThreadProxy::create(CCLayerTreeHost* layerTreeHost)
 {
     return adoptPtr(new CCSingleThreadProxy(layerTreeHost));
@@ -68,7 +48,6 @@ CCSingleThreadProxy::CCSingleThreadProxy(CCLayerTreeHost* layerTreeHost)
     : m_layerTreeHost(layerTreeHost)
     , m_contextLost(false)
     , m_compositorIdentifier(-1)
-    , m_animationTimer(CCSingleThreadProxyAnimationTimer::create(this))
     , m_layerRendererInitialized(false)
     , m_nextFrameIsNewlyCommittedFrame(false)
 {
@@ -168,9 +147,7 @@ bool CCSingleThreadProxy::initializeLayerRenderer()
         if (ok) {
             m_layerRendererInitialized = true;
             m_layerRendererCapabilitiesForMainThread = m_layerTreeHostImpl->layerRendererCapabilities();
-        } else
-            // If we couldn't initialize the layer renderer, we shouldn't process any future animation events.
-            m_animationTimer->stop();
+        }
 
         return ok;
     }
@@ -277,7 +254,6 @@ bool CCSingleThreadProxy::commitRequested() const
 
 void CCSingleThreadProxy::didAddAnimation()
 {
-    m_animationTimer->startOneShot(animationTimerDelay());
 }
 
 void CCSingleThreadProxy::stop()
@@ -318,11 +294,6 @@ void CCSingleThreadProxy::compositeImmediately()
     }
 }
 
-double CCSingleThreadProxy::animationTimerDelay()
-{
-    return 1 / 60.0;
-}
-
 void CCSingleThreadProxy::forceSerializeOnSwapBuffers()
 {
     {
index 6fb733d..074596f 100644 (file)
@@ -34,7 +34,6 @@
 namespace WebCore {
 
 class CCLayerTreeHost;
-class CCSingleThreadProxyAnimationTimer;
 
 class CCSingleThreadProxy : public CCProxy, CCLayerTreeHostImplClient {
 public:
@@ -77,12 +76,7 @@ public:
     // Called by the legacy path where RenderWidget does the scheduling.
     void compositeImmediately();
 
-    // Measured in seconds.
-    static double animationTimerDelay();
-
 private:
-    friend class CCSingleThreadProxyAnimationTimer;
-
     explicit CCSingleThreadProxy(CCLayerTreeHost*);
 
     bool commitAndComposite();
@@ -99,8 +93,6 @@ private:
     // be used for anything else.
     OwnPtr<CCGraphicsContext> m_contextBeforeInitialization;
 
-    OwnPtr<CCSingleThreadProxyAnimationTimer> m_animationTimer;
-
     // Used on the CCThread, but checked on main thread during initialization/shutdown.
     OwnPtr<CCLayerTreeHostImpl> m_layerTreeHostImpl;
     bool m_layerRendererInitialized;
index 0250304..9437d67 100644 (file)
@@ -1,5 +1,15 @@
 2012-06-26  Ian Vollick  <vollick@chromium.org>
 
+        [chromium] The single thread proxy should not automatically tick new animations.
+        https://bugs.webkit.org/show_bug.cgi?id=89996
+
+        Reviewed by James Robinson.
+
+        * WebKit.gypi:
+        * tests/CCSingleThreadProxyTest.cpp: Removed.
+
+2012-06-26  Ian Vollick  <vollick@chromium.org>
+
         [chromium] Layer chromium should need a redraw after getting its first non-empty bounds.
         https://bugs.webkit.org/show_bug.cgi?id=89784
 
index dd2bfb2..c410e6f 100644 (file)
@@ -86,7 +86,6 @@
             'tests/CCSchedulerStateMachineTest.cpp',
             'tests/CCSchedulerTestCommon.h',
             'tests/CCSchedulerTest.cpp',
-            'tests/CCSingleThreadProxyTest.cpp',
             'tests/CCSolidColorLayerImplTest.cpp',
             'tests/CCTestCommon.h',
             'tests/CCTiledLayerImplTest.cpp',
diff --git a/Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp b/Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp
deleted file mode 100644 (file)
index 541c23f..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "cc/CCSingleThreadProxy.h"
-
-#include "CCThreadedTest.h"
-#include "CompositorFakeWebGraphicsContext3D.h"
-#include "FakeWebGraphicsContext3D.h"
-#include "GraphicsContext3DPrivate.h"
-#include "platform/WebThread.h"
-
-using namespace WebCore;
-using namespace WebKit;
-using namespace WebKitTests;
-
-class FakeWebGraphicsContext3DMakeCurrentFails : public FakeWebGraphicsContext3D {
-public:
-    virtual bool makeContextCurrent() { return false; }
-};
-
-class CCSingleThreadProxyTestInitializeLayerRendererFailsAfterAddAnimation : public CCThreadedTest {
-public:
-    CCSingleThreadProxyTestInitializeLayerRendererFailsAfterAddAnimation()
-    {
-    }
-
-    virtual void beginTest()
-    {
-        // This will cause the animation timer to be set which will fire in
-        // CCSingleThreadProxy::animationTimerDelay() seconds.
-        postAddAnimationToMainThread();
-    }
-
-    virtual void animateLayers(CCLayerTreeHostImpl* layerTreeHostImpl, double monotonicTime)
-    {
-        ASSERT_NOT_REACHED();
-    }
-
-    virtual void didRecreateContext(bool succeeded)
-    {
-        EXPECT_FALSE(succeeded);
-
-        // Make sure we wait CCSingleThreadProxy::animationTimerDelay() seconds
-        // (use ceil just to be sure). If the timer was not disabled, we will
-        // attempt to call CCSingleThreadProxy::compositeImmediately and the
-        // test will fail.
-        endTestAfterDelay(ceil(CCSingleThreadProxy::animationTimerDelay() * 1000));
-    }
-
-    virtual PassOwnPtr<WebGraphicsContext3D> createContext() OVERRIDE
-    {
-        return adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails);
-    }
-
-    virtual void afterTest()
-    {
-    }
-};
-
-TEST_F(CCSingleThreadProxyTestInitializeLayerRendererFailsAfterAddAnimation, runSingleThread)
-{
-    runTest(false);
-}
-
-class CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer : public CCThreadedTest {
-public:
-    CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer()
-    {
-    }
-
-    virtual void beginTest()
-    {
-        // This will cause the animation timer to be set which will fire in
-        // CCSingleThreadProxy::animationTimerDelay() seconds.
-        postDidAddAnimationToMainThread();
-    }
-
-    virtual void animateLayers(CCLayerTreeHostImpl*, double)
-    {
-        ASSERT_NOT_REACHED();
-    }
-
-    virtual void didRecreateContext(bool)
-    {
-        ASSERT_NOT_REACHED();
-    }
-
-    virtual void didAddAnimation()
-    {
-        // Make sure we wait CCSingleThreadProxy::animationTimerDelay() seconds
-        // (use ceil just to be sure). If the timer was not disabled, we will
-        // attempt to call CCSingleThreadProxy::compositeImmediately and the
-        // test will fail.
-        endTestAfterDelay(ceil(CCSingleThreadProxy::animationTimerDelay() * 1000));
-    }
-
-    virtual PassOwnPtr<WebGraphicsContext3D> createContext() OVERRIDE
-    {
-        return adoptPtr(new FakeWebGraphicsContext3DMakeCurrentFails);
-    }
-
-    virtual void afterTest()
-    {
-    }
-};
-
-TEST_F(CCSingleThreadProxyTestDidAddAnimationBeforeInitializingLayerRenderer, runSingleThread)
-{
-    runTest(false);
-}