
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