Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/dom/tests/browser/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  browser_persist_cookies.js   Sprache: JAVA

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


"use strict";

const TEST_PATH = getRootDirectory(gTestPath).replace(
  "chrome://mochitests/content",
  "https://example.org"
);
const TEST_PATH2 = getRootDirectory(gTestPath).replace(
  "chrome://mochitests/content",
  "https://example.com"
);

var MockFilePicker = SpecialPowers.MockFilePicker;
MockFilePicker.init(window.browsingContext);

registerCleanupFunction(async function () {
  info("Running the cleanup code");
  MockFilePicker.cleanup();
  Services.obs.removeObserver(checkRequest, "http-on-modify-request");
  SpecialPowers.clearUserPref("network.cookie.sameSite.laxByDefault");
  if (gTestDir && gTestDir.exists()) {
    // On Windows, sometimes nsIFile.remove() throws, probably because we're
    // still writing to the directory we're trying to remove, despite
    // waiting for the download to complete. Just retry a bit later...
    let succeeded = false;
    while (!succeeded) {
      try {
        gTestDir.remove(true);
        succeeded = true;
      } catch (ex) {
        await new Promise(requestAnimationFrame);
      }
    }
  }
});

let gTestDir = null;

function checkRequest(subject) {
  let httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
  let spec = httpChannel.URI.spec;
  // Ignore initial requests for page that sets cookies and its favicon, which may not have
  // cookies.
  if (
    httpChannel.URI.host == "example.org" &&
    !spec.endsWith("favicon.ico") &&
    !spec.includes("redirect.sjs")
  ) {
    let cookie = httpChannel.getRequestHeader("cookie");
    is(
      cookie.trim(),
      "normalCookie=true",
      "Should have correct cookie in request for " + spec
    );
  }
}

function createTemporarySaveDirectory() {
  var saveDir = Services.dirsvc.get("TmpD", Ci.nsIFile);
  saveDir.append("testsavedir");
  if (!saveDir.exists()) {
    info("create testsavedir!");
    saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
  }
  info("return from createTempSaveDir: " + saveDir.path);
  return saveDir;
}

add_task(async function () {
  // Use nsICookieService.BEHAVIOR_REJECT_TRACKER to avoid cookie partitioning.
  // In this test case, if the cookie is partitioned, there will be no cookie
  // nsICookieServicebeing sent to compare.
  await SpecialPowers.pushPrefEnv({
    set: [
      ["network.cookie.cookieBehavior", 4],
      // Bug 1617611: Fix all the tests broken by "cookies SameSite=lax by default"
      ["network.cookie.sameSite.laxByDefault"false],
    ],
  });

  await BrowserTestUtils.withNewTab("about:blank", async function (browser) {
    Services.obs.addObserver(checkRequest, "http-on-modify-request");
    BrowserTestUtils.startLoadingURIString(
      browser,
      TEST_PATH + "set-samesite-cookies-and-redirect.sjs"
    );
    // Test that the original document load doesn't send same-site cookies.
    await BrowserTestUtils.browserLoaded(
      browser,
      true,
      TEST_PATH2 + "set-samesite-cookies-and-redirect.sjs"
    );
    // Now check the saved page.
    // Create the folder the link will be saved into.
    gTestDir = createTemporarySaveDirectory();
    let destFile = gTestDir.clone();

    MockFilePicker.displayDirectory = gTestDir;
    let fileName;
    MockFilePicker.showCallback = function (fp) {
      info("showCallback");
      fileName = fp.defaultString;
      info("fileName: " + fileName);
      destFile.append(fileName);
      info("path: " + destFile.path);
      MockFilePicker.setFiles([destFile]);
      MockFilePicker.filterIndex = 0; // kSaveAsType_Complete
      info("done showCallback");
    };
    saveBrowser(browser);
    let dls = await Downloads.getList(Downloads.PUBLIC);
    await new Promise((resolve, reject) => {
      dls.addView({
        onDownloadChanged(download) {
          if (download.succeeded) {
            dls.removeView(this);
            dls.removeFinished();
            resolve();
          } else if (download.error) {
            reject("Download failed");
          }
        },
      });
    });
  });
});

Messung V0.5
C=90 H=98 G=94

¤ Dauer der Verarbeitung: 0.17 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.