forked from mirrors/gecko-dev
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const TEST_ROOT = getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content/",
|
|
"https://example.com/"
|
|
);
|
|
const TEST_PAGE = TEST_ROOT + "get_user_media.html";
|
|
|
|
/**
|
|
* Regression test for bug 1669801, where sharing a window would
|
|
* result in a device control menu that showed the wrong count.
|
|
*/
|
|
add_task(async function test_bug_1669801() {
|
|
let prefs = [
|
|
[PREF_PERMISSION_FAKE, true],
|
|
[PREF_AUDIO_LOOPBACK, ""],
|
|
[PREF_VIDEO_LOOPBACK, ""],
|
|
[PREF_FAKE_STREAMS, true],
|
|
[PREF_FOCUS_SOURCE, false],
|
|
];
|
|
await SpecialPowers.pushPrefEnv({ set: prefs });
|
|
|
|
await BrowserTestUtils.withNewTab(TEST_PAGE, async browser => {
|
|
let indicatorPromise = promiseIndicatorWindow();
|
|
|
|
await shareDevices(
|
|
browser,
|
|
false /* camera */,
|
|
false /* microphone */,
|
|
SHARE_WINDOW
|
|
);
|
|
|
|
let indicator = await indicatorPromise;
|
|
let doc = indicator.document;
|
|
|
|
let menupopup = doc.querySelector("menupopup[type='Screen']");
|
|
let popupShownPromise = BrowserTestUtils.waitForEvent(
|
|
menupopup,
|
|
"popupshown"
|
|
);
|
|
menupopup.openPopup(doc.body, {});
|
|
await popupShownPromise;
|
|
|
|
let popupHiddenPromise = BrowserTestUtils.waitForEvent(
|
|
menupopup,
|
|
"popuphidden"
|
|
);
|
|
menupopup.hidePopup();
|
|
await popupHiddenPromise;
|
|
await closeStream();
|
|
});
|
|
});
|