Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: content/browser/mojo/mojo_shell_context.cc

Issue 1728083002: Extract a Connector interface from Shell that can be cloned & passed to other threads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@12uid
Patch Set: . Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/browser/mojo/mojo_shell_context.h" 5 #include "content/browser/mojo/mojo_shell_context.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 task_runner_(base::ThreadTaskRunnerHandle::Get()) {} 153 task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
154 154
155 ~Proxy() {} 155 ~Proxy() {}
156 156
157 void ConnectToApplication( 157 void ConnectToApplication(
158 const GURL& url, 158 const GURL& url,
159 const GURL& requestor_url, 159 const GURL& requestor_url,
160 mojo::shell::mojom::InterfaceProviderRequest request, 160 mojo::shell::mojom::InterfaceProviderRequest request,
161 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 161 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
162 const mojo::shell::CapabilityFilter& filter, 162 const mojo::shell::CapabilityFilter& filter,
163 const mojo::shell::mojom::Shell::ConnectCallback& callback) { 163 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
164 if (task_runner_ == base::ThreadTaskRunnerHandle::Get()) { 164 if (task_runner_ == base::ThreadTaskRunnerHandle::Get()) {
165 if (shell_context_) { 165 if (shell_context_) {
166 shell_context_->ConnectToApplicationOnOwnThread( 166 shell_context_->ConnectToApplicationOnOwnThread(
167 url, requestor_url, std::move(request), std::move(exposed_services), 167 url, requestor_url, std::move(request), std::move(exposed_services),
168 filter, callback); 168 filter, callback);
169 } 169 }
170 } else { 170 } else {
171 // |shell_context_| outlives the main MessageLoop, so it's safe for it to 171 // |shell_context_| outlives the main MessageLoop, so it's safe for it to
172 // be unretained here. 172 // be unretained here.
173 task_runner_->PostTask( 173 task_runner_->PostTask(
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 MojoShellContext::~MojoShellContext() { 252 MojoShellContext::~MojoShellContext() {
253 } 253 }
254 254
255 // static 255 // static
256 void MojoShellContext::ConnectToApplication( 256 void MojoShellContext::ConnectToApplication(
257 const GURL& url, 257 const GURL& url,
258 const GURL& requestor_url, 258 const GURL& requestor_url,
259 mojo::shell::mojom::InterfaceProviderRequest request, 259 mojo::shell::mojom::InterfaceProviderRequest request,
260 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 260 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
261 const mojo::shell::CapabilityFilter& filter, 261 const mojo::shell::CapabilityFilter& filter,
262 const mojo::shell::mojom::Shell::ConnectCallback& callback) { 262 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
263 proxy_.Get()->ConnectToApplication(url, requestor_url, std::move(request), 263 proxy_.Get()->ConnectToApplication(url, requestor_url, std::move(request),
264 std::move(exposed_services), filter, 264 std::move(exposed_services), filter,
265 callback); 265 callback);
266 } 266 }
267 267
268 void MojoShellContext::ConnectToApplicationOnOwnThread( 268 void MojoShellContext::ConnectToApplicationOnOwnThread(
269 const GURL& url, 269 const GURL& url,
270 const GURL& requestor_url, 270 const GURL& requestor_url,
271 mojo::shell::mojom::InterfaceProviderRequest request, 271 mojo::shell::mojom::InterfaceProviderRequest request,
272 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 272 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
273 const mojo::shell::CapabilityFilter& filter, 273 const mojo::shell::CapabilityFilter& filter,
274 const mojo::shell::mojom::Shell::ConnectCallback& callback) { 274 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
275 scoped_ptr<mojo::shell::ConnectParams> params(new mojo::shell::ConnectParams); 275 scoped_ptr<mojo::shell::ConnectParams> params(new mojo::shell::ConnectParams);
276 // TODO(beng): kUserRoot is obviously wrong. 276 // TODO(beng): kUserRoot is obviously wrong.
277 params->set_source( 277 params->set_source(
278 mojo::shell::Identity(requestor_url, std::string(), 278 mojo::shell::Identity(requestor_url, std::string(),
279 mojo::shell::mojom::Shell::kUserRoot, 279 mojo::shell::mojom::Connector::kUserRoot,
280 mojo::shell::GetPermissiveCapabilityFilter())); 280 mojo::shell::GetPermissiveCapabilityFilter()));
281 params->set_target(mojo::shell::Identity( 281 params->set_target(mojo::shell::Identity(
282 url, std::string(), mojo::shell::mojom::Shell::kUserRoot, filter)); 282 url, std::string(), mojo::shell::mojom::Connector::kUserRoot, filter));
283 params->set_remote_interfaces(std::move(request)); 283 params->set_remote_interfaces(std::move(request));
284 params->set_local_interfaces(std::move(exposed_services)); 284 params->set_local_interfaces(std::move(exposed_services));
285 params->set_connect_callback(callback); 285 params->set_connect_callback(callback);
286 application_manager_->Connect(std::move(params)); 286 application_manager_->Connect(std::move(params));
287 } 287 }
288 288
289 } // namespace content 289 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698