FencedFrameConfig: метод setSharedStorageContext()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология .
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров в разделе Совместимость с браузерами.
Метод setSharedStorageContext() интерфейса FencedFrameConfig передает контекстуальные данные из документа-встраивателя в <fencedframe> хранилище.
Синтаксис
setSharedStorageContext(context)
Параметры
context-
Строка, представляющая контекстуальные данные, которые необходимо передать в хранилище. После установки эти данные будут сохранены во внутренней конфигурации экземпляра
FencedFrameConfig.
Возвращаемое значение
Ничего (Undefined).
Примеры
Передача контекстуальных данных через setSharedStorageContext()
Вы можете использовать API частной агрегации, чтобы создавать отчеты, объединяющие данные на уровне событий внутри фреймов с контекстуальными данными из документа-встраивателя. setSharedStorageContext() может использоваться для передачи контекстуальных данных от встраивающей страницы к рабочим блокам хранилища, инициализированным API защищенной аудитории.
В следующем примере мы сохраняем данные как из страницы-встраивателя, так и из фрейма в совместном хранилище.
На странице-встраивателе мы установим тестовый идентификатор события в качестве контекста совместного хранилища, используя setSharedStorageContext():
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;
Внутри фрейма мы добавим модуль рабочего блока с помощью window.sharedStorage.worklet.addModule(), а затем отправим данные на уровне события в рабочий блок совместного хранилища с помощью window.sharedStorage.run() (это не имеет отношения к контекстуальным данным из документа-встраивателя):
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,
},
});
В рабочем блоке reporting-worklet.js мы считываем идентификатор события документа-встраивателя из sharedStorage.context и данные на уровне события фрейма из объекта данных, а затем сообщаем их через частную агрегацию:
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);
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
setSharedStorageContext |
115 | 115 | Нет | 101 | Нет | 115 | Нет | 77 | Нет | 23.0 | 115 |
См. также
- Фреймы с защитой на developers.google.com
- Проект Privacy Sandbox на developers.google.com
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FencedFrameConfig/setSharedStorageContext