| 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 56874d79b4d808381584c5cfabfea23f2f4b03cc..f7574e8e59840f6be232d716786d0ca6fe6ecc97 100644
|
| --- a/android_webview/browser/browser_view_renderer.h
|
| +++ b/android_webview/browser/browser_view_renderer.h
|
| @@ -11,6 +11,7 @@
|
| #include <set>
|
|
|
| #include "android_webview/browser/compositor_frame_producer.h"
|
| +#include "android_webview/browser/compositor_id.h"
|
| #include "android_webview/browser/parent_compositor_draw_constraints.h"
|
| #include "base/callback.h"
|
| #include "base/cancelable_callback.h"
|
| @@ -27,6 +28,7 @@ class SkCanvas;
|
| class SkPicture;
|
|
|
| namespace content {
|
| +class RenderViewHost;
|
| class WebContents;
|
| }
|
|
|
| @@ -108,11 +110,12 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
|
| void TrimMemory();
|
|
|
| // SynchronousCompositorClient overrides.
|
| - void DidInitializeCompositor(
|
| - content::SynchronousCompositor* compositor) override;
|
| - void DidDestroyCompositor(
|
| - content::SynchronousCompositor* compositor) override;
|
| - void DidBecomeCurrent(content::SynchronousCompositor* compositor) override;
|
| + void DidInitializeCompositor(content::SynchronousCompositor* compositor,
|
| + int process_id,
|
| + int routing_id) override;
|
| + void DidDestroyCompositor(content::SynchronousCompositor* compositor,
|
| + int process_id,
|
| + int routing_id) override;
|
| void PostInvalidate() override;
|
| void DidUpdateContent() override;
|
| void UpdateRootLayerState(const gfx::Vector2dF& total_scroll_offset_dip,
|
| @@ -131,6 +134,8 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
|
| void RemoveCompositorFrameConsumer(
|
| CompositorFrameConsumer* compositor_frame_consumer) override;
|
|
|
| + void SetActiveCompositorID(const CompositorID& compositor_id);
|
| +
|
| private:
|
| void SetTotalRootLayerScrollOffset(const gfx::Vector2dF& new_value_dip);
|
| bool CanOnDraw();
|
| @@ -160,10 +165,16 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
|
|
|
| // The current compositor that's owned by the current RVH.
|
| content::SynchronousCompositor* compositor_;
|
| + // The process id and routing id of the most recent RVH according to
|
| + // RVHChanged.
|
| + CompositorID compositor_id_;
|
| // A map from compositor's per-WebView unique ID to the compositor's raw
|
| // pointer. A raw pointer here is fine because the entry will be erased when
|
| // a compositor is destroyed.
|
| - std::map<size_t, content::SynchronousCompositor*> compositor_map_;
|
| + std::map<CompositorID,
|
| + content::SynchronousCompositor*,
|
| + CompositorIDComparator>
|
| + compositor_map_;
|
|
|
| bool is_paused_;
|
| bool view_visible_;
|
| @@ -200,8 +211,6 @@ class BrowserViewRenderer : public content::SynchronousCompositorClient,
|
| // TODO(miletus): Make overscroll_rounding_error_ a gfx::ScrollOffset.
|
| gfx::Vector2dF overscroll_rounding_error_;
|
|
|
| - uint32_t next_compositor_id_;
|
| -
|
| ParentCompositorDrawConstraints external_draw_constraints_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(BrowserViewRenderer);
|
|
|