view_manager_loader.cc revision 010d83a9304c5a91596085d917d248abff47903a
1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "mojo/shell/view_manager_loader.h" 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "mojo/public/cpp/shell/application.h" 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "mojo/services/view_manager/root_node_manager.h" 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "mojo/services/view_manager/view_manager_connection.h" 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace mojo { 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace shell { 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ViewManagerLoader::ViewManagerLoader() { 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ViewManagerLoader::~ViewManagerLoader() { 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void ViewManagerLoader::LoadService(ServiceManager* manager, 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const GURL& url, 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ScopedShellHandle shell_handle) { 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<Application> app(new Application(shell_handle.Pass())); 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (!root_node_manager_.get()) { 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) root_node_manager_.reset( 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) new services::view_manager::RootNodeManager(app->shell())); 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) } 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) app->AddServiceConnector( 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) new ServiceConnector<services::view_manager::ViewManagerConnection, 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) services::view_manager::RootNodeManager>( 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) root_node_manager_.get())); 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) apps_.push_back(app.release()); 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void ViewManagerLoader::OnServiceError(ServiceManager* manager, 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const GURL& url) { 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace shell 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace mojo 41