OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "shell/context.h" | 5 #include "shell/context.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 GURL url(parts[i + 1]); | 82 GURL url(parts[i + 1]); |
83 if (!url.is_valid()) { | 83 if (!url.is_valid()) { |
84 LOG(ERROR) << "Invalid value for switch " << switches::kContentHandlers | 84 LOG(ERROR) << "Invalid value for switch " << switches::kContentHandlers |
85 << ": '" << parts[i + 1] << "' is not a valid URL."; | 85 << ": '" << parts[i + 1] << "' is not a valid URL."; |
86 return; | 86 return; |
87 } | 87 } |
88 loader->RegisterContentHandler(parts[i], url); | 88 loader->RegisterContentHandler(parts[i], url); |
89 } | 89 } |
90 } | 90 } |
91 | 91 |
92 class EmptyServiceProvider : public InterfaceImpl<ServiceProvider> { | |
93 private: | |
94 void ConnectToService(const mojo::String& service_name, | |
95 ScopedMessagePipeHandle client_handle) override {} | |
96 }; | |
97 | |
98 bool ConfigureURLMappings(const std::string& mappings, | 92 bool ConfigureURLMappings(const std::string& mappings, |
99 mojo::shell::MojoURLResolver* resolver) { | 93 mojo::shell::MojoURLResolver* resolver) { |
100 base::StringPairs pairs; | 94 base::StringPairs pairs; |
101 if (!base::SplitStringIntoKeyValuePairs(mappings, '=', ',', &pairs)) | 95 if (!base::SplitStringIntoKeyValuePairs(mappings, '=', ',', &pairs)) |
102 return false; | 96 return false; |
103 using StringPair = std::pair<std::string, std::string>; | 97 using StringPair = std::pair<std::string, std::string>; |
104 for (const StringPair& pair : pairs) { | 98 for (const StringPair& pair : pairs) { |
105 const GURL from(pair.first); | 99 const GURL from(pair.first); |
106 const GURL to(pair.second); | 100 const GURL to(pair.second); |
107 if (!from.is_valid() || !to.is_valid()) | 101 if (!from.is_valid() || !to.is_valid()) |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 if (app_urls_.empty() && base::MessageLoop::current()->is_running()) | 183 if (app_urls_.empty() && base::MessageLoop::current()->is_running()) |
190 base::MessageLoop::current()->Quit(); | 184 base::MessageLoop::current()->Quit(); |
191 } | 185 } |
192 } | 186 } |
193 | 187 |
194 GURL Context::ResolveURL(const GURL& url) { | 188 GURL Context::ResolveURL(const GURL& url) { |
195 return mojo_url_resolver_.Resolve(url); | 189 return mojo_url_resolver_.Resolve(url); |
196 } | 190 } |
197 | 191 |
198 void Context::Run(const GURL& url) { | 192 void Context::Run(const GURL& url) { |
199 EmptyServiceProvider* sp = new EmptyServiceProvider; | 193 ServiceProviderPtr services; |
200 ServiceProviderPtr spp; | 194 ServiceProviderPtr exported_services; |
201 BindToProxy(sp, &spp); | |
202 | 195 |
203 app_urls_.insert(url); | 196 app_urls_.insert(url); |
204 application_manager_.ConnectToApplication(url, GURL(), spp.Pass()); | 197 application_manager_.ConnectToApplication(url, GURL(), GetProxy(&services), |
| 198 exported_services.Pass()); |
205 } | 199 } |
206 | 200 |
207 ScopedMessagePipeHandle Context::ConnectToServiceByName( | 201 ScopedMessagePipeHandle Context::ConnectToServiceByName( |
208 const GURL& application_url, | 202 const GURL& application_url, |
209 const std::string& service_name) { | 203 const std::string& service_name) { |
210 app_urls_.insert(application_url); | 204 app_urls_.insert(application_url); |
211 return application_manager_.ConnectToServiceByName(application_url, | 205 return application_manager_.ConnectToServiceByName(application_url, |
212 service_name).Pass(); | 206 service_name).Pass(); |
213 } | 207 } |
214 | 208 |
215 } // namespace shell | 209 } // namespace shell |
216 } // namespace mojo | 210 } // namespace mojo |
OLD | NEW |