Index: mojo/public/cpp/bindings/lib/binding_state.cc |
diff --git a/mojo/public/cpp/bindings/lib/binding_state.cc b/mojo/public/cpp/bindings/lib/binding_state.cc |
index c9462745906f0493fdc08f8f8f22f6939a93a2c1..e41258f586c846949d461402ecda435cea4dcb25 100644 |
--- a/mojo/public/cpp/bindings/lib/binding_state.cc |
+++ b/mojo/public/cpp/bindings/lib/binding_state.cc |
@@ -141,13 +141,19 @@ void MultiplexedBindingState::BindInternal( |
scoped_refptr<base::SingleThreadTaskRunner> runner, |
const char* interface_name, |
std::unique_ptr<MessageReceiver> request_validator, |
+ bool passes_associated_kinds, |
bool has_sync_methods, |
MessageReceiverWithResponderStatus* stub, |
uint32_t interface_version) { |
DCHECK(!router_); |
- router_ = new MultiplexRouter( |
- std::move(handle), MultiplexRouter::MULTI_INTERFACE, false, runner); |
+ MultiplexRouter::Config config = |
+ passes_associated_kinds |
+ ? MultiplexRouter::MULTI_INTERFACE |
+ : (has_sync_methods |
+ ? MultiplexRouter::SINGLE_INTERFACE_WITH_SYNC_METHODS |
+ : MultiplexRouter::SINGLE_INTERFACE); |
+ router_ = new MultiplexRouter(std::move(handle), config, false, runner); |
router_->SetMasterInterfaceName(interface_name); |
endpoint_client_.reset(new InterfaceEndpointClient( |