FencedFrameConfig
Ограниченная доступность
Данная функция не относится к Baseline, так как она не работает в некоторых из самых распространённых браузеров.
Экспериментальная: Это экспериментальная технология экспериментальная технология
Перед использованием в производстве внимательно изучите таблицу совместимости браузеров таблицу совместимости браузеров.
Интерфейс FencedFrameConfig представляет собой навигацию по <fencedframe>, т.е. какой контент будет отображаться в нём.
FencedFrameConfig объекты нельзя создать вручную с помощью JavaScript. Они возвращаются из источника, такого как API защищённой аудитории, и устанавливаются в качестве значения HTMLFencedFrameElement.config.
Объект FencedFrameConfig имеет доступный метод, но также отображает внутреннюю конфигурационную информацию, содержащую непрозрачные свойства, недоступные из JavaScript. Это включает в себя информацию о источнике загруженного контента и группах интересов для рекламных целей. Это ключевой момент в том, как фреймы fenced помогают реализовать ключевые сценарии использования, сохраняя при этом конфиденциальность пользователя.
Методы экземпляров
-
Передает данные из документа встраивания в общее хранилище
<fencedframe>.
Примеры
Базовое использование
Чтобы установить, какой контент будет отображаться в <fencedframe>, используемый API (например, Защищённая аудитория или Общее хранилище) генерирует объект FencedFrameConfig, который затем устанавливается в качестве значения свойства config объекта <fencedframe>.
В следующем примере берётся объект FencedFrameConfig из аукциона рекламы API защищённой аудитории, который затем используется для отображения выигрышной рекламы в <fencedframe>:
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true,
});
const frame = document.createElement("fencedframe");
frame.config = frameConfig;
Передача контекстных данных через setSharedStorageContext()
Вы можете использовать API частной агрегации, чтобы создавать отчёты, которые объединяют данные на уровне событий внутри фреймов fenced с контекстными данными из встраивающего документа. setSharedStorageContext() можно использовать для передачи контекстных данных от embedдера в работающие модули общего хранилища, инициированные API защищённой аудитории.
В следующем примере мы сохраняем данные как из встраивающей страницы, так и из фрейма fenced в общем хранилище.
На странице встраивания мы установим имитирующий идентификатор события в качестве контекста общего хранилища, используя 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;
Внутри фрейма fenced мы добавим модуль worklet с помощью 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);
Спецификации
| Спецификация |
|---|
| Фрейм fenced # fenced-frame-config-interface |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
FencedFrameConfig |
115 | 115 | Нет | 101 | Нет | 115 | Нет | 77 | Нет | 23.0 | 115 |
setSharedStorageContext |
115 | 115 | Нет | 101 | Нет | 115 | Нет | 77 | Нет | 23.0 | 115 |
См. также
- Фреймы fenced на developers.google.com
- Песочница конфиденциальности на 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