diff options
Diffstat (limited to 'chromium/extensions/browser/api/usb/usb_device_resource.cc')
-rw-r--r-- | chromium/extensions/browser/api/usb/usb_device_resource.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/chromium/extensions/browser/api/usb/usb_device_resource.cc b/chromium/extensions/browser/api/usb/usb_device_resource.cc index 3b8f92b8f36..fd6d6227f63 100644 --- a/chromium/extensions/browser/api/usb/usb_device_resource.cc +++ b/chromium/extensions/browser/api/usb/usb_device_resource.cc @@ -34,9 +34,10 @@ ApiResourceManager<UsbDeviceResource>::GetFactoryInstance() { UsbDeviceResource::UsbDeviceResource(const std::string& owner_extension_id, const std::string& guid, device::mojom::UsbDevicePtr device) - : ApiResource(owner_extension_id), - guid_(guid), - device_(std::move(device)) {} + : ApiResource(owner_extension_id), guid_(guid), device_(std::move(device)) { + device_.set_connection_error_handler(base::BindOnce( + &UsbDeviceResource::OnConnectionError, base::Unretained(this))); +} UsbDeviceResource::~UsbDeviceResource() {} @@ -44,4 +45,8 @@ bool UsbDeviceResource::IsPersistent() const { return false; } +void UsbDeviceResource::OnConnectionError() { + device_.reset(); +} + } // namespace extensions |