Verwendet Firefox 57+ Erweiterungen. * Prefs für einzelne Erweiterungen mehr?

321
RockPaperLizard

Vor Firefox 57 wurden Erweiterungen extensions.*innerhalb von Erweiterungen gespeichert prefs.js.

Speichern die Erweiterungen bei WebExtensions überhaupt ihre Präferenzen prefs.js?

(Meine eingeschränkten Tests legen nahe, dass sie dies nicht tun.)

2

1 Antwort auf die Frage

3
DavidPostill

Speichern WebExtensions ihre Präferenzen immer in prefs.js?

Nicht, wenn sie gemäß den Richtlinien geschrieben werden.

Jede Erweiterung verfügt über einen eigenen Speicherbereich, der in verschiedene Speicherarten unterteilt werden kann.

WebExtensions sollte die Speicher-API verwenden, um die Einstellungen zu speichern:

Ermöglicht Erweiterungen zum Speichern und Abrufen von Daten sowie zur Überwachung von Änderungen an gespeicherten Elementen.

Das Speichersystem basiert auf der Web Storage API, mit einigen Unterschieden. Dazu gehören unter anderem:

  • Es ist asynchron.
  • Die Werte beziehen sich auf die Erweiterung, nicht auf eine bestimmte Domäne (dh derselbe Satz von Schlüssel- / Wert-Paaren steht für alle Skripts im Hintergrundkontext und für Inhaltsskripts zur Verfügung).
  • Die gespeicherten Werte können ein beliebiger JSON-fähiger Wert sein, nicht nur String. Dazu gehören unter anderem: Array und Object, jedoch nur, wenn ihr Inhalt als JSON dargestellt werden kann, der keine DOM-Knoten enthält. Sie müssen Ihre Werte nicht vor dem Speichern in JSON-Strings konvertieren, sondern sie werden intern als JSON dargestellt. Daher müssen sie JSON-fähig sein.
  • In demselben API-Aufruf können mehrere Schlüssel / Wert-Paare festgelegt oder abgerufen werden.

Um diese API verwenden zu können, müssen Sie die Berechtigung "Speicher" in Ihre manifest.json-Datei aufnehmen.

Jede Erweiterung verfügt über einen eigenen Speicherbereich, der in verschiedene Speicherarten unterteilt werden kann.

Obwohl diese API Window.localStorage ähnlich ist, wird empfohlen, Window.localStorage nicht im Erweiterungscode zum Speichern von Erweiterungsdaten zu verwenden. Firefox löscht Daten, die von Erweiterungen mit der localStorage-API gespeichert wurden, in verschiedenen Szenarien, in denen Benutzer den Browserverlauf und die Daten aus Datenschutzgründen löschen. Daten, die mit der storage.local-API gespeichert wurden, werden in diesen Szenarien ordnungsgemäß beibehalten.

(Hervorhebung meines).

Quellspeicher - Mozilla | MDN


Lesen Sie weiter

Thanks David. So technically, they *could*, but they should not. Right? RockPaperLizard vor 6 Jahren 0
@RockPaperLizard Sieht so aus ... DavidPostill vor 6 Jahren 0
In Anbetracht dessen, dass WebExtensions keinen allgemeinen Zugriff auf about: config-Voreinstellungen hat, haben sie keine Möglichkeit, dort etwas zu speichern. evilpie vor 6 Jahren 0