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, bevor Sie diese produktiv verwenden.
Die setSharedStorageContext()
-Methode der FencedFrameConfig
-Schnittstelle übergibt Kontextdaten aus dem eingebetteten Dokument an den gemeinsamen Speicher des <fencedframe>
.
Syntax
setSharedStorageContext(context)
Parameter
context
-
Ein String, der die Kontextdaten repräsentiert, die in den gemeinsamen Speicher übergeben werden sollen. Nachdem sie gesetzt sind, werden sie in der internen Konfiguration
storageContext
-Eigenschaft gespeichert.
Rückgabewert
Nichts (Undefined
).
Beispiele
Kontextdaten über setSharedStorageContext()
übergeben
Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignis-Daten innerhalb von fenced frames mit Kontextdaten vom einbettenden Dokument kombinieren. setSharedStorageContext()
kann verwendet werden, um Kontextdaten vom Einbettenden zu gemeinsamen Speicher-Worklets zu übergeben, die von der Protected Audience API initiiert wurden.
Im folgenden Beispiel speichern wir Daten sowohl von der einbettenden Seite als auch vom fenced frame im gemeinsamen Speicher.
Auf der einbettenden Seite werden wir eine simulierte Ereignis-ID als gemeinsamen Speicher-Kontext mit setSharedStorageContext()
setzen:
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;
Innerhalb des fenced frames fügen wir das Worklet-Modul mit window.sharedStorage.worklet.addModule()
hinzu und senden dann die Ereignis-Daten in das gemeinsame Speicher-Worklet mit window.sharedStorage.run()
(dies ist nicht mit den Kontextdaten des eingebetteten Dokuments verbunden):
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 eingebetteten Dokuments von sharedStorage.context
und die Ereignis-Daten des frames aus dem Datenobjekt, um sie danach über Private Aggregation zu berichten:
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
BCD tables only load in the browser
Siehe auch
- Fenced frames auf developers.google.com
- The Privacy Sandbox auf developers.google.com