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

Quelle  browser_pdfjs_hcm.js   Sprache: JAVA

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


const RELATIVE_DIR = "toolkit/components/pdfjs/test/";
const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;

/**
 * Get the first and last pixels on the drawn canvas.
 * @param {Object} browser
 * @returns {Object}
 */

async function getFirstLastPixels(browser) {
  return SpecialPowers.spawn(browser, [], async function () {
    const { document } = content;
    const canvas = document.querySelector("canvas");

    Assert.ok(!!canvas, "We must have a canvas");

    const data = Array.from(
      canvas.getContext("2d").getImageData(0, 0, canvas.width, canvas.height)
        .data
    );

    return {
      first: data.slice(0, 3),
      last: data.slice(-4, -1),
    };
  });
}

/**
 * Test that the pdf has the correct color depending on the high contrast mode.
 */

add_task(async function test() {
  let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
  let handlerInfo = mimeService.getFromTypeAndExtension(
    "application/pdf",
    "pdf"
  );

  // Make sure pdf.js is the default handler.
  is(
    handlerInfo.alwaysAskBeforeHandling,
    false,
    "pdf handler defaults to always-ask is false"
  );
  is(
    handlerInfo.preferredAction,
    Ci.nsIHandlerInfo.handleInternally,
    "pdf handler defaults to internal"
  );

  info("Pref action: " + handlerInfo.preferredAction);

  await SpecialPowers.pushPrefEnv({
    set: [
      ["browser.display.document_color_use", 0],
      ["browser.display.background_color""#ff0000"],
      ["browser.display.foreground_color""#00ff00"],
      ["browser.display.use_system_colors"false],
    ],
  });

  await BrowserTestUtils.withNewTab(
    { gBrowser, url: "about:blank" },
    async function (browser) {
      // check that PDF is opened with internal viewer
      await waitForPdfJSCanvas(
        browser,
        `${TESTROOT}file_pdfjs_hcm.pdf#zoom=800`
      );

      const { first, last } = await getFirstLastPixels(browser);
      // The first pixel must be black and not green.
      Assert.deepEqual(first, [0, 0, 0]);

      // The last pixel must be white and not red.
      Assert.deepEqual(last, [255, 255, 255]);

      await waitForPdfJSClose(browser);
    }
  );

  // Enable HCM.
  await SpecialPowers.pushPrefEnv({
    set: [["ui.useAccessibilityTheme", 1]],
  });

  await BrowserTestUtils.withNewTab(
    { gBrowser, url: "about:blank" },
    async function (browser) {
      // check that PDF is opened with internal viewer
      await waitForPdfJSCanvas(
        browser,
        `${TESTROOT}file_pdfjs_hcm.pdf#zoom=800`
      );

      const { first, last } = await getFirstLastPixels(browser);
      // The first pixel must be green.
      Assert.deepEqual(first, [0, 255, 0]);

      // The last pixel must be red.
      Assert.deepEqual(last, [255, 0, 0]);

      await waitForPdfJSClose(browser);
    }
  );

  await SpecialPowers.popPrefEnv();
});

Messung V0.5
C=90 H=100 G=95

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