Apple только что выпустила 27-е обновление Safari Technology Preview. Этот предварительный браузер специально разработан для разработчиков, чтобы они могли заранее ознакомиться с новыми веб-технологиями, которые в конечном итоге появятся в macOS и iOS. Сегодняшнее обновление включает несколько общих изменений браузера и длинный список улучшений Web Inspector.
Как и все предыдущие версии Safari Technology Preview, сегодняшнее обновление фокусируется на изменениях, которые напрямую влияют на разработчиков и их работу. Например, выпуск 27 представляет функцию «Reload Page from Origin» (Перезагрузить страницу с оригинала), которая позволяет разработчикам перезагружать страницы, не используя кэшированные данные.
Разработчики, заинтересованные в загрузке последней версии Safari Technology Preview, могут сделать это на странице для разработчиков Safari от Apple. Разработчики, уже использующие последнюю версию, могут загрузить обновление из Mac App Store.
Полные примечания к выпуску Safari Technology Preview Release 27 можно увидеть ниже:
Изменения браузера
- Добавлен пункт меню «Перезагрузить страницу с оригинала» (Reload Page From Origin) в меню «Вид» (View). Это действие перезагружает страницу без использования кэшированных ресурсов.
- Сочетание клавиш Option-Command-R (⌥⌘R) было убрано из «Вход/выход из режима дизайна отклика» (Enter/Exit Responsive Design Mode) и вместо этого назначено на «Перезагрузить страницу с оригинала».
- Удален пункт меню «Отключить кэши» (Disable Caches) из меню «Разработка» (Develop). Эквивалентная функциональность теперь доступна через вкладку «Сеть» (Network) в Web Inspector.
JavaScript
- Реализовано предложение ESNext Object Spread
- Изменено парсинг инструкций с метками let для разрешения использования в режиме, отличном от строгого (non-strict mode)
- Исправлено const location = “foo” в worker’е, чтобы не вызывалось SyntaxError
Web API
- Приведены в соответствие initEvent, initCustomEvent, initMessageEvent с последней спецификацией
- Приведены в соответствие Document.elementFromPoint() со спецификацией CSSOM
- Изменено XMLHttpRequest getAllResponseHeaders() для преобразования имен заголовков в нижний регистр перед сортировкой
- Исправлена отправка пустого “Access-Control-Request-Headers” в preflight-запросах
- Реализовано self.origin
- Реализована функция «noopener» для window.open()
- Улучшена валидация индексов при использовании uint-значений индексов в WebGL
- Предотвращено отображение оповещений beforeunload, если пользователь не взаимодействовал с веб-страницей
- Предотвращено вставку пустого текстового узла сеттером innerText, если значение начинается с новой строки
- Предотвращены новые переходы во время выгрузки документа
- Предотвращено открытие WebSQL баз данных в режиме приватного просмотра
- Изменена сериализация пользовательских свойств в longhand на “”, а не на значение сокращенного свойства
- Изменено развертывание дочерних рендереров при установке значения отображения
равным “contents”* *(r214232) Рендеринг
- Исправлена приостановка анимированных SVG-изображений, когда они находятся вне области просмотра или удалены из документа* *(r214503, r214327)
- Асинхронное декодирование изображений теперь учитывает, когда размер отрисовки меньше размера изображения
- Предотвращено асинхронное декодирование больших изображений при их отрисовке на холсте
- Исправлено состояние потока для позиционированных inline-потомков
- Исправлен рендеринг начального символа, следующего за разбиением на страницы
- Исправлено обрезание столбцов по горизонтали в многоколоночном макете
- Исправлено отсутствие воспроизведения анимированных GIF-файлов в многоколоночном макете
CSS
- Исправлена проблема, когда динамически применяемый псевдокласс :empty со значением display:none не снимается
- Убраны префиксы у -webkit-min-content, -webkit-max-content и -webkit-fit-content
Медиа
- Исправлена загрузка медиафайлов в теге , которые передаются без расширения имени файла
- Приостановлено воспроизведение бесшумных видео во вкладках в фоновом режиме для экономии ресурсов процессора
Web Inspector
- Добавлен переключатель «Отключить кэши» (Disable Caches) на вкладке «Сеть» (Networking), который применяется только к инспектируемой странице, пока открыт Web Inspector.
- Добавлен пункт контекстного меню «Сохранить выбранное» (Save Selected) в Консоли (Console)
- Добавлена поддержка RTL (письмо справа налево) для вкладки «Временная шкала» (Timeline)
- Добавлена поддержка RTL для баннера поиска (Find banner)
- Добавлены более точные данные Resource Timing в Web Inspector
- Добавлен пункт контекстного меню для логирования содержимого WebSocket-кадров
- Добавлены иконки для компонентов пути кластера SVG-изображений
- Добавлен сочетание клавиш для очистки записей временной шкалы
- Добавлен индикатор подключения для отображения статуса открытия или закрытия WebSocket-соединения
- Нажатие Option при клике на кнопку закрытия вкладки теперь закрывает все остальные вкладки
- Разрешено копировать заблокированные CSS-селекторы в боковой панели «Правила стилей» (Style Rules)
- Разрешено пользователям кликать по ссылкам во встроенных стилях и стилях пользовательского агента
- Представление содержимого SVG-изображения теперь позволяет переключаться между изображением и исходным кодом
- Детали секции «Обработчики событий» (Event Listeners) теперь показывают обработчики по элементу, а не по событию
- В «Обработчиках событий» (Event Listeners) добавлены недостающие флаги обработчиков событий «once» и «passive»
- Исправлена проблема, при которой добавление WebSocket-сообщения могло изменять выбранный в данный момент ресурс
- Исправлено включение и отключение точек останова при нажатии на маркер точки останова DOM
- Исправлено исключение при нажатии на значок «Очистить сетевые элементы» (Clear Network Items) при видимом всплывающем окне времени (timing popover)
- Исправлены ключи и значения локального хранилища, начинающиеся с обрезанных строк
- Исправлено добавление пустых атрибутов в элемент дерева DOM, создающее пробелы внутри тега
- Исправлено исключение при получении вычисляемых стилей, которое могло нарушить дальнейшие обновления секций
- Исправлено выделение синтаксиса и форматирование при инспектировании основного ресурса, являющегося JavaScript или JSON
- Исправлено наложение маркеров псевдоклассов на точки останова DOM и треугольники раскрытия
- Исправлена проблема, из-за которой боковая панель «Сведения о ресурсе» (Resource details) отображала предыдущие метрики изображения при просмотре ресурса, где загрузка содержимого не удалась
- Исправлено выделение текста в Консоли (Console) для выделения только текста сообщения
- Исправлено форматирование JSON-данных запроса
- Исправлено имя файла, используемое при сохранении ресурса из представления содержимого изображения ресурса
- Диалоговое окно сохранения файла больше не предлагает верхний уровень каталога в качестве местоположения по умолчанию
Доступность
- Исправлена работа VoiceOver для редактируемого текста в вебе
WebCrypto
- Добавлена поддержка эллиптической криптографии SPKI/PKCS8
