Safari Technology Preview 46: Service Workers в браузере Apple

Safari Technology Preview от Apple, ориентированный на разработчиков, сегодня обновлен до версии 46. Наряду с ожидаемыми исправлениями ошибок, этот релиз браузера впервые по умолчанию включает Service Workers от Apple.

Service Workers позволяют разработчикам создавать гибкие веб-приложения, которые работают вне ограничений браузера. Например, Service Worker может использоваться на сайте для обработки офлайн-активности в сети. Вместо отображения пустой страницы, Service Worker может кешировать данные для офлайн-просмотра. Service Workers также открывают возможности для push-уведомлений на веб-страницах и фоновой синхронизации данных.

В будущем Service Workers могут появиться на устройствах iOS, открывая для веба совершенно новый спектр возможностей. Уже доступные на Android, некоторые сайты начали использовать Service Workers для предоставления push-уведомлений через браузер.

Safari Technology Preview 46 также вводит новое предупреждение безопасности для форм ввода паролей и данных кредитных карт на небезопасных страницах.

Последнее обновление теперь доступно в Mac App Store.

Полные заметки о выпуске доступны ниже:

Service Workers

Автономные приложения важны для веба. После того как HTML5 впервые попытался адаптировать их с помощью Offline Application Cache, была создана спецификация Service Workers как его преемник.

Этот стандарт описывает новые API, ориентированные на использование JavaScript для обработки загрузки ресурсов веб-страницы без доступа к сети. Хотя работа продолжается, мы рады включить Service Workers по умолчанию в этом выпуске. Пожалуйста, протестируйте нашу реализацию на ваших веб-сайтах и отправьте нам отзывы через трекер ошибок проекта WebKit.

  • Service Workers включены по умолчанию (r225789)
  • self.registration в Service Workers (r225296)
  • Удалены HTTP-заголовки, добавленные CachedResource и CachedResourceLoader в Service Worker fetch (r225574)
  • Отклонены промисы в API ServiceWorkers при вызове объектов внутри отсоединенных фреймов (r225577)
  • Передано содержимое изображений из CacheStorage.add(url) сетевого запроса (r225708)
  • Изменена фильтрация заголовков события Fetch для применения только в CORS-режиме (r225809)
  • Обработаны self.skipWaiting() в Service Workers (r225460)
  • Удалено XMLHttpRequest из экспорта в Service Workers (r225549)
  • Реализованы clients.get() и clients.getAll() (r225427, r225452)
  • Поддержка container.register() и registration.unregister() в Service Workers (r225456)
  • Целевой URL области Service Worker для метаданных удаленной инспекции (r225633)
  • Сделано так, чтобы навигационные запросы использовали режим загрузки navigate (r225796)
  • Активированы IndexedDB и Web Sockets в Service Workers (r225644)
  • Поддержка container.getRegistration() и container.getRegistrations() в Service Workers (r225513)
  • Добавлена поддержка serviceWorker.postMessage() и serviceWorkerRegistration.update() в Service Workers (r225462, r225455)
  • Добавлена поддержка алгоритма выгрузки клиента Service Worker (r225483)
  • Добавлена поддержка FetchEvent.clientId (r225294)
  • Устранены различные проблемы с инспектированием Service Workers (r225709)
  • Включена поддержка перенаправлений, сгенерированных Service Worker (r225297)
  • Заполнены self.registration.installing, self.registration.waiting и self.registration.active в Service Workers (r225341)

UI безопасности

  • Добавлено предупреждение в поле Smart Search при работе с формами ввода паролей или кредитных карт на незащищенных страницах

Конфиденциальность

  • Заморожена строка user-agent для снижения риска несовместимости с веб-сайтами и предотвращения ее использования для фингерпринтинга

CSS

  • Исправлены мелкие или обрезанные элементы управления, вызванные масштабированием (scale()) элементов (r225495, r225521)
  • Ограничен автоматический минимальный размер в CSS grid, если функция размера дорожки min() является auto (r225776)
  • Реализовано выравнивание для абсолютно позиционированных элементов CSS grid (r225805)

