FencedFrameConfig: setSharedStorageContext() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die setSharedStorageContext() Methode der FencedFrameConfig-Schnittstelle übergibt kontextbezogene Daten aus dem einbettenden Dokument an den Shared Storage des <fencedframe>.

Syntax

js
setSharedStorageContext(context)

Parameter

context

Ein String, der die kontextbezogenen Daten darstellt, die in den Shared Storage übergeben werden. Einmal gesetzt, wird er in der internen Konfiguration der FencedFrameConfig-Instanz gespeichert.

Rückgabewert

Kein (Undefined).

Beispiele

Kontextbezogene Daten mit setSharedStorageContext() übergeben

Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignis-Ebene-Daten innerhalb von fenced frames mit kontextbezogenen Daten aus dem einbettenden Dokument kombinieren. setSharedStorageContext() kann verwendet werden, um kontextbezogene Daten vom Einbettungsdokument an Shared Storage Worklets zu übergeben, die von der Protected Audience API initiiert werden.

Im folgenden Beispiel speichern wir Daten sowohl von der einbettenden Seite als auch vom fenced frame im Shared Storage.

Auf der einbettenden Seite setzen wir eine simulierte Ereignis-ID als Shared Storage Kontext mit setSharedStorageContext():

js
const frameConfig = await navigator.runAdAuction({ resolveToConfig: true });

// Data from the embedder that you want to pass to the shared storage worklet
frameConfig.setSharedStorageContext("some-event-id");

const frame = document.createElement("fencedframe");
frame.config = frameConfig;

Im fenced frame fügen wir das Worklet-Modul mit window.sharedStorage.worklet.addModule() hinzu und senden dann die Ereignis-Ebene-Daten in das Shared Storage Worklet mit window.sharedStorage.run() (dies steht nicht im Zusammenhang mit den kontextbezogenen Daten aus dem einbettenden Dokument):

js
const frameData = {
  // Data available only inside the fenced frame
};

await window.sharedStorage.worklet.addModule("reporting-worklet.js");

await window.sharedStorage.run("send-report", {
  data: {
    frameData,
  },
});

Im reporting-worklet.js Worklet lesen wir die Ereignis-ID des einbettenden Dokuments von sharedStorage.context und die Ereignis-Ebene-Daten des Frames aus dem Datenobjekt aus und berichten sie dann durch Private Aggregation:

js
class ReportingOperation {
  convertEventIdToBucket(eventId) { ... }
  convertEventPayloadToValue(info) { ... }

  async run(data) {
    // Data from the embedder
    const eventId = sharedStorage.context;

    // Data from the fenced frame
    const eventPayload = data.frameData;

    privateAggregation.sendHistogramReport({
      bucket: convertEventIdToBucket(eventId),
      value: convertEventPayloadToValue(eventPayload)
    });
  }
}

register('send-report', ReportingOperation);

Spezifikationen

Specification
Fenced Frame
# dom-fencedframeconfig-setsharedstoragecontext

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
setSharedStorageContext
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch