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