Eine aufbereitete Darstellung der Quelle

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

Benutzer

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 in Prozent
C=87 H=94 G=90

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-06-04) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik