1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "mojo/shell/view_manager_loader.h" 6 7#include "mojo/public/cpp/application/application_connection.h" 8#include "mojo/public/cpp/application/application_impl.h" 9#include "mojo/services/view_manager/view_manager_init_service_impl.h" 10 11namespace mojo { 12 13using service::ViewManagerInitServiceImpl; 14 15namespace shell { 16 17ViewManagerLoader::ViewManagerLoader() { 18} 19 20ViewManagerLoader::~ViewManagerLoader() { 21} 22 23void ViewManagerLoader::Load(ApplicationManager* manager, 24 const GURL& url, 25 scoped_refptr<LoadCallbacks> callbacks) { 26 ScopedMessagePipeHandle shell_handle = callbacks->RegisterApplication(); 27 if (!shell_handle.is_valid()) 28 return; 29 30 // TODO(sky): this needs some sort of authentication as well as making sure 31 // we only ever have one active at a time. 32 scoped_ptr<ApplicationImpl> app( 33 new ApplicationImpl(this, shell_handle.Pass())); 34 apps_.push_back(app.release()); 35} 36 37void ViewManagerLoader::OnApplicationError(ApplicationManager* manager, 38 const GURL& url) { 39} 40 41bool ViewManagerLoader::ConfigureIncomingConnection( 42 ApplicationConnection* connection) { 43 context_.ConfigureIncomingConnection(connection); 44 connection->AddService(this); 45 return true; 46} 47 48void ViewManagerLoader::Create( 49 ApplicationConnection* connection, 50 InterfaceRequest<ViewManagerInitService> request) { 51 BindToRequest(new ViewManagerInitServiceImpl(connection, &context_), 52 &request); 53} 54 55} // namespace shell 56} // namespace mojo 57