Spec-Zone.ru › Web APIs

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);

Спецификации

Спецификация
Фрейм с защитой
# dom-fencedframeconfig-setsharedstoragecontext

Совместимость с браузерами

Рабочий стол Мобильный
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API