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

Unified Diff: android_webview/browser/browser_view_renderer.h

Issue 2036023002: Rewire Android WebView's compositor changed signal. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use web_contents_ Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/android_webview.gyp ('k') | android_webview/browser/browser_view_renderer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « android_webview/android_webview.gyp ('k') | android_webview/browser/browser_view_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698