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

Unified Diff: content/renderer/mojo/blink_interface_provider_impl.cc

Issue 2755813002: Begin to wean child processes off reliance on a persistent service_manager::Connection to the brows… (Closed)
Patch Set: . Created 3 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 side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « content/renderer/mojo/blink_interface_provider_impl.h ('k') | content/renderer/mojo/interface_provider_js_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698