| Index: device/vr/vr_service_impl.cc | 
| diff --git a/device/vr/vr_service_impl.cc b/device/vr/vr_service_impl.cc | 
| index 49ddde0482efb074ec3eb3977ea272730a3a817e..8be4a83e1660bb0aabeedd5429f67eec8559cfa0 100644 | 
| --- a/device/vr/vr_service_impl.cc | 
| +++ b/device/vr/vr_service_impl.cc | 
| @@ -37,16 +37,27 @@ VRDisplayImpl* VRServiceImpl::GetVRDisplayImpl(VRDevice* device) { | 
| } | 
|  | 
| void VRServiceImpl::Bind(mojo::InterfaceRequest<mojom::VRService> request) { | 
| -  // TODO(shaobo.yan@intel.com) : Keep one binding_ and use close and rebind. | 
| -  binding_.reset(new mojo::Binding<mojom::VRService>(this, std::move(request))); | 
| +  if (!binding_) | 
| +    binding_.reset( | 
| +        new mojo::Binding<mojom::VRService>(this, std::move(request))); | 
| +  else | 
| +    binding_->Bind(std::move(request)); | 
| binding_->set_connection_error_handler(base::Bind( | 
| &VRServiceImpl::RemoveFromDeviceManager, base::Unretained(this))); | 
| } | 
|  | 
| void VRServiceImpl::RemoveFromDeviceManager() { | 
| -  displays_.clear(); | 
| +  // Remove VRDisplayImpl in service/device pair. | 
| +  // displays_ is a map which first element is a VRDevice pointer, | 
| +  // the second element is a VRDisplayImpl pointer. | 
| +  for (DisplayImplMap::iterator it = displays_.begin(); it != displays_.end(); | 
| +       ++it) { | 
| +    it->first->RemoveDisplay(it->second.get()); | 
| +  } | 
| + | 
| VRDeviceManager* device_manager = VRDeviceManager::GetInstance(); | 
| device_manager->RemoveService(this); | 
| +  displays_.clear(); | 
| } | 
|  | 
| void VRServiceImpl::RemoveDevice(VRDevice* device) { | 
| @@ -56,7 +67,6 @@ void VRServiceImpl::RemoveDevice(VRDevice* device) { | 
| void VRServiceImpl::SetClient(mojom::VRServiceClientPtr service_client, | 
| const SetClientCallback& callback) { | 
| DCHECK(!client_.get()); | 
| - | 
| client_ = std::move(service_client); | 
| VRDeviceManager* device_manager = VRDeviceManager::GetInstance(); | 
| // Once a client has been connected AddService will force any VRDisplays to | 
|  |