summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/api/usb/usb_device_resource.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/api/usb/usb_device_resource.cc')
-rw-r--r--chromium/extensions/browser/api/usb/usb_device_resource.cc11
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