Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/third_party/rust/rkv/src/store/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 23 kB image not shown  

Quelle  databaseShadowing-shared.js   Sprache: JAVA

 
/* import-globals-from head.js */

/* eslint-disable mozilla/no-comparison-or-assignment-inside-ok */

const principalInfos = [
  { url: "http://example.com", attrs: {} },

  { url: "http://origin.test", attrs: {} },

  { url: "http://prefix.test", attrs: {} },
  { url: "http://prefix.test", attrs: { userContextId: 10 } },

  { url: "http://pattern.test", attrs: { userContextId: 15 } },
  { url: "http://pattern.test:8080", attrs: { userContextId: 15 } },
  { url: "https://pattern.test", attrs: { userContextId: 15 } },
];

const surrogate = String.fromCharCode(0xdc00);
const replacement = String.fromCharCode(0xfffd);
const beginning = "beginning";
const ending = "ending";
const complexValue = beginning + surrogate + surrogate + ending;
const corruptedValue = beginning + replacement + replacement + ending;

function enableNextGenLocalStorage() {
  info("Setting pref");

  Services.prefs.setBoolPref(
    "dom.storage.enable_unsupported_legacy_implementation",
    false
  );
}

function disableNextGenLocalStorage() {
  info("Setting pref");

  Services.prefs.setBoolPref(
    "dom.storage.enable_unsupported_legacy_implementation",
    true
  );
}

function storeData() {
  for (let i = 0; i < principalInfos.length; i++) {
    let principalInfo = principalInfos[i];
    let principal = getPrincipal(principalInfo.url, principalInfo.attrs);

    info("Getting storage");

    let storage = getLocalStorage(principal);

    info("Adding data");

    storage.setItem("key0""value0");
    storage.clear();
    storage.setItem("key1""value1");
    storage.removeItem("key1");
    storage.setItem("key2""value2");
    storage.setItem("complexKey", complexValue);

    info("Closing storage");

    storage.close();
  }
}

function exportShadowDatabase(name) {
  info("Verifying shadow database");

  let profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
  let shadowDatabase = profileDir.clone();
  shadowDatabase.append("webappsstore.sqlite");

  let exists = shadowDatabase.exists();
  ok(exists, "Shadow database does exist");

  info("Copying shadow database");

  let currentDir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
  shadowDatabase.copyTo(currentDir, name);
}

function importShadowDatabase(name) {
  info("Verifying shadow database");

  let currentDir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
  let shadowDatabase = currentDir.clone();
  shadowDatabase.append(name);

  let exists = shadowDatabase.exists();
  if (!exists) {
    return false;
  }

  info("Copying shadow database");

  let profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
  shadowDatabase.copyTo(profileDir, "webappsstore.sqlite");

  return true;
}

function verifyData(clearedOrigins, migrated = false) {
  for (let i = 0; i < principalInfos.length; i++) {
    let principalInfo = principalInfos[i];
    let principal = getPrincipal(principalInfo.url, principalInfo.attrs);

    info("Getting storage");

    let storage = getLocalStorage(principal);

    info("Verifying data");

    if (clearedOrigins.includes(i)) {
      ok(storage.getItem("key2") == null"Correct value");
      ok(storage.getItem("complexKey") == null"Correct value");
    } else {
      ok(storage.getItem("key0") == null"Correct value");
      ok(storage.getItem("key1") == null"Correct value");
      is(storage.getItem("key2"), "value2""Correct value");
      is(
        storage.getItem("complexKey"),
        migrated ? corruptedValue : complexValue,
        "Correct value"
      );
    }

    info("Closing storage");

    storage.close();
  }
}

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

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