| // 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); |
| }; |