context.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
11e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// found in the LICENSE file. 41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "mojo/shell/context.h" 61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/command_line.h" 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "mojo/embedder/embedder.h" 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "mojo/gles2/gles2_support_impl.h" 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "mojo/shell/dynamic_service_loader.h" 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "mojo/shell/in_process_dynamic_service_runner.h" 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "mojo/shell/network_delegate.h" 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "mojo/shell/out_of_process_dynamic_service_runner.h" 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "mojo/shell/switches.h" 151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace mojo { 171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace shell { 181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Context::Context() 201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) : task_runners_(base::MessageLoop::current()->message_loop_proxy()), 211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) storage_(), 221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) loader_(task_runners_.io_runner(), 231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) task_runners_.file_runner(), 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) task_runners_.cache_runner(), 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) scoped_ptr<net::NetworkDelegate>(new NetworkDelegate()), 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) storage_.profile_path()) { 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) embedder::Init(); 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) gles2::GLES2SupportImpl::Init(); 29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) scoped_ptr<DynamicServiceRunnerFactory> runner_factory; 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (CommandLine::ForCurrentProcess()->HasSwitch( 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) switches::kEnableMultiprocess)) 33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) runner_factory.reset(new OutOfProcessDynamicServiceRunnerFactory()); 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) else 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) runner_factory.reset(new InProcessDynamicServiceRunnerFactory()); 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) dynamic_service_loader_.reset( 37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) new DynamicServiceLoader(this, runner_factory.Pass())); 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) service_manager_.set_default_loader(dynamic_service_loader_.get()); 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)Context::~Context() { 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) service_manager_.set_default_loader(NULL); 431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} // namespace shell 461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} // namespace mojo 47