| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/child/child_thread_impl.h" | 5 #include "content/child/child_thread_impl.h" |
| 6 | 6 |
| 7 #include <signal.h> | 7 #include <signal.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 mojo::edk::SetParentPipeHandle(std::move(platform_channel)); | 256 mojo::edk::SetParentPipeHandle(std::move(platform_channel)); |
| 257 } | 257 } |
| 258 | 258 |
| 259 class ChannelBootstrapFilter : public ConnectionFilter { | 259 class ChannelBootstrapFilter : public ConnectionFilter { |
| 260 public: | 260 public: |
| 261 explicit ChannelBootstrapFilter(IPC::mojom::ChannelBootstrapPtrInfo bootstrap) | 261 explicit ChannelBootstrapFilter(IPC::mojom::ChannelBootstrapPtrInfo bootstrap) |
| 262 : bootstrap_(std::move(bootstrap)), weak_factory_(this) {} | 262 : bootstrap_(std::move(bootstrap)), weak_factory_(this) {} |
| 263 | 263 |
| 264 private: | 264 private: |
| 265 // ConnectionFilter: | 265 // ConnectionFilter: |
| 266 bool OnConnect(const shell::Identity& remote_identity, | 266 bool OnConnect(const service_manager::Identity& remote_identity, |
| 267 shell::InterfaceRegistry* registry, | 267 service_manager::InterfaceRegistry* registry, |
| 268 shell::Connector* connector) override { | 268 service_manager::Connector* connector) override { |
| 269 if (remote_identity.name() != kBrowserServiceName) | 269 if (remote_identity.name() != kBrowserServiceName) |
| 270 return false; | 270 return false; |
| 271 | 271 |
| 272 registry->AddInterface(base::Bind(&ChannelBootstrapFilter::CreateBootstrap, | 272 registry->AddInterface(base::Bind(&ChannelBootstrapFilter::CreateBootstrap, |
| 273 weak_factory_.GetWeakPtr())); | 273 weak_factory_.GetWeakPtr())); |
| 274 return true; | 274 return true; |
| 275 } | 275 } |
| 276 | 276 |
| 277 void CreateBootstrap(IPC::mojom::ChannelBootstrapRequest request) { | 277 void CreateBootstrap(IPC::mojom::ChannelBootstrapRequest request) { |
| 278 DCHECK(bootstrap_.is_valid()); | 278 DCHECK(bootstrap_.is_valid()); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 445 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| 446 switches::kServiceRequestChannelToken); | 446 switches::kServiceRequestChannelToken); |
| 447 } else { | 447 } else { |
| 448 service_request_token = options.in_process_service_request_token; | 448 service_request_token = options.in_process_service_request_token; |
| 449 } | 449 } |
| 450 if (!service_request_token.empty()) { | 450 if (!service_request_token.empty()) { |
| 451 mojo::ScopedMessagePipeHandle handle = | 451 mojo::ScopedMessagePipeHandle handle = |
| 452 mojo::edk::CreateChildMessagePipe(service_request_token); | 452 mojo::edk::CreateChildMessagePipe(service_request_token); |
| 453 DCHECK(handle.is_valid()); | 453 DCHECK(handle.is_valid()); |
| 454 service_manager_connection_ = ServiceManagerConnection::Create( | 454 service_manager_connection_ = ServiceManagerConnection::Create( |
| 455 mojo::MakeRequest<shell::mojom::Service>(std::move(handle)), | 455 mojo::MakeRequest<service_manager::mojom::Service>(std::move(handle)), |
| 456 GetIOTaskRunner()); | 456 GetIOTaskRunner()); |
| 457 | 457 |
| 458 // When connect_to_browser is true, we obtain interfaces from the browser | 458 // When connect_to_browser is true, we obtain interfaces from the browser |
| 459 // process by connecting to it, rather than from the incoming interface | 459 // process by connecting to it, rather than from the incoming interface |
| 460 // provider. Exposed interfaces are subject to manifest capability spec. | 460 // provider. Exposed interfaces are subject to manifest capability spec. |
| 461 shell::InterfaceProvider* remote_interfaces = nullptr; | 461 service_manager::InterfaceProvider* remote_interfaces = nullptr; |
| 462 if (options.connect_to_browser) { | 462 if (options.connect_to_browser) { |
| 463 browser_connection_ = | 463 browser_connection_ = |
| 464 service_manager_connection_->GetConnector()->Connect( | 464 service_manager_connection_->GetConnector()->Connect( |
| 465 kBrowserServiceName); | 465 kBrowserServiceName); |
| 466 } else { | 466 } else { |
| 467 remote_interfaces = GetRemoteInterfaces(); | 467 remote_interfaces = GetRemoteInterfaces(); |
| 468 } | 468 } |
| 469 | 469 |
| 470 // TODO(rockot): Remove this once all child-to-browser interface connections | 470 // TODO(rockot): Remove this once all child-to-browser interface connections |
| 471 // are made via a Connector rather than directly through an | 471 // are made via a Connector rather than directly through an |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 } | 648 } |
| 649 | 649 |
| 650 void ChildThreadImpl::RecordComputedAction(const std::string& action) { | 650 void ChildThreadImpl::RecordComputedAction(const std::string& action) { |
| 651 NOTREACHED(); | 651 NOTREACHED(); |
| 652 } | 652 } |
| 653 | 653 |
| 654 ServiceManagerConnection* ChildThreadImpl::GetServiceManagerConnection() { | 654 ServiceManagerConnection* ChildThreadImpl::GetServiceManagerConnection() { |
| 655 return service_manager_connection_.get(); | 655 return service_manager_connection_.get(); |
| 656 } | 656 } |
| 657 | 657 |
| 658 shell::InterfaceRegistry* ChildThreadImpl::GetInterfaceRegistry() { | 658 service_manager::InterfaceRegistry* ChildThreadImpl::GetInterfaceRegistry() { |
| 659 if (!interface_registry_.get()) | 659 if (!interface_registry_.get()) |
| 660 interface_registry_.reset(new shell::InterfaceRegistry); | 660 interface_registry_.reset(new service_manager::InterfaceRegistry); |
| 661 return interface_registry_.get(); | 661 return interface_registry_.get(); |
| 662 } | 662 } |
| 663 | 663 |
| 664 shell::InterfaceProvider* ChildThreadImpl::GetRemoteInterfaces() { | 664 service_manager::InterfaceProvider* ChildThreadImpl::GetRemoteInterfaces() { |
| 665 if (browser_connection_) | 665 if (browser_connection_) |
| 666 return browser_connection_->GetRemoteInterfaces(); | 666 return browser_connection_->GetRemoteInterfaces(); |
| 667 | 667 |
| 668 if (!remote_interfaces_.get()) | 668 if (!remote_interfaces_.get()) |
| 669 remote_interfaces_.reset(new shell::InterfaceProvider); | 669 remote_interfaces_.reset(new service_manager::InterfaceProvider); |
| 670 return remote_interfaces_.get(); | 670 return remote_interfaces_.get(); |
| 671 } | 671 } |
| 672 | 672 |
| 673 IPC::MessageRouter* ChildThreadImpl::GetRouter() { | 673 IPC::MessageRouter* ChildThreadImpl::GetRouter() { |
| 674 DCHECK(message_loop_->task_runner()->BelongsToCurrentThread()); | 674 DCHECK(message_loop_->task_runner()->BelongsToCurrentThread()); |
| 675 return &router_; | 675 return &router_; |
| 676 } | 676 } |
| 677 | 677 |
| 678 mojom::RouteProvider* ChildThreadImpl::GetRemoteRouteProvider() { | 678 mojom::RouteProvider* ChildThreadImpl::GetRemoteRouteProvider() { |
| 679 if (!remote_route_provider_) { | 679 if (!remote_route_provider_) { |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 Listener* route = router_.GetRoute(routing_id); | 864 Listener* route = router_.GetRoute(routing_id); |
| 865 if (route) | 865 if (route) |
| 866 route->OnAssociatedInterfaceRequest(name, request.PassHandle()); | 866 route->OnAssociatedInterfaceRequest(name, request.PassHandle()); |
| 867 } | 867 } |
| 868 | 868 |
| 869 bool ChildThreadImpl::IsInBrowserProcess() const { | 869 bool ChildThreadImpl::IsInBrowserProcess() const { |
| 870 return static_cast<bool>(browser_process_io_runner_); | 870 return static_cast<bool>(browser_process_io_runner_); |
| 871 } | 871 } |
| 872 | 872 |
| 873 } // namespace content | 873 } // namespace content |
| OLD | NEW |