Index: components/mus/public/cpp/lib/window.cc |
diff --git a/components/mus/public/cpp/lib/window.cc b/components/mus/public/cpp/lib/window.cc |
index 5da0a477d9a6855875f99dc7bef57fbf47874fcc..5284785a1120dcba031bf7d08810f5bb3b547cd5 100644 |
--- a/components/mus/public/cpp/lib/window.cc |
+++ b/components/mus/public/cpp/lib/window.cc |
@@ -217,13 +217,17 @@ bool Window::IsDrawn() const { |
} |
scoped_ptr<WindowSurface> Window::RequestSurface(mojom::SurfaceType type) { |
- mojom::SurfacePtr surface; |
- mojom::SurfaceClientPtr client; |
- mojo::InterfaceRequest<mojom::SurfaceClient> client_request = |
- GetProxy(&client); |
- tree_client()->RequestSurface(id_, type, GetProxy(&surface), client.Pass()); |
- return make_scoped_ptr( |
- new WindowSurface(surface.PassInterface(), client_request.Pass())); |
+ scoped_ptr<WindowSurfaceBinding> surface_binding; |
+ scoped_ptr<WindowSurface> surface = WindowSurface::Create(&surface_binding); |
+ AttachSurface(type, surface_binding.Pass()); |
+ return surface; |
+} |
+ |
+void Window::AttachSurface(mojom::SurfaceType type, |
+ scoped_ptr<WindowSurfaceBinding> surface_binding) { |
+ tree_client()->AttachSurface(id_, type, |
+ surface_binding->surface_request_.Pass(), |
+ surface_binding->surface_client_.Pass()); |
} |
void Window::ClearSharedProperty(const std::string& name) { |