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

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

Issue 43193002: Aura/ÜC: Drop frames on background tabs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add test, properly extract RendererFrameManager Created 7 years, 2 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
Index: content/browser/renderer_host/render_widget_host_view_aura.h
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index f333eed33b0e013051235ce185ae8371b83f8618..d64e5035aa2ea4acec0e1338e2c1cb62194cf84f 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -388,6 +388,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest,
SkippedDelegatedFrames);
FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange);
+ FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraTest,
+ DiscardDelegatedFrames);
class WindowObserver;
friend class WindowObserver;
@@ -395,6 +397,25 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
class TransientWindowObserver;
friend class TransientWindowObserver;
#endif
+ class DelegatedFrameEvictionObserver : public RendererFrameManagerClient {
danakj 2013/10/28 21:39:21 What if this was a class in a standalone file in c
piman 2013/10/28 22:08:38 Done, though I left in c/b/renderer_host, because
+ public:
+ explicit DelegatedFrameEvictionObserver(RenderWidgetHostViewAura* view);
+ virtual ~DelegatedFrameEvictionObserver();
+
+ void SwappedFrame(bool visible);
+ void DiscardedFrame();
+ void SetVisible(bool visible);
+
+ private:
+ // RendererFrameManagerClient implementation
+ virtual void EvictCurrentFrame() OVERRIDE;
+
+ RenderWidgetHostViewAura* view_;
+ bool has_frame_;
+
+ DISALLOW_COPY_AND_ASSIGN(DelegatedFrameEvictionObserver);
+ };
+ friend class DelegatedFrameEvictionObserver;
// Overridden from ImageTransportFactoryObserver:
virtual void OnLostResources() OVERRIDE;
@@ -526,6 +547,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
const ui::LatencyInfo& latency_info);
void SendDelegatedFrameAck(uint32 output_surface_id);
void SendReturnedDelegatedResources(uint32 output_surface_id);
+ void EvictDelegatedFrame();
// cc::DelegatedFrameProviderClient implementation.
virtual void UnusedResourcesAreAvailable() OVERRIDE;
@@ -754,6 +776,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
unsigned frame_id;
};
scoped_ptr<ReleasedFrameInfo> released_software_frame_;
+ DelegatedFrameEvictionObserver delegated_frame_eviction_observer_;
base::WeakPtrFactory<RenderWidgetHostViewAura> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewAura);

Powered by Google App Engine
This is Rietveld 408576698