summaryrefslogtreecommitdiffstats
path: root/toolkit/components/pictureinpicture/tests/browser_privateWindow.js
blob: 26d051b14a0ac369844faee33a4a380d03905c9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Tests that a Picture-in-Picture window opened by a Private browsing
 * window has the "private" feature set on its window (which is important
 * for some things, eg: taskbar grouping on Windows).
 */
add_task(async () => {
  for (let videoID of ["with-controls", "no-controls"]) {
    info(`Testing ${videoID} case.`);

    let privateWin = await BrowserTestUtils.openNewBrowserWindow({
      private: true,
    });
    let pipTab = await BrowserTestUtils.openNewForegroundTab(
      privateWin.gBrowser,
      TEST_PAGE
    );
    let browser = pipTab.linkedBrowser;

    let pipWin = await triggerPictureInPicture(browser, videoID);
    ok(pipWin, "Got Picture-in-Picture window.");

    Assert.equal(
      pipWin.docShell.treeOwner
        .QueryInterface(Ci.nsIInterfaceRequestor)
        .getInterface(Ci.nsIAppWindow).chromeFlags &
        Ci.nsIWebBrowserChrome.CHROME_PRIVATE_WINDOW,
      Ci.nsIWebBrowserChrome.CHROME_PRIVATE_WINDOW,
      "Picture-in-Picture window should be marked as private"
    );

    await BrowserTestUtils.closeWindow(privateWin);
  }
});