Index: mojo/services/surfaces/surfaces_impl.cc |
diff --git a/mojo/services/surfaces/surfaces_impl.cc b/mojo/services/surfaces/surfaces_impl.cc |
index 10414f92ccc4be7c7c763ef0a19c21bd55429f91..b1c24bfa3c5db6b6235a9c51dc72af2467a888c3 100644 |
--- a/mojo/services/surfaces/surfaces_impl.cc |
+++ b/mojo/services/surfaces/surfaces_impl.cc |
@@ -4,6 +4,7 @@ |
#include "mojo/services/surfaces/surfaces_impl.h" |
+#include "base/debug/trace_event.h" |
#include "cc/output/compositor_frame.h" |
#include "cc/resources/returned_resource.h" |
#include "cc/surfaces/display.h" |
@@ -14,6 +15,11 @@ |
#include "mojo/converters/surfaces/surfaces_type_converters.h" |
namespace mojo { |
+namespace { |
+void CallCallback(const mojo::Closure& callback) { |
+ callback.Run(); |
+} |
+} |
SurfacesImpl::SurfacesImpl(cc::SurfaceManager* manager, |
uint32_t id_namespace, |
@@ -41,7 +47,10 @@ void SurfacesImpl::CreateSurface(SurfaceIdPtr id, mojo::SizePtr size) { |
factory_.Create(id.To<cc::SurfaceId>(), size.To<gfx::Size>()); |
} |
-void SurfacesImpl::SubmitFrame(SurfaceIdPtr id, FramePtr frame_ptr) { |
+void SurfacesImpl::SubmitFrame(SurfaceIdPtr id, |
+ FramePtr frame_ptr, |
+ const mojo::Closure& callback) { |
+ TRACE_EVENT0("mojo", "SurfacesImpl::SubmitFrame"); |
cc::SurfaceId cc_id = id.To<cc::SurfaceId>(); |
if (cc::SurfaceIdAllocator::NamespaceForId(cc_id) != id_namespace_) { |
// Bad message, do something bad to the caller? |
@@ -51,8 +60,8 @@ void SurfacesImpl::SubmitFrame(SurfaceIdPtr id, FramePtr frame_ptr) { |
return; |
} |
factory_.SubmitFrame(id.To<cc::SurfaceId>(), |
- frame_ptr.To<scoped_ptr<cc::CompositorFrame> >(), |
- base::Closure()); |
+ frame_ptr.To<scoped_ptr<cc::CompositorFrame>>(), |
+ base::Bind(&CallCallback, callback)); |
client_->FrameSubmitted(); |
} |