| <script src="../../resources/js-test-pre.js"></script> |
| debug('<br>** getUserMedia() promise resolved **') |
| shouldBe('tabState', "'foreground'"); |
| shouldBe('stream.getAudioTracks().length', '1'); |
| if (++streams == streamCount) |
| testFailed(`getUserMedia() failed, error = ${error}`); |
| debug('<br>** timer fired **') |
| shouldBe('tabState', "'background'"); |
| evalAndLog(`tabState = 'foreground'`); |
| internals.settings.setCanStartMedia(true); |
| description("Tests getUserMedia called from a background thread."); |
| evalAndLog(`tabState = 'background'`); |
| internals.settings.setCanStartMedia(false); |
| testRunner.setUserMediaPermission(true); |
| for (var i = 0; i < streamCount; i++) |
| shouldNotThrow('navigator.mediaDevices.getUserMedia({audio:true}).then(gotStream).catch(fail)'); |
| setTimeout(checkState, 200); |
| window.jsTestIsAsync = true; |
| window.successfullyParsed = true; |
| <script src="../../resources/js-test-post.js"></script> |