context.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
1// Copyright 2013 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/context.h" 6 7#include "base/command_line.h" 8#include "mojo/embedder/embedder.h" 9#include "mojo/gles2/gles2_support_impl.h" 10#include "mojo/shell/dynamic_service_loader.h" 11#include "mojo/shell/in_process_dynamic_service_runner.h" 12#include "mojo/shell/network_delegate.h" 13#include "mojo/shell/out_of_process_dynamic_service_runner.h" 14#include "mojo/shell/switches.h" 15 16namespace mojo { 17namespace shell { 18 19Context::Context() 20 : task_runners_(base::MessageLoop::current()->message_loop_proxy()), 21 storage_(), 22 loader_(task_runners_.io_runner(), 23 task_runners_.file_runner(), 24 task_runners_.cache_runner(), 25 scoped_ptr<net::NetworkDelegate>(new NetworkDelegate()), 26 storage_.profile_path()) { 27 embedder::Init(); 28 gles2::GLES2SupportImpl::Init(); 29 30 scoped_ptr<DynamicServiceRunnerFactory> runner_factory; 31 if (CommandLine::ForCurrentProcess()->HasSwitch( 32 switches::kEnableMultiprocess)) 33 runner_factory.reset(new OutOfProcessDynamicServiceRunnerFactory()); 34 else 35 runner_factory.reset(new InProcessDynamicServiceRunnerFactory()); 36 dynamic_service_loader_.reset( 37 new DynamicServiceLoader(this, runner_factory.Pass())); 38 service_manager_.set_default_loader(dynamic_service_loader_.get()); 39} 40 41Context::~Context() { 42 service_manager_.set_default_loader(NULL); 43} 44 45} // namespace shell 46} // namespace mojo 47