| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script type="module"> |
| import {MockMIDIService} from './resources/mock-midiservice.js'; |
| |
| const mock = new MockMIDIService(); |
| promise_test(async _ => { |
| const iframe = document.createElement('iframe'); |
| document.body.appendChild(iframe); |
| const detachedNavigator = iframe.contentWindow.navigator; |
| const detachedExceptionCtor = iframe.contentWindow.DOMException; |
| document.body.removeChild(iframe); |
| |
| try { |
| await detachedNavigator.requestMIDIAccess(); |
| return Promise.reject('requestMIDIAccess should have failed.'); |
| } catch (e) { |
| assert_equals(e.constructor, detachedExceptionCtor); |
| assert_equals(e.code, DOMException.ABORT_ERR); |
| } |
| }, 'requestMIDIAccess fails in a detached frame'); |
| </script> |
| </body> |
| </html> |