[chromium] Make WebViewImpl depend on WebLayerTreeView instead of CCLayerTreeHost
authorjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Feb 2012 02:55:37 +0000 (02:55 +0000)
committerjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Feb 2012 02:55:37 +0000 (02:55 +0000)
commit1808d5851427e009c9a8ebeb19b666de37ae2bf4
treee2df7148418f98ef01f44c0088edb3a1870cd3c8
parent6619e8cd3acb37a98328e835a91f2f191ae46922
[chromium] Make WebViewImpl depend on WebLayerTreeView instead of CCLayerTreeHost
https://bugs.webkit.org/show_bug.cgi?id=75591

Reviewed by Kenneth Russell.

This converts WebViewImpl from depending on CCLayerTreeHost to WebLayerTreeView in order to provide better
isolation and allow for future refactorings. The changes to WebViewImpl are mostly mechanical. The
WebLayerTreeView and WebLayerTreeViewClient interfaces have both grown and changed slightly:

- Setup path for WebLayerTreeView changed to expose an initialize() function instead of a create() factory
function. The new model is that a WebLayerTreeView when constructed is in a null state. Calling initialize()
attempts to re-initialize the WLTV, which can either fail or succeed.  All other functions must be called on a
successfully initialized view.

- WebLayerTreeView expanded to include functionality that CCLayerTreeHost exposes but WebLayerTreeView did not.
Some of this is only valid for the single thread case and will be removed when we invert the scheduling control
logic, these bits are commented.

- WebLayerTreeViewClient expanded with some flow-control related APIs.

Refactor only, no change in behavior.

* public/platform/WebLayerTreeView.h:
(WebKit::WebLayerTreeView::Settings::Settings):
(WebKit::WebLayerTreeView::isNull):
* public/platform/WebLayerTreeViewClient.h:
* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::scheduleCompositingLayerSync):
* src/WebLayerTreeView.cpp:
(WebKit::WebLayerTreeView::initialize):
(WebKit::WebLayerTreeView::compositorIdentifier):
(WebKit::WebLayerTreeView::setVisible):
(WebKit::WebLayerTreeView::setNeedsAnimate):
(WebKit::WebLayerTreeView::updateAnimations):
(WebKit::WebLayerTreeView::setNeedsRedraw):
(WebKit::WebLayerTreeView::setPageScaleFactorAndLimits):
(WebKit::WebLayerTreeView::startPageScaleAnimation):
(WebKit::WebLayerTreeView::finishAllRendering):
(WebKit::WebLayerTreeView::context):
(WebKit::WebLayerTreeView::loseCompositorContext):
* src/WebLayerTreeViewImpl.cpp:
(WebKit::WebLayerTreeViewImpl::didRecreateGraphicsContext):
(WebKit::WebLayerTreeViewImpl::didCommitAndDrawFrame):
(WebKit::WebLayerTreeViewImpl::didCompleteSwapBuffers):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::animate):
(WebKit::WebViewImpl::doPixelReadbackToCanvas):
(WebKit::WebViewImpl::paint):
(WebKit::WebViewImpl::composite):
(WebKit::WebViewImpl::loseCompositorContext):
(WebKit::WebViewImpl::computePageScaleFactorLimits):
(WebKit::WebViewImpl::addPageOverlay):
(WebKit::WebViewImpl::removePageOverlay):
(WebKit::WebViewImpl::setRootGraphicsLayer):
(WebKit::WebViewImpl::scheduleCompositingLayerSync):
(WebKit::WebViewImpl::scrollRootLayerRect):
(WebKit::WebViewImpl::invalidateRootLayerRect):
(WebKit::WebViewImpl::scheduleAnimation):
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
(WebKit::WebViewImpl::createContext3D):
(WebKit::WebViewImpl::applyScrollAndScale):
(WebKit::WebViewImpl::didRebindGraphicsContext):
(WebKit::WebViewImpl::updateLayerTreeViewport):
(WebKit::WebViewImpl::graphicsContext3D):
(WebKit::WebViewImpl::setVisibilityState):
* src/WebViewImpl.h:
* tests/WebLayerTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@108883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/Platform/chromium/public/WebLayerTreeView.h
Source/Platform/chromium/public/WebLayerTreeViewClient.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/ChromeClientImpl.cpp
Source/WebKit/chromium/src/WebLayerTreeView.cpp
Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h
Source/WebKit/chromium/tests/WebFrameTest.cpp
Source/WebKit/chromium/tests/WebLayerTest.cpp