This source file includes following definitions.
- Initialize
- setSurfaceReady
- setRootLayer
- clearRootLayer
- setViewportSize
- layoutViewportSize
- deviceViewportSize
- setDeviceScaleFactor
- deviceScaleFactor
- setBackgroundColor
- setHasTransparentBackground
- setVisible
- setPageScaleFactorAndLimits
- startPageScaleAnimation
- setNeedsAnimate
- commitRequested
- didStopFlinging
- compositeAndReadback
- finishAllRendering
- setDeferCommits
- Layout
- ApplyScrollAndScale
- CreateOutputSurface
- OffscreenContextProvider
- registerViewportLayers
- clearViewportLayers
#include "content/test/web_layer_tree_view_impl_for_testing.h"
#include "base/command_line.h"
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/lock.h"
#include "cc/base/switches.h"
#include "cc/input/input_handler.h"
#include "cc/layers/layer.h"
#include "cc/output/output_surface.h"
#include "cc/test/test_context_provider.h"
#include "cc/trees/layer_tree_host.h"
#include "content/test/test_context_provider_factory.h"
#include "content/test/test_webkit_platform_support.h"
#include "third_party/WebKit/public/platform/Platform.h"
#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h"
#include "third_party/WebKit/public/platform/WebLayer.h"
#include "third_party/WebKit/public/platform/WebLayerTreeView.h"
#include "third_party/WebKit/public/platform/WebSize.h"
#include "ui/gfx/frame_time.h"
#include "webkit/renderer/compositor_bindings/web_layer_impl.h"
using blink::WebColor;
using blink::WebGraphicsContext3D;
using blink::WebRect;
using blink::WebSize;
using webkit::WebLayerImpl;
namespace content {
WebLayerTreeViewImplForTesting::WebLayerTreeViewImplForTesting() {}
WebLayerTreeViewImplForTesting::~WebLayerTreeViewImplForTesting() {}
void WebLayerTreeViewImplForTesting::Initialize() {
cc::LayerTreeSettings settings;
settings.layer_transforms_should_scale_layer_contents = true;
settings.accelerated_animation_enabled = true;
layer_tree_host_ =
cc::LayerTreeHost::CreateSingleThreaded(this, this, NULL, settings);
DCHECK(layer_tree_host_);
}
void WebLayerTreeViewImplForTesting::setSurfaceReady() {
layer_tree_host_->SetLayerTreeHostClientReady();
}
void WebLayerTreeViewImplForTesting::setRootLayer(
const blink::WebLayer& root) {
layer_tree_host_->SetRootLayer(
static_cast<const WebLayerImpl*>(&root)->layer());
}
void WebLayerTreeViewImplForTesting::clearRootLayer() {
layer_tree_host_->SetRootLayer(scoped_refptr<cc::Layer>());
}
void WebLayerTreeViewImplForTesting::setViewportSize(
const WebSize& unused_deprecated,
const WebSize& device_viewport_size) {
layer_tree_host_->SetViewportSize(device_viewport_size);
}
WebSize WebLayerTreeViewImplForTesting::layoutViewportSize() const {
return layer_tree_host_->device_viewport_size();
}
WebSize WebLayerTreeViewImplForTesting::deviceViewportSize() const {
return layer_tree_host_->device_viewport_size();
}
void WebLayerTreeViewImplForTesting::setDeviceScaleFactor(
float device_scale_factor) {
layer_tree_host_->SetDeviceScaleFactor(device_scale_factor);
}
float WebLayerTreeViewImplForTesting::deviceScaleFactor() const {
return layer_tree_host_->device_scale_factor();
}
void WebLayerTreeViewImplForTesting::setBackgroundColor(WebColor color) {
layer_tree_host_->set_background_color(color);
}
void WebLayerTreeViewImplForTesting::setHasTransparentBackground(
bool transparent) {
layer_tree_host_->set_has_transparent_background(transparent);
}
void WebLayerTreeViewImplForTesting::setVisible(bool visible) {
layer_tree_host_->SetVisible(visible);
}
void WebLayerTreeViewImplForTesting::setPageScaleFactorAndLimits(
float page_scale_factor,
float minimum,
float maximum) {
layer_tree_host_->SetPageScaleFactorAndLimits(
page_scale_factor, minimum, maximum);
}
void WebLayerTreeViewImplForTesting::startPageScaleAnimation(
const blink::WebPoint& scroll,
bool use_anchor,
float new_page_scale,
double duration_sec) {}
void WebLayerTreeViewImplForTesting::setNeedsAnimate() {
layer_tree_host_->SetNeedsAnimate();
}
bool WebLayerTreeViewImplForTesting::commitRequested() const {
return layer_tree_host_->CommitRequested();
}
void WebLayerTreeViewImplForTesting::didStopFlinging() {}
bool WebLayerTreeViewImplForTesting::compositeAndReadback(
void* pixels, const WebRect& rect_in_device_viewport) {
return layer_tree_host_->CompositeAndReadback(pixels,
rect_in_device_viewport);
}
void WebLayerTreeViewImplForTesting::finishAllRendering() {
layer_tree_host_->FinishAllRendering();
}
void WebLayerTreeViewImplForTesting::setDeferCommits(bool defer_commits) {
layer_tree_host_->SetDeferCommits(defer_commits);
}
void WebLayerTreeViewImplForTesting::Layout() {
}
void WebLayerTreeViewImplForTesting::ApplyScrollAndScale(
const gfx::Vector2d& scroll_delta,
float page_scale) {}
scoped_ptr<cc::OutputSurface>
WebLayerTreeViewImplForTesting::CreateOutputSurface(bool fallback) {
return make_scoped_ptr(
new cc::OutputSurface(cc::TestContextProvider::Create()));
}
scoped_refptr<cc::ContextProvider>
WebLayerTreeViewImplForTesting::OffscreenContextProvider() {
return content::TestContextProviderFactory::GetInstance()->
OffscreenContextProviderForMainThread();
}
void WebLayerTreeViewImplForTesting::registerViewportLayers(
const blink::WebLayer* pageScaleLayer,
const blink::WebLayer* innerViewportScrollLayer,
const blink::WebLayer* outerViewportScrollLayer) {
layer_tree_host_->RegisterViewportLayers(
static_cast<const WebLayerImpl*>(pageScaleLayer)->layer(),
static_cast<const WebLayerImpl*>(innerViewportScrollLayer)->layer(),
outerViewportScrollLayer
? static_cast<const WebLayerImpl*>(outerViewportScrollLayer)->layer()
: NULL);
}
void WebLayerTreeViewImplForTesting::clearViewportLayers() {
layer_tree_host_->RegisterViewportLayers(scoped_refptr<cc::Layer>(),
scoped_refptr<cc::Layer>(),
scoped_refptr<cc::Layer>());
}
}