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

Quelle  imgutils.js   Sprache: JAVA

 
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
// Helper file for shared image functionality
//
// Note that this is use by tests elsewhere in the source tree. When in doubt,
// check mxr before removing or changing functionality.

// Helper function to clear both the content and chrome image caches
function clearAllImageCaches() {
  var tools = SpecialPowers.Cc["@mozilla.org/image/tools;1"].getService(
    SpecialPowers.Ci.imgITools
  );
  var imageCache = tools.getImgCacheForDocument(window.document);
  imageCache.clearCache(true); // true=chrome
  imageCache.clearCache(false); // false=content
}

// Helper function to clear the image cache of content images
function clearImageCache() {
  var tools = SpecialPowers.Cc["@mozilla.org/image/tools;1"].getService(
    SpecialPowers.Ci.imgITools
  );
  var imageCache = tools.getImgCacheForDocument(window.document);
  imageCache.clearCache(false); // true=chrome, false=content
}

// Helper function to determine if the frame is decoded for a given image id
function isFrameDecoded(id) {
  return !!(
    getImageStatus(id) & SpecialPowers.Ci.imgIRequest.STATUS_FRAME_COMPLETE
  );
}

// Helper function to determine if the image is loaded for a given image id
function isImageLoaded(id) {
  return !!(
    getImageStatus(id) & SpecialPowers.Ci.imgIRequest.STATUS_LOAD_COMPLETE
  );
}

// Helper function to get the status flags of an image
function getImageStatus(id) {
  // Get the image
  var img = SpecialPowers.wrap(document.getElementById(id));

  // Get the request
  var request = img.getRequest(
    SpecialPowers.Ci.nsIImageLoadingContent.CURRENT_REQUEST
  );

  // Return the status
  return request.imageStatus;
}

// Forces a synchronous decode of an image by drawing it to a canvas. Only
// really meaningful if the image is fully loaded first
function forceDecode(id) {
  // Get the image
  var img = document.getElementById(id);

  // Make a new canvas
  var canvas = document.createElement("canvas");

  // Draw the image to the canvas. This forces a synchronous decode
  var ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0);
}

// Functions to facilitate getting/setting various image-related prefs
//
// If you change a pref in a mochitest, Don't forget to reset it to its
// original value!
//
// Null indicates no pref set

const DISCARD_ENABLED_PREF = {
  name: "discardable",
  branch: "image.mem.",
  type: "bool",
};
const DECODEONDRAW_ENABLED_PREF = {
  name: "decodeondraw",
  branch: "image.mem.",
  type: "bool",
};
const DISCARD_TIMEOUT_PREF = {
  name: "min_discard_timeout_ms",
  branch: "image.mem.",
  type: "int",
};

function setImagePref(pref, val) {
  var prefService = SpecialPowers.Services.prefs;
  var branch = prefService.getBranch(pref.branch);
  if (val != null) {
    switch (pref.type) {
      case "bool":
        branch.setBoolPref(pref.name, val);
        break;
      case "int":
        branch.setIntPref(pref.name, val);
        break;
      default:
        throw new Error("Unknown pref type");
    }
  } else if (branch.prefHasUserValue(pref.name)) {
    branch.clearUserPref(pref.name);
  }
}

function getImagePref(pref) {
  var prefService = SpecialPowers.Services.prefs;
  var branch = prefService.getBranch(pref.branch);
  if (branch.prefHasUserValue(pref.name)) {
    switch (pref.type) {
      case "bool":
        return branch.getBoolPref(pref.name);
      case "int":
        return branch.getIntPref(pref.name);
      default:
        throw new Error("Unknown pref type");
    }
  } else {
    return null;
  }
}

// JS implementation of imgIScriptedNotificationObserver with stubs for all of its methods.
function ImageDecoderObserverStub() {
  this.sizeAvailable = function sizeAvailable() {};
  this.frameComplete = function frameComplete() {};
  this.decodeComplete = function decodeComplete() {};
  this.loadComplete = function loadComplete() {};
  this.frameUpdate = function frameUpdate() {};
  this.discard = function discard() {};
  this.isAnimated = function isAnimated() {};
  this.hasTransparency = function hasTransparency() {};
}

Messung V0.5
C=93 H=93 G=92

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.