| // Copyright 2015 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | [DartPackage="mojo_services"] | 
 | module mojo.ui; | 
 |  | 
 | import "mojo/public/interfaces/application/service_provider.mojom"; | 
 | import "mojo/services/ui/views/interfaces/views.mojom"; | 
 |  | 
 | // Provides a View upon request. | 
 | // | 
 | // Applications should implement and expose this service so that they can | 
 | // expose views to be embedded into other applications. | 
 | [ServiceName="mojo::ui::ViewProvider"] | 
 | interface ViewProvider { | 
 |   // Creates and registers a view with the view manager and returns its | 
 |   // view owner which may subsequently be passed to |View.AddChild()| | 
 |   // to attach the view to a view hierarchy. | 
 |   // | 
 |   // Implementors of this interface are responsible for creating the view | 
 |   // and forwarding the |view_owner| interface request to | 
 |   // |ViewManager.CreateView()|. | 
 |   // | 
 |   // The caller may provide services to the view via the |services| | 
 |   // service provider. | 
 |   // | 
 |   // The caller may receive services from the view via the |exposed_services| | 
 |   // service provider. | 
 |   CreateView(ViewOwner& view_owner, | 
 |              mojo.ServiceProvider&? services, | 
 |              mojo.ServiceProvider? exposed_services); | 
 | }; |