Рендеринг

  • Исправлено часто пустое на HTML-странице (r225791)
  • Исправлено отсутствие содержимого слоя при анимации элементов на экране (r225310)
  • Реализовано transferToImageBitmap для WebGL offscreen canvas объектов (r225706)
  • Предотвращено влияние значений viewport unit на масштабирование с помощью ⌘- или ⌘+ (r225277)
  • Storage Access API

    • Реализован доступ на уровне фрейма в уровне сессии хранения сети (r225827)
    • Сделано так, чтобы document.hasStorageAccess была функцией и всегда разрешала доступ для same-origin iframe (r225583, r225586)

    Web Inspector

    • Сделано Computed главной панелью боковой области на вкладке Elements (r225547)
    • Добавлена возможность фильтрации правил и добавления новых правил стилей в переработанной боковой панели Styles (r225571, r225569)
    • Добавлено отображение связанных псевдоэлементов в боковой панели Styles (r225572)
    • Изменено поведение нажатия Delete в пустом поле значения нового свойства — фокус переносится на поле имени в боковой панели Styles (r225570)
    • Исправлено, что CSS-свойства не удалялись в боковой панели Styles после удаления их значений (r225839)
    • Исправлено наложение заголовков секций деталей на контейнер Classes в панели Computed Styles (r225595)
    • Исправлено добавление нового свойства после свойства без конечной точки с запятой в боковой панели Styles (r225299)
    • Предотвращено добавление свойства перед первым или после первого свойства, которое приводило к добавлению в конец боковой панели Styles (r225568)
    • Исправлено, что панель фильтрации на вкладке Console иногда не отображалась, и случаи, когда очистка консоли не всегда работает (r225280)
    • Исправлено отображение содержимого для ресурсов, загруженных через XHR и Fetch, чтобы оно соответствовало объявленному MIME-типу (r225546)
    • Исправлено окно Remote Web Inspector, чтобы оно восстанавливало последний использованный размер окна (r225451)
    • Исправлены ложные предупреждения, показываемые для команд, которые изменяли содержимое пикселей на вкладке Canvas (r225602)
    • Улучшен первоначальный пользовательский интерфейс на вкладке Canvas (r225587, r225487)
    • Исправлена проблема, из-за которой Safari зависал после переключения настройки «Разрешить Web Inspector» на подключенном устройстве iOS.

    Web Assembly

    • Исправлено postMessage, чтобы разрешить модулю WebAssembly отправлять сообщения из iframe и в iframe (r225656)
    • Исправлена ошибка, из-за которой ошибочно выбрасывались ошибки переполнения стека (r225411)

    Web Driver

    • Добавлена поддержка обработки пользовательских запросов, отображаемых во время выполнения скриптов (r225448)
    • Исправлено, что запросы ссылок и частичных ссылок работали в XHTML документах (r225388)
    • Исправлено computeElementLayout для корректного преобразования координат клиента iframe в координаты основного фрейма (r225367)
    • Исправлена регрессия, из-за которой скриншоты страниц содержали только область просмотра (r225501)
    • Исправлена проблема, из-за которой safaridriver завершала работу после попытки закрыть окно, когда окна больше не были открыты

    JavaScript

    • Исправлена рекурсивная оптимизация хвостовых вызовов для замыканий (r225270)
    • Реализованы литералы BigInt и JSBigInt (r225799)
    • Реализованы более оптимизированные WeakMap и WeakSet (r225832)
    • Оптимизированы Object.assign с помощью одношаговой акселерации (r225840)

    Media

    • Добавлена поддержка атрибута decoding="sync" или decoding="async" для изображений (r225616)
    • Включено использование энкодера VCP H264 для платформ, которые его поддерживают (r225761)
    • Исправлено, что курсор не становился видимым после выхода из полноэкранного видео (r225494)
    • Включено "video/*" в заголовок Accept запроса изображения, если браузер поддерживает видеоформаты в контекстах изображений (r225472)

    WebRTC

    • Изменено, чтобы разрешить запуск AudioContext, когда getUserMedia активен (r225785)
    • Исправлена проблема, из-за которой getUserMedia разрешался до того, как документ узнавал о записи (r225828)
    • Предотвращено засыпание дисплея при воспроизведении видеопотоков WebRTC (r225822)

    Проверьте 9to5Mac на YouTube для получения новостей Apple:





    Copyright (c) 2009-2025 9to5mac.ru

    При использовании любых материалов с сайта обязательно указание 9to5mac.ru в качестве источника.
    Все авторские и исключительные права в рамках проекта защищены
    в соответствии с положениями 4 части Гражданского Кодекса Российской Федерации.