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 WEBKIT_SUPPORT_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_ 6 #define WEBKIT_SUPPORT_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 "third_party/WebKit/public/platform/WebLayerTreeView.h" 11 12 namespace cc { 13 class LayerTreeHost; 14 } 15 16 namespace WebKit { class WebLayer; } 17 18 namespace webkit { 19 20 class WebLayerTreeViewImplForTesting : public WebKit::WebLayerTreeView, 21 public cc::LayerTreeHostClient { 22 public: 23 WebLayerTreeViewImplForTesting(); 24 virtual ~WebLayerTreeViewImplForTesting(); 25 26 bool Initialize(); 27 28 // WebKit::WebLayerTreeView implementation. 29 virtual void setSurfaceReady(); 30 virtual void setRootLayer(const WebKit::WebLayer& layer); 31 virtual void clearRootLayer(); 32 virtual void setViewportSize(const WebKit::WebSize& unused_deprecated, 33 const WebKit::WebSize& device_viewport_size); 34 virtual WebKit::WebSize layoutViewportSize() const; 35 virtual WebKit::WebSize deviceViewportSize() const; 36 virtual void setDeviceScaleFactor(float scale_factor); 37 virtual float deviceScaleFactor() const; 38 virtual void setBackgroundColor(WebKit::WebColor); 39 virtual void setHasTransparentBackground(bool transparent); 40 virtual void setVisible(bool visible); 41 virtual void setPageScaleFactorAndLimits(float page_scale_factor, 42 float minimum, 43 float maximum); 44 virtual void startPageScaleAnimation(const WebKit::WebPoint& destination, 45 bool use_anchor, 46 float new_page_scale, 47 double duration_sec); 48 virtual void setNeedsAnimate(); 49 virtual void setNeedsRedraw(); 50 virtual bool commitRequested() const; 51 virtual void composite(); 52 virtual void didStopFlinging(); 53 virtual bool compositeAndReadback(void* pixels, const WebKit::WebRect& rect); 54 virtual void finishAllRendering(); 55 virtual void setDeferCommits(bool defer_commits); 56 virtual void renderingStats( 57 WebKit::WebRenderingStats& stats) const; // NOLINT(runtime/references) 58 59 // cc::LayerTreeHostClient implementation. 60 virtual void WillBeginFrame() OVERRIDE {} 61 virtual void DidBeginFrame() OVERRIDE {} 62 virtual void Animate(double frame_begin_time) OVERRIDE {} 63 virtual void Layout() OVERRIDE; 64 virtual void ApplyScrollAndScale(gfx::Vector2d scroll_delta, float page_scale) 65 OVERRIDE; 66 virtual scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) 67 OVERRIDE; 68 virtual void DidInitializeOutputSurface(bool success) OVERRIDE {} 69 virtual void WillCommit() OVERRIDE {} 70 virtual void DidCommit() OVERRIDE {} 71 virtual void DidCommitAndDrawFrame() OVERRIDE {} 72 virtual void DidCompleteSwapBuffers() OVERRIDE {} 73 virtual void ScheduleComposite() OVERRIDE; 74 virtual scoped_refptr<cc::ContextProvider> 75 OffscreenContextProviderForMainThread() OVERRIDE; 76 virtual scoped_refptr<cc::ContextProvider> 77 OffscreenContextProviderForCompositorThread() OVERRIDE; 78 79 private: 80 scoped_ptr<cc::LayerTreeHost> layer_tree_host_; 81 82 DISALLOW_COPY_AND_ASSIGN(WebLayerTreeViewImplForTesting); 83 }; 84 85 } // namespace webkit 86 87 #endif // WEBKIT_SUPPORT_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_ 88