Index: services/native_viewport/onscreen_context_provider.cc |
diff --git a/services/native_viewport/onscreen_context_provider.cc b/services/native_viewport/onscreen_context_provider.cc |
index c34ff865c36cc74aba74ba189973f1c2c3a8fc4c..66f4987cb04188806287d060e9f32ceccd55d277 100644 |
--- a/services/native_viewport/onscreen_context_provider.cc |
+++ b/services/native_viewport/onscreen_context_provider.cc |
@@ -23,12 +23,23 @@ void OnscreenContextProvider::Bind( |
binding_.Bind(request.Pass()); |
} |
+void OnscreenContextProvider::NotifyOnViewportCreated( |
+ const NotifyOnViewportCreatedCallback& callback) { |
+ pending_viewport_callback_ = callback; |
+} |
+ |
void OnscreenContextProvider::SetAcceleratedWidget( |
gfx::AcceleratedWidget widget) { |
widget_ = widget; |
- if (widget_ != gfx::kNullAcceleratedWidget && |
- !pending_create_callback_.is_null()) |
- CreateAndReturnCommandBuffer(); |
+ if (widget_ != gfx::kNullAcceleratedWidget) { |
+ if (!pending_viewport_callback_.is_null()) { |
+ pending_viewport_callback_.Run(); |
+ pending_viewport_callback_.reset(); |
+ } |
+ if (!pending_create_callback_.is_null()) { |
+ CreateAndReturnCommandBuffer(); |
+ } |
+ } |
} |
void OnscreenContextProvider::Create( |