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

Unified Diff: content/browser/renderer_host/offscreen_canvas_surface_manager.cc

Issue 2644653003: Make OffscreenCanvas animation in sync with its placeholder canvas's parent frame rate (Closed)
Patch Set: safeguard Created 3 years, 11 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/offscreen_canvas_surface_manager.cc
diff --git a/content/browser/renderer_host/offscreen_canvas_surface_manager.cc b/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
index 65ff06e0c83c3e60eaf4e6a0e92eb6a283f56809..82301b60d4a07fdf720bfc6595d8a1ee16a11944 100644
--- a/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
+++ b/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
@@ -27,6 +27,30 @@ OffscreenCanvasSurfaceManager* OffscreenCanvasSurfaceManager::GetInstance() {
return g_manager.Pointer();
}
+void OffscreenCanvasSurfaceManager::RegisterFrameSinkToItsParent(
Fady Samuel 2017/01/19 04:05:43 nit: RegisterFrameSinkToParent?
xlai (Olivia) 2017/01/19 16:43:56 Done.
+ cc::FrameSinkId child_frame_sink_id) {
Fady Samuel 2017/01/19 04:05:43 nit: const cc::FrameSinkId&
xlai (Olivia) 2017/01/19 16:43:56 Done.
+ auto surface_iter = registered_surface_instances_.find(child_frame_sink_id);
+ if (surface_iter == registered_surface_instances_.end())
+ return;
+ OffscreenCanvasSurfaceImpl* surfaceImpl = surface_iter->second;
+ if (surfaceImpl->parent_frame_sink_id().is_valid()) {
+ GetSurfaceManager()->RegisterFrameSinkHierarchy(
+ surfaceImpl->parent_frame_sink_id(), child_frame_sink_id);
+ }
+}
+
+void OffscreenCanvasSurfaceManager::UnregisterFrameSinkFromItsParent(
Fady Samuel 2017/01/19 04:05:43 nit: UnregisterFrameSinkFromParent?
xlai (Olivia) 2017/01/19 16:43:56 Done.
+ cc::FrameSinkId child_frame_sink_id) {
Fady Samuel 2017/01/19 04:05:43 const cc::FrameSinkId&
xlai (Olivia) 2017/01/19 16:43:56 Done.
+ auto surface_iter = registered_surface_instances_.find(child_frame_sink_id);
+ if (surface_iter == registered_surface_instances_.end())
+ return;
+ OffscreenCanvasSurfaceImpl* surfaceImpl = surface_iter->second;
+ if (surfaceImpl->parent_frame_sink_id().is_valid()) {
+ GetSurfaceManager()->UnregisterFrameSinkHierarchy(
+ surfaceImpl->parent_frame_sink_id(), child_frame_sink_id);
+ }
+}
+
void OffscreenCanvasSurfaceManager::OnSurfaceCreated(
const cc::SurfaceInfo& surface_info) {
auto surface_iter =

Powered by Google App Engine
This is Rietveld 408576698