Apple обновляет Safari Technology Preview до версии 27 с улучшениями Web Inspector

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