1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_TEST_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_ 6#define CONTENT_TEST_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_ 7 8#include "base/memory/scoped_ptr.h" 9#include "cc/trees/layer_tree_host_client.h" 10#include "cc/trees/layer_tree_host_single_thread_client.h" 11#include "third_party/WebKit/public/platform/WebLayerTreeView.h" 12 13namespace cc { 14class LayerTreeHost; 15} 16 17namespace blink { class WebLayer; } 18 19namespace webkit { 20 21class WebLayerTreeViewImplForTesting 22 : public blink::WebLayerTreeView, 23 public cc::LayerTreeHostClient, 24 public cc::LayerTreeHostSingleThreadClient { 25 public: 26 WebLayerTreeViewImplForTesting(); 27 virtual ~WebLayerTreeViewImplForTesting(); 28 29 bool Initialize(); 30 31 // blink::WebLayerTreeView implementation. 32 virtual void setSurfaceReady(); 33 virtual void setRootLayer(const blink::WebLayer& layer); 34 virtual void clearRootLayer(); 35 virtual void setViewportSize(const blink::WebSize& unused_deprecated, 36 const blink::WebSize& device_viewport_size); 37 virtual blink::WebSize layoutViewportSize() const; 38 virtual blink::WebSize deviceViewportSize() const; 39 virtual void setDeviceScaleFactor(float scale_factor); 40 virtual float deviceScaleFactor() const; 41 virtual void setBackgroundColor(blink::WebColor); 42 virtual void setHasTransparentBackground(bool transparent); 43 virtual void setVisible(bool visible); 44 virtual void setPageScaleFactorAndLimits(float page_scale_factor, 45 float minimum, 46 float maximum); 47 virtual void startPageScaleAnimation(const blink::WebPoint& destination, 48 bool use_anchor, 49 float new_page_scale, 50 double duration_sec); 51 virtual void setNeedsAnimate(); 52 virtual bool commitRequested() const; 53 virtual void composite(); 54 virtual void didStopFlinging(); 55 virtual bool compositeAndReadback(void* pixels, const blink::WebRect& rect); 56 virtual void finishAllRendering(); 57 virtual void setDeferCommits(bool defer_commits); 58 virtual void renderingStats( 59 blink::WebRenderingStats& stats) const; // NOLINT(runtime/references) 60 61 // cc::LayerTreeHostClient implementation. 62 virtual void WillBeginMainFrame(int frame_id) OVERRIDE {} 63 virtual void DidBeginMainFrame() OVERRIDE {} 64 virtual void Animate(double frame_begin_time) OVERRIDE {} 65 virtual void Layout() OVERRIDE; 66 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, float page_scale) 67 OVERRIDE; 68 virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) 69 OVERRIDE; 70 virtual void DidInitializeOutputSurface(bool success) OVERRIDE {} 71 virtual void WillCommit() OVERRIDE {} 72 virtual void DidCommit() OVERRIDE {} 73 virtual void DidCommitAndDrawFrame() OVERRIDE {} 74 virtual void DidCompleteSwapBuffers() OVERRIDE {} 75 virtual scoped_refptr<cc::ContextProvider> 76 OffscreenContextProvider() OVERRIDE; 77 78 // cc::LayerTreeHostSingleThreadClient implementation. 79 virtual void ScheduleComposite() OVERRIDE {} 80 virtual void ScheduleAnimation() OVERRIDE {} 81 virtual void DidPostSwapBuffers() OVERRIDE {} 82 virtual void DidAbortSwapBuffers() OVERRIDE {} 83 84 private: 85 scoped_ptr<cc::LayerTreeHost> layer_tree_host_; 86 87 DISALLOW_COPY_AND_ASSIGN(WebLayerTreeViewImplForTesting); 88}; 89 90} // namespace webkit 91 92#endif // CONTENT_TEST_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_ 93