Title: [121277] trunk/Source
Revision
121277
Author
[email protected]
Date
2012-06-26 12:34:23 -0700 (Tue, 26 Jun 2012)

Log Message

[chromium] The single thread proxy should not automatically tick new animations.
https://bugs.webkit.org/show_bug.cgi?id=89996

Patch by Ian Vollick <[email protected]> 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.

Modified Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (121276 => 121277)


--- trunk/Source/WebCore/ChangeLog	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebCore/ChangeLog	2012-06-26 19:34:23 UTC (rev 121277)
@@ -1,3 +1,19 @@
+2012-06-26  Ian Vollick  <[email protected]>
+
+        [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  <[email protected]>
 
         Crash in FixedTableLayout::layout

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp (121276 => 121277)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp	2012-06-26 19:34:23 UTC (rev 121277)
@@ -39,26 +39,6 @@
 
 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 @@
     : m_layerTreeHost(layerTreeHost)
     , m_contextLost(false)
     , m_compositorIdentifier(-1)
-    , m_animationTimer(CCSingleThreadProxyAnimationTimer::create(this))
     , m_layerRendererInitialized(false)
     , m_nextFrameIsNewlyCommittedFrame(false)
 {
@@ -168,9 +147,7 @@
         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 @@
 
 void CCSingleThreadProxy::didAddAnimation()
 {
-    m_animationTimer->startOneShot(animationTimerDelay());
 }
 
 void CCSingleThreadProxy::stop()
@@ -318,11 +294,6 @@
     }
 }
 
-double CCSingleThreadProxy::animationTimerDelay()
-{
-    return 1 / 60.0;
-}
-
 void CCSingleThreadProxy::forceSerializeOnSwapBuffers()
 {
     {

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h (121276 => 121277)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h	2012-06-26 19:34:23 UTC (rev 121277)
@@ -34,7 +34,6 @@
 namespace WebCore {
 
 class CCLayerTreeHost;
-class CCSingleThreadProxyAnimationTimer;
 
 class CCSingleThreadProxy : public CCProxy, CCLayerTreeHostImplClient {
 public:
@@ -77,12 +76,7 @@
     // 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 @@
     // 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;

Modified: trunk/Source/WebKit/chromium/ChangeLog (121276 => 121277)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-06-26 19:34:23 UTC (rev 121277)
@@ -1,5 +1,15 @@
 2012-06-26  Ian Vollick  <[email protected]>
 
+        [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  <[email protected]>
+
         [chromium] Layer chromium should need a redraw after getting its first non-empty bounds.
         https://bugs.webkit.org/show_bug.cgi?id=89784
 

Modified: trunk/Source/WebKit/chromium/WebKit.gypi (121276 => 121277)


--- trunk/Source/WebKit/chromium/WebKit.gypi	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebKit/chromium/WebKit.gypi	2012-06-26 19:34:23 UTC (rev 121277)
@@ -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',

Deleted: trunk/Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp (121276 => 121277)


--- trunk/Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp	2012-06-26 19:21:32 UTC (rev 121276)
+++ trunk/Source/WebKit/chromium/tests/CCSingleThreadProxyTest.cpp	2012-06-26 19:34:23 UTC (rev 121277)
@@ -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);
-}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to