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


Quelle  PageStyleParent.sys.mjs   Sprache: unbekannt

 
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

export class PageStyleParent extends JSWindowActorParent {
  // This has the most recent information about the content stylesheets for
  // that actor. It's populated via the PageStyle:Add and PageStyle:Clear
  // messages from the content process. It has the following structure:
  //
  // filteredStyleSheets (Array):
  //   An Array of objects with a filtered list representing all stylesheets
  //   that the current page offers. Each object has the following members:
  //
  //   title (String):
  //     The title of the stylesheet
  //
  //   disabled (bool):
  //     Whether or not the stylesheet is currently applied
  //
  //   href (String):
  //     The URL of the stylesheet. Stylesheets loaded via a data URL will
  //     have this property set to null.
  //
  // preferredStyleSheetSet (bool):
  //   Whether or not the user currently has the "Default" style selected
  //   for the current page.
  #styleSheetInfo = null;

  receiveMessage(msg) {
    // Check if things are alive:
    let browser = this.browsingContext.top.embedderElement;
    if (!browser || browser.ownerGlobal.closed) {
      return;
    }

    // We always store information at the top of the frame tree.
    let actor =
      this.browsingContext.top.currentWindowGlobal.getActor("PageStyle");
    switch (msg.name) {
      case "PageStyle:Add":
        actor.addSheetInfo(msg.data);
        break;
      case "PageStyle:Clear":
        if (actor == this) {
          this.#styleSheetInfo = null;
        }
        break;
    }
  }

  /**
   * Add/append styleSheets to the _pageStyleSheets weakmap.
   * @param newSheetData
   *        The stylesheet data, including new stylesheets to add,
   *        and the preferred stylesheet set for this document.
   */
  addSheetInfo(newSheetData) {
    let info = this.getSheetInfo();
    info.filteredStyleSheets.push(...newSheetData.filteredStyleSheets);
    info.preferredStyleSheetSet ||= newSheetData.preferredStyleSheetSet;
  }

  getSheetInfo() {
    if (!this.#styleSheetInfo) {
      this.#styleSheetInfo = {
        filteredStyleSheets: [],
        preferredStyleSheetSet: true,
      };
    }
    return this.#styleSheetInfo;
  }
}

[ Dauer der Verarbeitung: 0.3 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge