Chromium Code Reviews| Index: Source/web/ChromeClientImpl.cpp |
| diff --git a/Source/web/ChromeClientImpl.cpp b/Source/web/ChromeClientImpl.cpp |
| index 98377cec588585c34a4b2762d7e0ef5df5921c5c..8200bb4b80a3065bb92f10d277db21511c119511 100644 |
| --- a/Source/web/ChromeClientImpl.cpp |
| +++ b/Source/web/ChromeClientImpl.cpp |
| @@ -34,6 +34,7 @@ |
| #include "bindings/core/v8/ScriptController.h" |
| #include "core/HTMLNames.h" |
| +#include "core/animation/AnimationTimeline.h" |
| #include "core/dom/AXObjectCache.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/Fullscreen.h" |
| @@ -107,6 +108,8 @@ |
| namespace blink { |
| +class WebCompositorAnimationTimeline; |
| + |
| // Converts a AXObjectCache::AXNotification to a WebAXEvent |
| static WebAXEvent toWebAXEvent(AXObjectCache::AXNotification notification) |
| { |
| @@ -691,19 +694,24 @@ GraphicsLayerFactory* ChromeClientImpl::graphicsLayerFactory() const |
| void ChromeClientImpl::attachRootGraphicsLayer(GraphicsLayer* rootLayer, LocalFrame* localRoot) |
| { |
| + WebCompositorAnimationTimeline* compositorTimeline = rootLayer && localRoot->document() ? localRoot->document()->timeline().compositorTimeline() : nullptr; |
| + |
| // FIXME: For top-level frames we still use the WebView as a WebWidget. This special |
| // case will be removed when top-level frames get WebFrameWidgets. |
| if (localRoot->isMainFrame()) { |
| + m_webView->setCompositorAnimationTimeline(compositorTimeline); |
|
aelias_OOO_until_Jul13
2015/03/13 00:38:32
This looks out of place here, a better place might
loyso (OOO)
2015/03/13 01:07:01
Not sure how to do that.
1) CompositorTimeline obj
aelias_OOO_until_Jul13
2015/03/13 01:31:18
Sorry, I don't follow right now how these points r
loyso (OOO)
2015/03/13 03:37:42
I want compositor timeline to be attached/detached
aelias_OOO_until_Jul13
2015/03/17 18:12:27
OK, looking at that, the plumbing would be pretty
loyso (OOO)
2015/03/18 06:59:43
Ok. But I could put a note or TODO comment here.
|
| m_webView->setRootGraphicsLayer(rootLayer); |
| } else { |
| WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(localRoot); |
| // FIXME: The following conditional is only needed for staging until the Chromium patch |
| // lands that instantiates a WebFrameWidget. |
| if (!webFrame->frameWidget()) { |
| + m_webView->setCompositorAnimationTimeline(compositorTimeline); |
| m_webView->setRootGraphicsLayer(rootLayer); |
| return; |
| } |
| ASSERT(webFrame && webFrame->frameWidget()); |
| + webFrame->frameWidget()->setCompositorAnimationTimeline(compositorTimeline); |
| webFrame->frameWidget()->setRootGraphicsLayer(rootLayer); |
| } |
| } |