| Index: content/renderer/mojo/blink_interface_provider_impl.cc
|
| diff --git a/content/renderer/mojo/blink_interface_provider_impl.cc b/content/renderer/mojo/blink_interface_provider_impl.cc
|
| index 59e4c50d7e9bc00413800c9f834d4f3d7a94e57b..de2981407589550290b569d66f3a6d6b2d6846ad 100644
|
| --- a/content/renderer/mojo/blink_interface_provider_impl.cc
|
| +++ b/content/renderer/mojo/blink_interface_provider_impl.cc
|
| @@ -9,11 +9,21 @@
|
| #include "base/bind.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| +#include "content/public/common/service_names.mojom.h"
|
| +#include "services/service_manager/public/cpp/connector.h"
|
| #include "services/service_manager/public/cpp/interface_provider.h"
|
|
|
| namespace content {
|
|
|
| BlinkInterfaceProviderImpl::BlinkInterfaceProviderImpl(
|
| + base::WeakPtr<service_manager::Connector> connector)
|
| + : connector_(connector),
|
| + main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| + weak_ptr_factory_(this) {
|
| + weak_ptr_ = weak_ptr_factory_.GetWeakPtr();
|
| +}
|
| +
|
| +BlinkInterfaceProviderImpl::BlinkInterfaceProviderImpl(
|
| base::WeakPtr<service_manager::InterfaceProvider> remote_interfaces)
|
| : remote_interfaces_(remote_interfaces),
|
| main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| @@ -33,10 +43,14 @@ void BlinkInterfaceProviderImpl::getInterface(
|
| return;
|
| }
|
|
|
| - if (!remote_interfaces_)
|
| - return;
|
| -
|
| - remote_interfaces_->GetInterface(name, std::move(handle));
|
| + if (connector_) {
|
| + connector_->BindInterface(
|
| + service_manager::Identity(mojom::kBrowserServiceName,
|
| + service_manager::mojom::kInheritUserID),
|
| + name, std::move(handle));
|
| + } else {
|
| + remote_interfaces_->GetInterface(name, std::move(handle));
|
| + }
|
| }
|
|
|
| } // namespace content
|
|
|