Chromium Code Reviews| Index: content/child/process_control_impl.cc |
| diff --git a/content/child/process_control_impl.cc b/content/child/process_control_impl.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..be8031317c64c4b2c0a82d47b71c0cbf1ede1f1e |
| --- /dev/null |
| +++ b/content/child/process_control_impl.cc |
| @@ -0,0 +1,43 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/child/process_control_impl.h" |
| + |
| +#include "base/stl_util.h" |
| +#include "content/public/common/content_client.h" |
| +#include "mojo/shell/static_application_loader.h" |
|
Ken Rockot(use gerrit already)
2015/08/19 23:07:34
This shouldn't be necessary (and so you can also r
xhwang
2015/08/20 00:43:34
I actually need it for the Load() call on l.40.
|
| +#include "url/gurl.h" |
| + |
| +namespace content { |
| + |
| +ProcessControlImpl::ProcessControlImpl() { |
| +} |
| + |
| +ProcessControlImpl::~ProcessControlImpl() { |
| + STLDeleteValues(&url_to_loader_map_); |
| +} |
| + |
| +void ProcessControlImpl::LoadApplication( |
| + const mojo::String& url, |
| + mojo::InterfaceRequest<mojo::Application> request, |
| + const LoadApplicationCallback& callback) { |
| + // Only register loaders when we need it. |
| + if (!has_registered_loaders) { |
| + DCHECK(url_to_loader_map_.empty()); |
| + RegisterApplicationLoaders(&url_to_loader_map_); |
| + has_registered_loaders = true; |
| + } |
| + |
| + GURL application_url = GURL(url.To<std::string>()); |
| + auto it = url_to_loader_map_.find(application_url); |
| + if (it == url_to_loader_map_.end()) { |
| + callback.Run(false); |
| + return; |
| + } |
| + |
| + callback.Run(true); |
| + it->second->Load(application_url, request.Pass()); |
| +} |
| + |
| +} // namespace content |