tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_bug1691153.js (2027B)


      1 "use strict";
      2 
      3 add_task(async () => {
      4  const TEST_PATH = getRootDirectory(gTestPath).replace(
      5    "chrome://mochitests/content",
      6    // eslint-disable-next-line @microsoft/sdl/no-insecure-url
      7    "http://example.com"
      8  );
      9 
     10  const HTML_URI = TEST_PATH + "file_bug1691153.html";
     11 
     12  // Opening the page that contains the iframe
     13  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
     14  let browser = tab.linkedBrowser;
     15  let browserLoaded = BrowserTestUtils.browserLoaded(
     16    browser,
     17    true,
     18    HTML_URI,
     19    true
     20  );
     21  info("new tab loaded");
     22 
     23  BrowserTestUtils.startLoadingURIString(browser, HTML_URI);
     24  await browserLoaded;
     25  info("The test page has loaded!");
     26 
     27  let first_message_promise = SpecialPowers.spawn(
     28    browser,
     29    [],
     30    async function () {
     31      let blobPromise = new Promise(resolve => {
     32        content.addEventListener("message", event => {
     33          if (event.data.bloburl) {
     34            info("Sanity check: recvd blob URL as " + event.data.bloburl);
     35            resolve(event.data.bloburl);
     36          }
     37        });
     38      });
     39      content.postMessage("getblob", "*");
     40      return blobPromise;
     41    }
     42  );
     43  info("The test page has loaded!");
     44  let blob_url = await first_message_promise;
     45 
     46  Assert.ok(blob_url.startsWith("blob:"), "Sanity check: recvd blob");
     47  info(`Received blob URL message from content: ${blob_url}`);
     48  // try to open the blob in a new tab, manually created by the user
     49  let tab2 = await BrowserTestUtils.openNewForegroundTab(
     50    gBrowser,
     51    blob_url,
     52    true,
     53    false,
     54    true
     55  );
     56 
     57  let principal = gBrowser.selectedTab.linkedBrowser._contentPrincipal;
     58  Assert.ok(
     59    !principal.isSystemPrincipal,
     60    "Newly opened blob shouldn't be Systemprincipal"
     61  );
     62  Assert.ok(
     63    !principal.isExpandedPrincipal,
     64    "Newly opened blob shouldn't be ExpandedPrincipal"
     65  );
     66  Assert.ok(
     67    principal.isContentPrincipal,
     68    "Newly opened blob tab should be ContentPrincipal"
     69  );
     70 
     71  BrowserTestUtils.removeTab(tab);
     72  BrowserTestUtils.removeTab(tab2);
     73 });