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 content {
20
21class WebLayerTreeViewImplForTesting
22    : public blink::WebLayerTreeView,
23      public cc::LayerTreeHostClient,
24      public cc::LayerTreeHostSingleThreadClient {
25 public:
26  WebLayerTreeViewImplForTesting();
27  virtual ~WebLayerTreeViewImplForTesting();
28
29  void 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 void setViewportSize(const blink::WebSize& device_viewport_size);
38  virtual blink::WebSize layoutViewportSize() const;
39  virtual blink::WebSize deviceViewportSize() const;
40  virtual void setDeviceScaleFactor(float scale_factor);
41  virtual float deviceScaleFactor() const;
42  virtual void setBackgroundColor(blink::WebColor);
43  virtual void setHasTransparentBackground(bool transparent);
44  virtual void setVisible(bool visible);
45  virtual void setPageScaleFactorAndLimits(float page_scale_factor,
46                                           float minimum,
47                                           float maximum);
48  virtual void startPageScaleAnimation(const blink::WebPoint& destination,
49                                       bool use_anchor,
50                                       float new_page_scale,
51                                       double duration_sec);
52  virtual void setNeedsAnimate();
53  virtual bool commitRequested() const;
54  virtual void didStopFlinging();
55  virtual void finishAllRendering();
56  virtual void setDeferCommits(bool defer_commits);
57  virtual void registerViewportLayers(
58      const blink::WebLayer* pageScaleLayerLayer,
59      const blink::WebLayer* innerViewportScrollLayer,
60      const blink::WebLayer* outerViewportScrollLayer) OVERRIDE;
61  virtual void clearViewportLayers() OVERRIDE;
62  virtual void registerSelection(
63      const blink::WebSelectionBound& start,
64      const blink::WebSelectionBound& end) OVERRIDE;
65  virtual void clearSelection() OVERRIDE;
66
67  // cc::LayerTreeHostClient implementation.
68  virtual void WillBeginMainFrame(int frame_id) OVERRIDE {}
69  virtual void DidBeginMainFrame() OVERRIDE {}
70  virtual void BeginMainFrame(const cc::BeginFrameArgs& args) OVERRIDE {}
71  virtual void Layout() OVERRIDE;
72  virtual void ApplyViewportDeltas(const gfx::Vector2d& scroll_delta,
73                                   float page_scale,
74                                   float top_controls_delta) OVERRIDE;
75  virtual void RequestNewOutputSurface(bool fallback) OVERRIDE;
76  virtual void DidInitializeOutputSurface() OVERRIDE {}
77  virtual void WillCommit() OVERRIDE {}
78  virtual void DidCommit() OVERRIDE {}
79  virtual void DidCommitAndDrawFrame() OVERRIDE {}
80  virtual void DidCompleteSwapBuffers() OVERRIDE {}
81
82  // cc::LayerTreeHostSingleThreadClient implementation.
83  virtual void DidPostSwapBuffers() OVERRIDE {}
84  virtual void DidAbortSwapBuffers() OVERRIDE {}
85
86 private:
87  scoped_ptr<cc::LayerTreeHost> layer_tree_host_;
88
89  DISALLOW_COPY_AND_ASSIGN(WebLayerTreeViewImplForTesting);
90};
91
92}  // namespace content
93
94#endif  // CONTENT_TEST_WEB_LAYER_TREE_VIEW_IMPL_FOR_TESTING_H_
95