Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(862)

Side by Side Diff: components/html_viewer/web_layer_tree_view_impl.h

Issue 1677293002: Bye bye Mandoline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 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 COMPONENTS_HTML_VIEWER_WEB_LAYER_TREE_VIEW_IMPL_H_
6 #define COMPONENTS_HTML_VIEWER_WEB_LAYER_TREE_VIEW_IMPL_H_
7
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/memory/weak_ptr.h"
12 #include "base/single_thread_task_runner.h"
13 #include "cc/trees/layer_tree_host_client.h"
14 #include "components/mus/public/cpp/output_surface.h"
15 #include "components/mus/public/interfaces/gpu.mojom.h"
16 #include "third_party/WebKit/public/platform/WebLayerTreeView.h"
17
18 namespace base {
19 class SingleThreadTaskRunner;
20 }
21
22 namespace blink {
23 class WebWidget;
24 }
25
26 namespace cc {
27 class LayerTreeHost;
28 class TaskGraphRunner;
29 }
30
31 namespace gpu {
32 class GpuMemoryBufferManager;
33 }
34
35 namespace html_viewer {
36
37 class WebLayerTreeViewImpl : public blink::WebLayerTreeView,
38 public cc::LayerTreeHostClient {
39 public:
40 WebLayerTreeViewImpl(
41 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
42 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
43 cc::TaskGraphRunner* task_graph_runner);
44 ~WebLayerTreeViewImpl() override;
45
46 void Initialize(mus::mojom::GpuPtr gpu_service,
47 mus::Window* window,
48 blink::WebWidget* widget);
49
50 // cc::LayerTreeHostClient implementation.
51 void WillBeginMainFrame() override;
52 void DidBeginMainFrame() override;
53 void BeginMainFrame(const cc::BeginFrameArgs& args) override;
54 void BeginMainFrameNotExpectedSoon() override;
55 void UpdateLayerTreeHost() override;
56 void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
57 const gfx::Vector2dF& outer_delta,
58 const gfx::Vector2dF& elastic_overscroll_delta,
59 float page_scale,
60 float top_controls_delta) override;
61 void RequestNewOutputSurface() override;
62 void DidFailToInitializeOutputSurface() override;
63 void DidInitializeOutputSurface() override;
64 void WillCommit() override;
65 void DidCommit() override;
66 void DidCommitAndDrawFrame() override;
67 void DidCompleteSwapBuffers() override;
68 void DidCompletePageScaleAnimation() override {}
69 void RecordFrameTimingEvents(
70 scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
71 scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events)
72 override {}
73
74 // blink::WebLayerTreeView implementation.
75 void setRootLayer(const blink::WebLayer& layer) override;
76 void clearRootLayer() override;
77 void setViewportSize(const blink::WebSize& device_viewport_size) override;
78 void setDeviceScaleFactor(float) override;
79 virtual float deviceScaleFactor() const;
80 void setBackgroundColor(blink::WebColor color) override;
81 void setHasTransparentBackground(bool has_transparent_background) override;
82 void setVisible(bool visible) override;
83 void setPageScaleFactorAndLimits(float page_scale_factor,
84 float minimum,
85 float maximum) override;
86 void startPageScaleAnimation(const blink::WebPoint& destination,
87 bool use_anchor,
88 float new_page_scale,
89 double duration_sec) override;
90 void heuristicsForGpuRasterizationUpdated(bool matches_heuristic) override {}
91 void setNeedsAnimate() override;
92 void didStopFlinging() override {}
93 void compositeAndReadbackAsync(
94 blink::WebCompositeAndReadbackAsyncCallback* callback) override {}
95 void setDeferCommits(bool defer_commits) override {}
96 void registerForAnimations(blink::WebLayer* layer) override;
97 void registerViewportLayers(
98 const blink::WebLayer* overscrollElasticityLayer,
99 const blink::WebLayer* pageScaleLayerLayer,
100 const blink::WebLayer* innerViewportScrollLayer,
101 const blink::WebLayer* outerViewportScrollLayer) override;
102 void clearViewportLayers() override;
103 void registerSelection(const blink::WebSelection& selection) override {}
104 void clearSelection() override {}
105 void setShowFPSCounter(bool) override {}
106 void setShowPaintRects(bool) override {}
107 void setShowDebugBorders(bool) override {}
108 void setShowScrollBottleneckRects(bool) override {}
109
110 private:
111 // widget_ and window_ will outlive us.
112 blink::WebWidget* widget_;
113 mus::Window* window_;
114 scoped_ptr<cc::LayerTreeHost> layer_tree_host_;
115 scoped_ptr<cc::OutputSurface> output_surface_;
116 scoped_refptr<base::SingleThreadTaskRunner>
117 main_thread_compositor_task_runner_;
118 base::WeakPtr<WebLayerTreeViewImpl> main_thread_bound_weak_ptr_;
119
120 base::WeakPtrFactory<WebLayerTreeViewImpl> weak_factory_;
121 DISALLOW_COPY_AND_ASSIGN(WebLayerTreeViewImpl);
122 };
123
124 } // namespace html_viewer
125
126 #endif // COMPONENTS_HTML_VIEWER_WEB_LAYER_TREE_VIEW_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698