В Chrome 130 внесены изменения в API общего хранилища , позволяющие использовать сценарии ворлетов из разных источников с помощью createWorklet()
и addModule()
. Мы также представляем обновления API Select URL с общим хранилищем в Chrome 132 с поддержкой сохраненных запросов.

Рабочие программы из разных источников с API общего хранилища в Chrome 130
Мы внесли изменения в API общего хранилища в Chrome 130, чтобы предоставить вам больше гибкости при работе со сценариями ворлетов из разных источников.
Что изменилось
Мы удалили ограничение одного и того же источника для addModule()
поэтому теперь вы можете загружать сценарии рабочих листов из любого источника. Сценарии ворлетов с перекрестным происхождением обеспечивают ключевые варианты использования, такие как размещение сценариев ворлетов в CDN. Когда сценарий ворлета является перекрестным источником вызывающего контекста просмотра , источник вызывающего контекста используется в качестве источника раздела данных для доступа к общему хранилищу.
Чтобы соответствовать новому поведению addModule()
и уменьшить потенциальную путаницу, к вызову createWorklet()
было добавлено свойство dataOrigin
, позволяющее читать и записывать в общий раздел данных хранилища, который отличается от вызывающего контекста просмотра. Это дает вам более детальный контроль над тем, к какому общему хранилищу источника обращается каждый ворлет, даже при использовании сценариев ворлета с несколькими источниками.
Как это изменилось
Начиная с Chrome 125, сторонний скрипт с несколькими источниками на странице может создавать рабочие модули с несколькими источниками без необходимости использования iframe с разными источниками путем вызова createWorklet(url)
. Ранее createWorklet(url)
использовал источник URL-адреса скрипта ( url
) в качестве источника раздела данных, независимо от контекста вызова.
В Chrome 130, чтобы соответствовать новому поведению addModule()
, createWorklet()
также использует контекст вызова в качестве источника раздела данных по умолчанию. Чтобы продолжить использование источника URL-адреса сценария в качестве источника раздела данных, вводится новое свойство dataOrigin
, позволяющее явно устанавливать происхождение раздела данных.
Новое свойство dataOrigin
принимает "script-origin"
, которое устанавливает происхождение раздела данных в качестве источника сценария, и "context-origin"
, которое устанавливает происхождение раздела данных в качестве источника вызывающего контекста просмотра. В будущем выпуске мы также планируем поддерживать настраиваемые источники разделов данных, где сценарий рабочего модуля может получить доступ к данным общего хранилища из произвольного источника по своему желанию.
При загрузке сценария с несколькими источниками, для которого установлено значение источника данных "script-origin"
, запрос сценария, отправленный из браузера, будет включать заголовок "Sec-Shared-Storage-Data-Origin: <origin>"
. Чтобы включить это, сценарий должен также включать заголовок ответа "Shared-Storage-Cross-Origin-Worklet-Allowed: ?1"
.
Как использовать
Если вы уже используете createWorklet()
с источником сценария в качестве источника раздела данных ворлета, вы можете установить dataOrigin
следующим образом:
sharedStorage.createWorklet(scriptUrl, {dataOrigin: "script-origin"});
Поскольку createWorklet()
позволяет создавать разделы данных из разных источников и создавать несколько рабочих модулей, мы рекомендуем вам перейти к createWorklet()
вместо использования addModule()
.
Мы обновили документацию для разработчиков , чтобы отразить эти изменения и предоставить дополнительные рекомендации.
Сохраненные запросы с помощью API выбора URL в Chrome 132.
Мы представляем обновления API Select URL с общим хранилищем в Chrome 132 с поддержкой сохраненных запросов.
Что меняется
API Select URL в настоящее время имеет два бюджета загрузки на страницу , которые ограничивают количество вызовов API при каждой загрузке страницы. Мы представляем возможность сохранять и повторно использовать запросы для каждой страницы. При использовании сохраненного запроса бюджеты на загрузку страницы взимаются при первом запуске сохраненного запроса, но не при последующих запусках сохраненного запроса во время той же загрузки страницы.
Как реализовать сохраненные запросы
Начиная с версии Chrome 132, вы можете использовать параметр savedQuery
в опциях selectURL()
с именем запроса:
await sharedStorage.selectURL('experiment', urls, {
savedQuery: 'control_or_experiment',
keepAlive: true
});
Используйте одно и то же имя savedQuery
для каждого вызова selectURL()
чтобы гарантировать, что последующие запросы будут оплачиваться из одного и того же бюджета.
Мы обновили документацию , чтобы отразить эти изменения и предоставить дополнительную информацию о бюджетировании для selectURL()
.
Привлекайте и делитесь отзывами
Обратите внимание, что предложение API общего хранилища находится в стадии активного обсуждения и разработки и поэтому может быть изменено.
Мы хотим услышать ваши мысли об API общего хранилища.
- Предложение : Рассмотрите подробное предложение .
- Обсуждение : присоединяйтесь к продолжающемуся обсуждению , чтобы задавать вопросы и делиться своими мыслями.
Будьте в курсе
- Список рассылки : подпишитесь на нашу рассылку, чтобы получать последние обновления и объявления, связанные с API общего хранилища.
Нужна помощь?
- Поддержка разработчиков : общайтесь с другими разработчиками и получайте ответы на свои вопросы в репозитории поддержки разработчиков Privacy Sandbox .