В iOS 11 Apple впервые стала включать в систему экспериментальные функции движка Webkit, которые доступны в Настройках > Safari > Дополнения > Experimental Features:
И если в iOS 11 их было всего несколько штук, то в первой бета-версии iOS 12 их стало более чем два десятка — рассмотрим, что они дают:
- Accessibility Object Model — экспериментальный JavaScript API, который позволяет разработчикам изменять дерево доступности браузера, иными словами — новый удобный доступ к структуре сайта.
- Async Frame Scrolling — скроллинг, не привязанный к частоте обновления дисплея (нужен для того, чтобы на экранах с частотой в 120 Гц не было визуальных задержек при отображении контента, созданного под меньшую частоту обновления).
- Cache API — система для хранения и получения сетевых запросов и соответствующих ответов. Это могут быть регулярные запросы и ответы, созданные в ходе запуска приложения, или они могут создаваться исключительно для хранения некоторых данных в кеше.
- Color Filter — возможность использовать фильтры постобработки, такие как оттенки серого, режимы для людей с нарушениями зрения, и т.д.
- Constant Properties — не позволяет изменять настройки на веб-страницах с различными настройками. Другими словами, предотвращается изменение веб-сайта или изменение его свойств после его загрузки.
- Cross-Origin-Options HTTP Header — часть механизма CORS, который защищает сайты от взлома через встраивание куска сайта в песочницу (или наоборот, можно разрешить использовать куски своего сайта на чужих страницах)
- disabled-adaptations — из такого описания сложно понять, что Apple имеет ввиду, но скорее всего это отключение адаптации сайта под мобильный Safari. Может как дать возможности десктопного сайта, так и вообще сломать загрузку сайта на iOS-устройстве.
- Modern Encrypted Media API — позволяет управлять воспроизведением цифрового контента, защищенного, к примеру, DRM-ключами.
- Fetch API Request KeepAlive — функция для сбора аналитики, работает даже тогда, когда сайт не было загружен до конца.
- From-Origin Response Header — еще одна часть механизма CORS по защите сайтов.
- Fullscreen API — функция, позволяющая отображать некоторые элементы сайта (не обязательно видео) в полноэкранном режиме. К примеру, это нужно для браузерных игр.
- ImageBitmap and OffscreenCanvas — фунции, сильно ускоряющие рендеринг графики на странице благодаря использованию многопоточности процессоров и прямому доступу к «железу».
- Secure Contexts API — функция, суть которой — убедиться, что данные на устройство были доставлены по безопасному протоколу (HTTPS) и не были перехвачены злоумышленниками.
- Link Preload — функция, предназначенная для предотвращения очистки предварительно загруженных ресурсов после проведения синтаксического анализа.
- Enable MDNS ICE candidates — функция, которая может ускорить работу с внешним трафиком благодаря тому, что другие устройства в сети будут «указывать» трафику на ваше устройство. Разумеется, чтобы это имело смысл, все устройства должны поддерживать эту функцию.
- ITP Debug Mode — режим отладки для функции интеллектуального отслеживания поведения пользователя.
- CSS Spring Animation — функция, позволяющая сделать реалистичную с точки зрения физики анимацию элементов на сайтах.
- Storage Access API — функция, дающая доступ разработчику к сторонним cookie-файлам, хранящимся на устройстве.
- Prompt for Storage Access API Requirements — собственно, сам запрос на доступ к кукам.
- SubresourceIntegrity — еще одна функция для обеспечения безопасности. Ее суть — владелец ресурса может указать его криптографический хэш, который потом сверяется с хэшем, вычисленным уже после загрузки ресурса на самом устройстве.
- VisualViewportAPI — механизм изменения свойств той части страницы, которая на данный момент находится на экране.
- Web Animations — включение анимации на сайтах, написанной на JavaScript.
- WebGL 2.0 — программная библиотека для языка программирования JavaScript, позволяющая создавать на нем интерактивную 3D-графику.
- ASTC Texture Support — адаптивная функция для сжатия текстур.
- WebGPU — позволяет использовать графический процессор для обработки информации на сайтах.