Index: Source/WebCore/platform/graphics/chromium/LayerChromium.cpp |
=================================================================== |
--- Source/WebCore/platform/graphics/chromium/LayerChromium.cpp (revision 116996) |
+++ Source/WebCore/platform/graphics/chromium/LayerChromium.cpp (working copy) |
@@ -627,9 +627,20 @@ |
void LayerChromium::setLayerAnimationController(PassOwnPtr<CCLayerAnimationController> layerAnimationController) |
{ |
m_layerAnimationController = layerAnimationController; |
+ if (m_layerAnimationController) { |
+ m_layerAnimationController->setClient(this); |
+ m_layerAnimationController->setForceSync(); |
+ } |
setNeedsCommit(); |
} |
+PassOwnPtr<CCLayerAnimationController> LayerChromium::releaseLayerAnimationController() |
+{ |
+ OwnPtr<CCLayerAnimationController> toReturn = m_layerAnimationController.release(); |
+ m_layerAnimationController = CCLayerAnimationController::create(this); |
+ return toReturn.release(); |
+} |
+ |
bool LayerChromium::hasActiveAnimation() const |
{ |
return m_layerAnimationController->hasActiveAnimation(); |
@@ -638,7 +649,8 @@ |
void LayerChromium::notifyAnimationStarted(const CCAnimationEvent& event, double wallClockTime) |
{ |
m_layerAnimationController->notifyAnimationStarted(event); |
- m_layerAnimationDelegate->notifyAnimationStarted(wallClockTime); |
+ if (m_layerAnimationDelegate) |
+ m_layerAnimationDelegate->notifyAnimationStarted(wallClockTime); |
} |
void LayerChromium::notifyAnimationFinished(double wallClockTime) |