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); |