Chromium Code Reviews| Index: content/renderer/gpu/render_widget_compositor.h |
| diff --git a/content/renderer/gpu/render_widget_compositor.h b/content/renderer/gpu/render_widget_compositor.h |
| index a36b5f02b7ca12b46ed11b93f202fe78fd97801f..e78a93df84c9a5ae1d508d595154073d08c8efb0 100644 |
| --- a/content/renderer/gpu/render_widget_compositor.h |
| +++ b/content/renderer/gpu/render_widget_compositor.h |
| @@ -53,6 +53,8 @@ class CONTENT_EXPORT RenderWidgetCompositor |
| : NON_EXPORTED_BASE(public blink::WebLayerTreeView), |
| NON_EXPORTED_BASE(public cc::LayerTreeHostClient), |
| NON_EXPORTED_BASE(public cc::LayerTreeHostSingleThreadClient) { |
| + using ReportTimeCallback = base::Callback<void(bool, double)>; |
| + |
| public: |
| // Attempt to construct and initialize a compositor instance for the widget |
| // with the given settings. Returns NULL if initialization fails. |
| @@ -167,6 +169,7 @@ class CONTENT_EXPORT RenderWidgetCompositor |
| void SetShowPaintRects(bool show) override; |
| void SetShowDebugBorders(bool show) override; |
| void SetShowScrollBottleneckRects(bool show) override; |
| + void NotifySwapTime(base::Callback<void(bool, double)> callback) override; |
| void UpdateBrowserControlsState(blink::WebBrowserControlsState constraints, |
| blink::WebBrowserControlsState current, |
| @@ -219,6 +222,25 @@ class CONTENT_EXPORT RenderWidgetCompositor |
| cc::LayerTreeHost* layer_tree_host() { return layer_tree_host_.get(); } |
| private: |
| + class ReportTimeSwapPromise : public cc::SwapPromise { |
| + public: |
| + ReportTimeSwapPromise( |
| + ReportTimeCallback callback, |
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); |
| + ~ReportTimeSwapPromise() override; |
| + |
| + void DidActivate() override {} |
| + void WillSwap(cc::CompositorFrameMetadata* metadata) override {} |
| + void DidSwap() override; |
| + DidNotSwapAction DidNotSwap(DidNotSwapReason reason) override; |
| + |
| + int64_t TraceId() const override; |
| + |
| + private: |
| + ReportTimeCallback callback_; |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
|
sunnyps
2017/05/02 01:20:46
nit: DISALLOW_COPY_AND_ASSIGN(ReportTimeSwapPromis
panicker
2017/05/02 21:21:36
Done.
|
| + }; |
| + |
| void SetCompositorFrameSink( |
| std::unique_ptr<cc::CompositorFrameSink> compositor_frame_sink); |
| void LayoutAndUpdateLayers(); |