| Index: Source/modules/webusb/USB.cpp
|
| diff --git a/Source/modules/webusb/USB.cpp b/Source/modules/webusb/USB.cpp
|
| index efe5bc72bc4046e328978e37ef379f5bcc25a6a2..83058440fbc2880f92f427b143a94da2b7094d80 100644
|
| --- a/Source/modules/webusb/USB.cpp
|
| +++ b/Source/modules/webusb/USB.cpp
|
| @@ -12,6 +12,7 @@
|
| #include "core/dom/Document.h"
|
| #include "core/dom/ExceptionCode.h"
|
| #include "modules/EventTargetModules.h"
|
| +#include "modules/webusb/USBConnectionEvent.h"
|
| #include "modules/webusb/USBDevice.h"
|
| #include "modules/webusb/USBDeviceFilter.h"
|
| #include "modules/webusb/USBDeviceRequestOptions.h"
|
| @@ -78,6 +79,16 @@ private:
|
| USB::USB(LocalFrame& frame)
|
| : m_controller(USBController::from(frame))
|
| {
|
| + WebUSBClient* client = m_controller->client();
|
| + if (client)
|
| + client->setObserver(this);
|
| +}
|
| +
|
| +USB::~USB()
|
| +{
|
| + WebUSBClient* client = m_controller->client();
|
| + if (client)
|
| + client->setObserver(nullptr);
|
| }
|
|
|
| ScriptPromise USB::getDevices(ScriptState* scriptState)
|
| @@ -120,6 +131,16 @@ const AtomicString& USB::interfaceName() const
|
| return EventTargetNames::USB;
|
| }
|
|
|
| +void USB::onDeviceConnected(WebPassOwnPtr<WebUSBDevice> device)
|
| +{
|
| + dispatchEvent(USBConnectionEvent::create(EventTypeNames::connect, USBDevice::create(device.release())));
|
| +}
|
| +
|
| +void USB::onDeviceDisconnected(WebPassOwnPtr<WebUSBDevice> device)
|
| +{
|
| + dispatchEvent(USBConnectionEvent::create(EventTypeNames::disconnect, USBDevice::create(device.release())));
|
| +}
|
| +
|
| DEFINE_TRACE(USB)
|
| {
|
| visitor->trace(m_controller);
|
|
|