| Index: android_webview/browser/browser_view_renderer.h
|
| diff --git a/android_webview/browser/browser_view_renderer.h b/android_webview/browser/browser_view_renderer.h
|
| index fe6cad755461a1250e31005953a80d5e0e11adab..69049978bb14aa2f12ae54e806967baac3df4a6e 100644
|
| --- a/android_webview/browser/browser_view_renderer.h
|
| +++ b/android_webview/browser/browser_view_renderer.h
|
| @@ -9,8 +9,8 @@
|
|
|
| #include <map>
|
|
|
| +#include "android_webview/browser/compositor_frame_producer.h"
|
| #include "android_webview/browser/parent_compositor_draw_constraints.h"
|
| -#include "android_webview/browser/render_thread_manager.h"
|
| #include "base/callback.h"
|
| #include "base/cancelable_callback.h"
|
| #include "base/macros.h"
|
| @@ -33,10 +33,12 @@ namespace android_webview {
|
|
|
| class BrowserViewRendererClient;
|
| class ChildFrame;
|
| +class CompositorFrameConsumer;
|
|
|
| // Interface for all the WebView-specific content rendering operations.
|
| // Provides software and hardware rendering and the Capture Picture API.
|
| -class BrowserViewRenderer : public content::SynchronousCompositorClient {
|
| +class BrowserViewRenderer : public content::SynchronousCompositorClient,
|
| + public CompositorFrameProducer {
|
| public:
|
| static void CalculateTileMemoryPolicy();
|
| static BrowserViewRenderer* FromWebContents(
|
| @@ -52,8 +54,9 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient {
|
| void RegisterWithWebContents(content::WebContents* web_contents);
|
|
|
| // The BrowserViewRenderer client is responsible for ensuring that the
|
| - // RenderThreadManager has been set correctly via this method.
|
| - void SetRenderThreadManager(RenderThreadManager* render_thread_manager);
|
| + // CompositorFrameConsumer has been set correctly via this method.
|
| + void SetCompositorFrameConsumer(
|
| + CompositorFrameConsumer* compositor_frame_consumer);
|
|
|
| // Called before either OnDrawHardware or OnDrawSoftware to set the view
|
| // state of this frame. |scroll| is the view's current scroll offset.
|
| @@ -121,8 +124,9 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient {
|
| const gfx::Vector2dF& latest_overscroll_delta,
|
| const gfx::Vector2dF& current_fling_velocity) override;
|
|
|
| - void OnParentDrawConstraintsUpdated();
|
| - void DetachFunctorFromView();
|
| + // CompositorFrameProducer overrides
|
| + void OnParentDrawConstraintsUpdated() override;
|
| + void OnCompositorFrameConsumerWillDestroy() override;
|
|
|
| private:
|
| void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip);
|
| @@ -134,7 +138,8 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient {
|
| const gfx::SizeF& scrollable_size_dip);
|
|
|
| void ReturnUnusedResource(std::unique_ptr<ChildFrame> frame);
|
| - void ReturnResourceFromParent();
|
| + void ReturnResourceFromParent(
|
| + CompositorFrameConsumer* compositor_frame_consumer);
|
| void ReleaseHardware();
|
|
|
| gfx::Vector2d max_scroll_offset() const;
|
| @@ -148,7 +153,7 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient {
|
|
|
| BrowserViewRendererClient* const client_;
|
| const scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
|
| - RenderThreadManager* render_thread_manager_;
|
| + CompositorFrameConsumer* compositor_frame_consumer_;
|
| bool disable_page_visibility_;
|
|
|
| // The current compositor that's owned by the current RVH.
|
|
|