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

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, 10 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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 MojoShellContext::~MojoShellContext() { 255 MojoShellContext::~MojoShellContext() {
256 } 256 }
257 257
258 // static 258 // static
259 void MojoShellContext::ConnectToApplication( 259 void MojoShellContext::ConnectToApplication(
260 const GURL& url, 260 const GURL& url,
261 const GURL& requestor_url, 261 const GURL& requestor_url,
262 mojo::shell::mojom::InterfaceProviderRequest request, 262 mojo::shell::mojom::InterfaceProviderRequest request,
263 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 263 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
264 const mojo::shell::CapabilityFilter& filter, 264 const mojo::shell::CapabilityFilter& filter,
265 const mojo::shell::mojom::Shell::ConnectCallback& callback) { 265 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
266 proxy_.Get()->ConnectToApplication(url, requestor_url, std::move(request), 266 proxy_.Get()->ConnectToApplication(url, requestor_url, std::move(request),
267 std::move(exposed_services), filter, 267 std::move(exposed_services), filter,
268 callback); 268 callback);
269 } 269 }
270 270
271 void MojoShellContext::ConnectToApplicationOnOwnThread( 271 void MojoShellContext::ConnectToApplicationOnOwnThread(
272 const GURL& url, 272 const GURL& url,
273 const GURL& requestor_url, 273 const GURL& requestor_url,
274 mojo::shell::mojom::InterfaceProviderRequest request, 274 mojo::shell::mojom::InterfaceProviderRequest request,
275 mojo::shell::mojom::InterfaceProviderPtr exposed_services, 275 mojo::shell::mojom::InterfaceProviderPtr exposed_services,
276 const mojo::shell::CapabilityFilter& filter, 276 const mojo::shell::CapabilityFilter& filter,
277 const mojo::shell::mojom::Shell::ConnectCallback& callback) { 277 const mojo::shell::mojom::Connector::ConnectCallback& callback) {
278 scoped_ptr<mojo::shell::ConnectParams> params(new mojo::shell::ConnectParams); 278 scoped_ptr<mojo::shell::ConnectParams> params(new mojo::shell::ConnectParams);
279 // TODO(beng): kUserRoot is obviously wrong. 279 // TODO(beng): kUserRoot is obviously wrong.
280 params->set_source( 280 params->set_source(
281 mojo::shell::Identity(requestor_url, std::string(), 281 mojo::shell::Identity(requestor_url, std::string(),
282 mojo::shell::mojom::Shell::kUserRoot, 282 mojo::shell::mojom::Connector::kUserRoot,
283 mojo::shell::GetPermissiveCapabilityFilter())); 283 mojo::shell::GetPermissiveCapabilityFilter()));
284 params->set_target(mojo::shell::Identity( 284 params->set_target(mojo::shell::Identity(
285 url, std::string(), mojo::shell::mojom::Shell::kUserRoot, filter)); 285 url, std::string(), mojo::shell::mojom::Connector::kUserRoot, filter));
286 params->set_remote_interfaces(std::move(request)); 286 params->set_remote_interfaces(std::move(request));
287 params->set_local_interfaces(std::move(exposed_services)); 287 params->set_local_interfaces(std::move(exposed_services));
288 params->set_connect_callback(callback); 288 params->set_connect_callback(callback);
289 application_manager_->Connect(std::move(params)); 289 application_manager_->Connect(std::move(params));
290 } 290 }
291 291
292 } // namespace content 292 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/mojo/mojo_shell_context.h ('k') | content/common/mojo/mojo_shell_connection_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698