Index: services/shell/public/cpp/lib/interface_provider.cc |
diff --git a/services/shell/public/cpp/lib/interface_provider.cc b/services/shell/public/cpp/lib/interface_provider.cc |
index 268c49a46bcf3b03752294258f6a232649f45683..7d7b950d71ab98f1c858003005dc2181246b21dc 100644 |
--- a/services/shell/public/cpp/lib/interface_provider.cc |
+++ b/services/shell/public/cpp/lib/interface_provider.cc |
@@ -6,12 +6,15 @@ |
namespace shell { |
-InterfaceProvider::InterfaceProvider() : weak_factory_(this) {} |
+InterfaceProvider::InterfaceProvider() : weak_factory_(this) { |
+ pending_request_ = GetProxy(&interface_provider_); |
+} |
InterfaceProvider::~InterfaceProvider() {} |
void InterfaceProvider::Bind(mojom::InterfaceProviderPtr interface_provider) { |
- DCHECK(!interface_provider_.is_bound()); |
- interface_provider_ = std::move(interface_provider); |
+ DCHECK(pending_request_.is_pending()); |
+ mojo::FuseInterface(std::move(pending_request_), |
+ interface_provider.PassInterface()); |
} |
void InterfaceProvider::SetConnectionLostClosure( |