Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  browser_containerLoadingContent.js   Sprache: JAVA

 
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */


"use strict";

const DIRPATH = getRootDirectory(gTestPath).replace(
  "chrome://mochitests/content/",
  ""
);

const ORIGIN = "https://example.com";
const CROSSORIGIN = "https://example.org";

const TABURL = `${ORIGIN}/${DIRPATH}dummy_page.html`;

const IMAGEURL = `${ORIGIN}/${DIRPATH}image.png`;
const CROSSIMAGEURL = `${CROSSORIGIN}/${DIRPATH}image.png`;

const DOCUMENTURL = `${ORIGIN}/${DIRPATH}dummy_page.html`;
const CROSSDOCUMENTURL = `${CROSSORIGIN}/${DIRPATH}dummy_page.html`;

function getPids(browser) {
  return browser.browsingContext.children.map(
    child => child.currentWindowContext.osPid
  );
}

async function runTest(spec, tabUrl, imageurl, crossimageurl, check) {
  await BrowserTestUtils.withNewTab(tabUrl, async browser => {
    await SpecialPowers.spawn(
      browser,
      [spec, imageurl, crossimageurl],
      async ({ element, attribute }, url1, url2) => {
        for (let url of [url1, url2]) {
          const object = content.document.createElement(element);
          object[attribute] = url;
          const onloadPromise = new Promise(res => {
            object.onload = res;
          });
          content.document.body.appendChild(object);
          await onloadPromise;
        }
      }
    );

    await check(browser);
  });
}

let iframe = { element: "iframe", attribute: "src" };
let embed = { element: "embed", attribute: "src" };
let object = { element: "object", attribute: "data" };

async function checkImage(browser) {
  let pids = getPids(browser);
  is(pids.length, 2, "There should be two browsing contexts");
  ok(pids[0], "The first pid should have a sane value");
  ok(pids[1], "The second pid should have a sane value");
  isnot(pids[0], pids[1], "The two pids should be different");

  let images = [];
  for (let context of browser.browsingContext.children) {
    images.push(
      await SpecialPowers.spawn(context, [], async () => {
        let img = new URL(content.document.querySelector("img").src);
        is(
          `${img.protocol}//${img.host}`,
          `${content.location.protocol}//${content.location.host}`,
          "Images should be loaded in the same domain as the document"
        );
        return img.href;
      })
    );
  }
  isnot(images[0], images[1], "The images should have different sources");
}

function checkDocument(browser) {
  let pids = getPids(browser);
  is(pids.length, 2, "There should be two browsing contexts");
  ok(pids[0], "The first pid should have a sane value");
  ok(pids[1], "The second pid should have a sane value");
  isnot(pids[0], pids[1], "The two pids should be different");
}

add_task(async function test_iframeImageDocument() {
  await runTest(iframe, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage);
});

add_task(async function test_embedImageDocument() {
  await runTest(embed, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage);
});

add_task(async function test_objectImageDocument() {
  await runTest(object, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage);
});

add_task(async function test_iframeDocument() {
  await runTest(iframe, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument);
});

add_task(async function test_embedDocument() {
  await runTest(embed, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument);
});

add_task(async function test_objectDocument() {
  await runTest(object, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument);
});

Messung V0.5
C=88 H=98 G=93

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge