As highlighted in #160 there is an inconsistency between open() and claimInterface() / releaseInterface() in that the former allows multiple calls even when that does not change the state of the USBDevice object while the later reject with an InvalidStateError. The web-platform-tests and implementation in Chromium allow for this and I believe it is good as a matter of developer ergonomics and so the specification should be updated to allow it.
As highlighted in #160 there is an inconsistency between open() and claimInterface() / releaseInterface() in that the former allows multiple calls even when that does not change the state of the USBDevice object while the later reject with an InvalidStateError. The web-platform-tests and implementation in Chromium allow for this and I believe it is good as a matter of developer ergonomics and so the specification should be updated to allow it.