13a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// Copyright 2014 The Chromium Authors. All rights reserved. 23a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// Use of this source code is governed by a BSD-style license that can be 33a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// found in the LICENSE file. 43a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 53a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#ifndef MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 63a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#define MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 73a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 83a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "base/memory/scoped_ptr.h" 93a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "base/memory/scoped_vector.h" 103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "mojo/application_manager/application_loader.h" 113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "mojo/public/cpp/application/application_delegate.h" 123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "mojo/public/cpp/application/interface_factory.h" 133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h" 143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "mojo/services/view_manager/view_manager_init_service_context.h" 153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgnamespace mojo { 173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgclass Application; 193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgnamespace shell { 213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org// ApplicationLoader responsible for creating connections to the ViewManager. 233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgclass ViewManagerLoader : public ApplicationLoader, 243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org public ApplicationDelegate, 253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org public InterfaceFactory<ViewManagerInitService> { 263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org public: 273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ViewManagerLoader(); 283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org virtual ~ViewManagerLoader(); 293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org private: 313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org // ApplicationLoader overrides: 32760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org virtual void Load(ApplicationManager* manager, 333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org const GURL& url, 343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org scoped_refptr<LoadCallbacks> callbacks) OVERRIDE; 353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org virtual void OnApplicationError(ApplicationManager* manager, 363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org const GURL& url) OVERRIDE; 373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org // ApplicationDelegate overrides. 393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org virtual bool ConfigureIncomingConnection( 403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org mojo::ApplicationConnection* connection) OVERRIDE; 413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org // InterfaceFactory<ViewManagerInitService> overrides. 433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org virtual void Create( 443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ApplicationConnection* connection, 453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org InterfaceRequest<ViewManagerInitService> request) OVERRIDE; 463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ScopedVector<Application> apps_; 483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org service::ViewManagerInitServiceContext context_; 493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org DISALLOW_COPY_AND_ASSIGN(ViewManagerLoader); 513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org}; 523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org} // namespace shell 543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org} // namespace mojo 553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#endif // MOJO_SHELL_VIEW_MANAGER_LOADER_H_ 573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org