// Copyright 2014 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. #ifndef MOJO_SERVICES_VIEW_MANAGER_CPP_VIEW_MANAGER_CONTEXT_H_ #define MOJO_SERVICES_VIEW_MANAGER_CPP_VIEW_MANAGER_CONTEXT_H_ #include #include #include "mojo/public/cpp/application/service_provider_impl.h" #include "mojo/public/cpp/system/macros.h" namespace mojo { class ApplicationImpl; class ViewManagerContext { public: explicit ViewManagerContext(ApplicationImpl* application_impl); ~ViewManagerContext(); // Embed an application @ |url| at an appropriate View. // The first time this method is called in the life time of the View Manager // service the "appropriate View" is defined as being the service' root View. // Subsequent times, the implementation of this method is delegated to the // application embedded at the service root View. This application will have a // specific definition of where within its View hierarchy to embed an // un-parented URL. // |services| encapsulates services offered by the embedder to the embedded // app alongside this Embed() call. |exposed_services| provides a means for // the embedder to connect to services exposed by the embedded app. void Embed(const String& url); void Embed(const String& url, InterfaceRequest services, ServiceProviderPtr exposed_Services); private: class InternalState; InternalState* state_; MOJO_DISALLOW_COPY_AND_ASSIGN(ViewManagerContext); }; } // namespace mojo #endif // MOJO_SERVICES_VIEW_MANAGER_CPP_VIEW_MANAGER_CONTEXT_H_