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

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.h

Issue 2527283003: cc: Introduce BeginFrame sequence numbers and acknowledgements.
Patch Set: Address Brian's comments. Created 4 years 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
Index: content/browser/renderer_host/render_widget_host_view_android.h
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index c805d35457443cb57747f1a24fcee6f3a5c8a531..1f08d78b3c94133b41e3421024ec15db13e98c8c 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -20,6 +20,7 @@
#include "base/process/process.h"
#include "cc/input/selection.h"
#include "cc/output/begin_frame_args.h"
+#include "cc/scheduler/begin_frame_source.h"
#include "content/browser/accessibility/browser_accessibility_manager.h"
#include "content/browser/android/content_view_core_impl_observer.h"
#include "content/browser/renderer_host/delegated_frame_evictor.h"
@@ -31,6 +32,7 @@
#include "content/public/browser/readback_types.h"
#include "gpu/command_buffer/common/mailbox.h"
#include "third_party/skia/include/core/SkColor.h"
+#include "ui/android/delegated_frame_host_android.h"
#include "ui/android/view_android.h"
#include "ui/android/window_android_observer.h"
#include "ui/events/android/motion_event_android.h"
@@ -46,10 +48,6 @@ namespace ui {
struct DidOverscrollParams;
}
-namespace ui {
-class DelegatedFrameHostAndroid;
-}
-
namespace content {
class ContentViewCoreImpl;
class OverscrollControllerAndroid;
@@ -70,7 +68,9 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
public StylusTextSelectorClient,
public ui::TouchSelectionControllerClient,
public content::ContentViewCoreImplObserver,
- public content::TextInputManager::Observer {
+ public content::TextInputManager::Observer,
+ public ui::DelegatedFrameHostAndroid::Client,
+ public cc::BeginFrameObserver {
public:
RenderWidgetHostViewAndroid(RenderWidgetHostImpl* widget,
ContentViewCoreImpl* content_view_core);
@@ -143,6 +143,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void UnlockMouse() override;
void OnSwapCompositorFrame(uint32_t compositor_frame_sink_id,
cc::CompositorFrame frame) override;
+ void OnBeginFrameDidNotDraw(const cc::BeginFrameAck& ack) override;
void ClearCompositorFrame() override;
void SetShowingOverscrollGlow(bool showing_glow) override;
void DidOverscroll(const ui::DidOverscrollParams& params) override;
@@ -165,8 +166,6 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void OnRootWindowVisibilityChanged(bool visible) override;
void OnAttachCompositor() override;
void OnDetachCompositor() override;
- void OnVSync(base::TimeTicks frame_time,
- base::TimeDelta vsync_period) override;
void OnAnimate(base::TimeTicks begin_frame_time) override;
void OnActivityStopped() override;
void OnActivityStarted() override;
@@ -195,6 +194,15 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void OnSelectionEvent(ui::SelectionEventType event) override;
std::unique_ptr<ui::TouchHandleDrawable> CreateDrawable() override;
+ // DelegatedFrameHostAndroid::Client implementation.
+ void SetBeginFrameSource(cc::BeginFrameSource* begin_frame_source) override;
+ void ReturnResources(const cc::ReturnedResourceArray& resources) override;
+
+ // cc::BeginFrameObserver implementation.
+ void OnBeginFrame(const cc::BeginFrameArgs& args) override;
+ const cc::BeginFrameArgs& LastUsedBeginFrameArgs() const override;
+ void OnBeginFrameSourcePausedChanged(bool paused) override;
+
// Non-virtual methods
void SetContentViewCore(ContentViewCoreImpl* content_view_core);
SkColor GetCachedBackgroundColor() const;
@@ -284,17 +292,16 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void DestroyDelegatedContent();
void OnLostResources();
- void ReturnResources(const cc::ReturnedResourceArray& resources);
-
- enum VSyncRequestType {
+ enum BeginFrameRequestType {
FLUSH_INPUT = 1 << 0,
BEGIN_FRAME = 1 << 1,
PERSISTENT_BEGIN_FRAME = 1 << 2
};
- void RequestVSyncUpdate(uint32_t requests);
+ void AddBeginFrameRequest(BeginFrameRequestType request);
+ void ClearBeginFrameRequest(BeginFrameRequestType request);
void StartObservingRootWindow();
void StopObservingRootWindow();
- void SendBeginFrame(base::TimeTicks frame_time, base::TimeDelta vsync_period);
+ void SendBeginFrame(cc::BeginFrameArgs args);
bool Animate(base::TimeTicks frame_time);
void RequestDisallowInterceptTouchEvent();
@@ -305,8 +312,13 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
// The model object.
RenderWidgetHostImpl* host_;
- // Used to control action dispatch at the next |OnVSync()| call.
- uint32_t outstanding_vsync_requests_;
+ // The begin frame source being observed. Null if none.
+ cc::BeginFrameSource* begin_frame_source_;
+ cc::BeginFrameArgs last_begin_frame_args_;
+
+ // Indicates whether and for what reason a request for begin frames has been
+ // issued. Used to control action dispatch at the next |OnBeginFrame()| call.
+ uint32_t outstanding_begin_frame_requests_;
bool is_showing_;

Powered by Google App Engine
This is Rietveld 408576698