blob: 5fc6cf9da091d6776684f053c5074d1d6958beef [file] [log] [blame]
// 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);
};