mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 1295352 - Check that there is no active gUM after each runTest test. r=pehrsons
MozReview-Commit-ID: 4VVb2ZJWiCL --HG-- extra : rebase_source : e1de9c80ff6047673d3dbf77ce49ef5bcf34568a extra : intermediate-source : 1a7948aa1a31238d94321fd70c9f89e8e3aa6a6d extra : source : dd574e92185152653dbf070d55bf93fb3e28edd6
This commit is contained in:
parent
f0f40ee684
commit
c305ba7667
@ -254,6 +254,23 @@ function createHTML(options) {
|
||||
return scriptsReady.then(() => realCreateHTML(options));
|
||||
}
|
||||
|
||||
var pushPrefs = (...p) => new Promise(r => SpecialPowers.pushPrefEnv({set: p}, r));
|
||||
|
||||
// noGum - Helper to detect whether active guM tracks still exist.
|
||||
//
|
||||
// It relies on the fact that, by spec, device labels from enumerateDevices are
|
||||
// only visible during active gum calls. They're also visible when persistent
|
||||
// permissions are granted, so turn off media.navigator.permission.disabled
|
||||
// (which is normally on otherwise in our tests). Lastly, we must turn on
|
||||
// media.navigator.permission.fake otherwise fake devices don't count as active.
|
||||
|
||||
var noGum = () => pushPrefs(["media.navigator.permission.disabled", false],
|
||||
["media.navigator.permission.fake", true])
|
||||
.then(() => navigator.mediaDevices.enumerateDevices())
|
||||
.then(([device]) => device &&
|
||||
is(device.label, "", "Test must leave no active gUM streams behind."));
|
||||
|
||||
var runTest = testFunction => scriptsReady
|
||||
.then(() => runTestWhenReady(testFunction))
|
||||
.then(() => noGum())
|
||||
.then(() => finish());
|
||||
|
Loading…
Reference in New Issue
Block a user