Forwarded from Веб-стандарты (Веб-стандарты)
Value Definition Syntax. София Валитова объясняет, как в спецификациях CSS читать грамматику синтаксиса, который используется для описания типов, значений свойств и селекторов.
https://ariarzer.dev/value-definition-syntax.html
https://ariarzer.dev/value-definition-syntax.html
Вебня
Kranky Geek WebRTC Show 2021 Также сегодня пройдёт онлайн конференция, посвященная #WebRTC. https://www.krankygeek.com Список докладов: - Welcome - YouTube - WebRTC for gaming - Matrix - Signaling - Agora - leveraging virtual networks - RingCentral - improving…
Ещё одно бесплатное онлайн событие про WebRTC — Wonder WebRTC unConference пройдёт 18 мая
Wonder WebRTC unConference on May 18th
May 18th, 5-8 PM CET (online)
Friends! It's time we unite the WebRTC community to talk about our bright browser-based future. ✊
If you haven't experienced the off-beat and collaborative setting of an unConference - you're in for a fun time 😃
Friends! It's time we unite the WebRTC community to talk about our bright browser-based future. ✊
If you haven't experienced the off-beat and collaborative setting of an unConference - you're in for a fun time 😃
Как использовать асинхронные API из #WebAssembly
Статья Ингвара Степаняна о том, как использовать инструмент Asincify с C++ (из Emscripten) и другими языками.
https://web.dev/asyncify/
Статья Ингвара Степаняна о том, как использовать инструмент Asincify с C++ (из Emscripten) и другими языками.
https://web.dev/asyncify/
Расширение Bytecode Alliance
Организация была создана в конце 2019 совместными усилиями Mozilla, Fastly, Intel и Microsoft (в первом анонсе упоминается также Red Hat) для работы над #WebAssembly за пределами веба, WASI и инструментарием. Теперь к ней присоединились Arm, DFINITY, Foundation, Embark Studios, Google Shopify и Университет Калифорнии (Сан Диего).
https://bytecodealliance.org/press/calling-for-new-members
https://blog.mozilla.org/blog/2021/04/28/growing-the-bytecode-alliance/
Организация была создана в конце 2019 совместными усилиями Mozilla, Fastly, Intel и Microsoft (в первом анонсе упоминается также Red Hat) для работы над #WebAssembly за пределами веба, WASI и инструментарием. Теперь к ней присоединились Arm, DFINITY, Foundation, Embark Studios, Google Shopify и Университет Калифорнии (Сан Диего).
https://bytecodealliance.org/press/calling-for-new-members
https://blog.mozilla.org/blog/2021/04/28/growing-the-bytecode-alliance/
Bytecode Alliance
The Bytecode Alliance Calls for New Members In Mission to Build Safer Software Foundations for the Internet
SAN FRANCISCO — April 28, 2021 — The Bytecode Alliance, a community dedicated to creating new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI), today announced incorporation as a 501...
В Angular 12 View Engine будет по умолчанию заменён на Ivy
По статистике большинство разработчиков уже использует новый render pipeline Ivy. Для разработчиков переход должен стать незаметным, но имеется возможность использования View Engine (который получит статус depricated) при необходимости.
https://blog.angular.io/upcoming-improvements-to-angular-library-distribution-76c02f782aa4
По статистике большинство разработчиков уже использует новый render pipeline Ivy. Для разработчиков переход должен стать незаметным, но имеется возможность использования View Engine (который получит статус depricated) при необходимости.
https://blog.angular.io/upcoming-improvements-to-angular-library-distribution-76c02f782aa4
Medium
Upcoming improvements to Angular library distribution
TLDR; In v12, we’ll deprecate our legacy compilation and rendering pipeline called View Engine. This change will not require any action by…
⚡️ Спецификация Web Authentication: An API for accessing Public Key Credentials Level 3 выпущена в статусе First Public Working Draft. Напомню, что в феврале вторая версия спецификации получила статус Proposed Recommendation.
Вышел Vivaldi 3.8
https://vivaldi.com/blog/vivaldi-crumbles-cookie-dialogs-raises-privacy/
В новой версии:
- блокировщик GDRP cookie панелей
- отключен FLoC
- улучшенный UI
- улучшенная работа с закладками
и некоторые минорные изменения
https://vivaldi.com/blog/vivaldi-crumbles-cookie-dialogs-raises-privacy/
В новой версии:
- блокировщик GDRP cookie панелей
- отключен FLoC
- улучшенный UI
- улучшенная работа с закладками
и некоторые минорные изменения
Vivaldi Browser
Vivaldi crumbles cookie dialogs, raises privacy, design bars. | Vivaldi Browser
The Vivaldi browser offers relief from annoying cookie dialogs, Google’s FLoC, an invasive privacy technology. Rebuilds its Panels, adds bookmarking options.
Официальный обзор новых фич Safari 14.1
В блоге WebKit появилась статья со списком нововведений Safari 14.1, релиз которого для macOS и iOS состоялся в понедельник 26 апреля.
https://webkit.org/blog/11648/new-webkit-features-in-safari-14-1/
Я публиковал такой список ранее в феврале.
В блоге WebKit появилась статья со списком нововведений Safari 14.1, релиз которого для macOS и iOS состоялся в понедельник 26 апреля.
https://webkit.org/blog/11648/new-webkit-features-in-safari-14-1/
Я публиковал такой список ранее в феврале.
WebKit
New WebKit Features in Safari 14.1
Safari 14.1 for macOS Big Sur, iPadOS 14.5, and iOS 14.5 brings new WebKit features, APIs, performance improvements, and improved compatibility for web developers.
Import Assertions и JSON Modules уже в Chrome 91 Beta
Это значит, что примерно через месяц JSON Modules станут доступны в браузерах на основе Chromium. Пока не понято будет ли работать в ServiceWorker'ах в Chrome 91 или уже в последующих версиях. И есть проблемы с корректностью ошибок парсинга, но это не посчитали блокером.
Это значит, что примерно через месяц JSON Modules станут доступны в браузерах на основе Chromium. Пока не понято будет ли работать в ServiceWorker'ах в Chrome 91 или уже в последующих версиях. И есть проблемы с корректностью ошибок парсинга, но это не посчитали блокером.
Progress Delayed Is Progress Denied
Alex Russell опубликовал обширную статью о том как монополия Safari на iOS негативно сказывается на развитии веб платформы. Полезно к прочтению, если хотели разобраться почему и за что критикуют Apple/Safari, с фактами и данными. Статья интересна еще и тем, что в ней перечисленно большое количество "старых" и будущих API с коментариями и судьбой – можно узнать что-то новое или освежить знания по статусам.
https://infrequently.org/2021/04/progress-delayed/
Alex Russell опубликовал обширную статью о том как монополия Safari на iOS негативно сказывается на развитии веб платформы. Полезно к прочтению, если хотели разобраться почему и за что критикуют Apple/Safari, с фактами и данными. Статья интересна еще и тем, что в ней перечисленно большое количество "старых" и будущих API с коментариями и судьбой – можно узнать что-то новое или освежить знания по статусам.
https://infrequently.org/2021/04/progress-delayed/
Infrequently Noted
Progress Delayed Is Progress Denied - Infrequently Noted
Apple's iOS browser (Safari) and engine (WebKit) are uniquely under-powered. Consistent delays in the delivery of important features ensure the web can never be a credible alternative to its proprietary tools and App Store. This is a bold assertion, and proving…
Work with cookies the modern way
https://mefody.dev/chunks/cookie-store-api/
Статья Никиты Дубко о новом Cookie Store API, которое приходит на смену document.cookie. Доступно с Chrome 87, а вот насчет других браузеров пока нет сигналов, но для них можно использовать полифил.
https://mefody.dev/chunks/cookie-store-api/
Статья Никиты Дубко о новом Cookie Store API, которое приходит на смену document.cookie. Доступно с Chrome 87, а вот насчет других браузеров пока нет сигналов, но для них можно использовать полифил.
mefody.dev
Work with cookies the modern way | Dev Tips by Nikita Dubko
Cookie Store API is a way to avoid the pain.
V8 релиз v9.1
- Включили private brand checks по умолчанию (было за флагом), что позволяет использовать оператор
- Включили top-level await по умолчанию (было за флагом). Стоит отметить что фича уже включена в Chrome 89 по умолчанию, видимо на подходе Node.js
- Пара специфичных оптимизаций
- Включили private brand checks по умолчанию (было за флагом), что позволяет использовать оператор
in
с приватными полями, то есть #foo in obj
- Включили top-level await по умолчанию (было за флагом). Стоит отметить что фича уже включена в Chrome 89 по умолчанию, видимо на подходе Node.js
- Пара специфичных оптимизаций
v8.dev
V8 release v9.1 · V8
V8 release v9.1 brings support for private brand checks, top-level await enabled by default and performance improvements.
В Safari 14.1 сломан localStorage
Вчера Jake Archibald обнаружил, что localStorage сломан в последнем релизе Safari таким образом, что каждая вкладка читает свой собственный экземпляр хранилища, а не делит общий с другими вкладкми origin'а. И хотя при записи в localStorage вкладки получают событие
Эта механика используется как для синхронизации между вкладками, так использовалась и для коммуникации между вкладаками, пока не появился BroadcastChannel. Сегодня BroadcastChannel важен для PWA, так как используется для коммуникации между Service Worker'ом и закладками. Интерфейс появился в Chromium и Firefox 5 лет назад, в Edge с переходом на Chromium. В Safari же тикет на имплементацию висит без движения уже почти 5 лет. Поэтому для Safari используют полифилы, использующие синхронизацию через localStorage, которая сейчас сломана.
Баг связан с самим Safari, а не его движком (WebKit) и затрагивает только macOS – Safari на iOS не затронут. Инженеры Apple уже пофиксили проблему, но когда выкатится патч не известно, так как они не могут это комментировать, хотя понимают, что это существенная регрессия... Вероятно патч выйдет со следующим релизом macOS.
Пока обходное решение использовать IndexedDB в связке с Service Worker'ом.
Вчера Jake Archibald обнаружил, что localStorage сломан в последнем релизе Safari таким образом, что каждая вкладка читает свой собственный экземпляр хранилища, а не делит общий с другими вкладкми origin'а. И хотя при записи в localStorage вкладки получают событие
change
, они не могут получить новое значение, так как читают из своего собственного экземпляра хранилища.Эта механика используется как для синхронизации между вкладками, так использовалась и для коммуникации между вкладаками, пока не появился BroadcastChannel. Сегодня BroadcastChannel важен для PWA, так как используется для коммуникации между Service Worker'ом и закладками. Интерфейс появился в Chromium и Firefox 5 лет назад, в Edge с переходом на Chromium. В Safari же тикет на имплементацию висит без движения уже почти 5 лет. Поэтому для Safari используют полифилы, использующие синхронизацию через localStorage, которая сейчас сломана.
Баг связан с самим Safari, а не его движком (WebKit) и затрагивает только macOS – Safari на iOS не затронут. Инженеры Apple уже пофиксили проблему, но когда выкатится патч не известно, так как они не могут это комментировать, хотя понимают, что это существенная регрессия... Вероятно патч выйдет со следующим релизом macOS.
Пока обходное решение использовать IndexedDB в связке с Service Worker'ом.
WebTransport: новое API для взаимодествие клиент-сервер
WebTransport Working Group опубликовала первый публичный рабочий черновик WebTransport. Новое API можно будет использовать как WebSocket, но с поддержкой нескольких потоков, однонаправленных потоков, доставкой не по порядку (out-of-order delivery) и возможностью выбирать между надежным или ненадежным траспортом. Функциональность строится поверх HTTP3.
Предлагаемое API находится в ранней стадии, и почти наверняка изменится. Разработчики Blink начали экспериментировать с WebTransport около месяца назад. Новое API должно закрыть потребности таких направлений как игры и стриминг, поэтому в эксперименте участвуют такие сервисы как Twitch и Zoom.
WebTransport Working Group опубликовала первый публичный рабочий черновик WebTransport. Новое API можно будет использовать как WebSocket, но с поддержкой нескольких потоков, однонаправленных потоков, доставкой не по порядку (out-of-order delivery) и возможностью выбирать между надежным или ненадежным траспортом. Функциональность строится поверх HTTP3.
Предлагаемое API находится в ранней стадии, и почти наверняка изменится. Разработчики Blink начали экспериментировать с WebTransport около месяца назад. Новое API должно закрыть потребности таких направлений как игры и стриминг, поэтому в эксперименте участвуют такие сервисы как Twitch и Zoom.
IETF Datatracker
WebTransport over HTTP/3
WebTransport [OVERVIEW] is a protocol framework that enables clients constrained by the Web security model to communicate with a remote server using a secure multiplexed transport. This document describes a WebTransport protocol that is based on HTTP/3 [HTTP3]…
Вышел Safari Technology Preview 124
В основном исправления, из нового:
- Имплементация color-mix() в соотвествии с текущим состоянием CSS Color Level 5
- В Element.focus() добавлена опция preventScroll
- Имплементирован AbortSignal.abort()
- Добавлен рендеринг текста на OffscreenCanvas в воркерах
- Для WebGL стал доступен Metal ANGLE бекенд
- Реализована передача RTCDataChannel между процессами
Полный список изменений:
В основном исправления, из нового:
- Имплементация color-mix() в соотвествии с текущим состоянием CSS Color Level 5
- В Element.focus() добавлена опция preventScroll
- Имплементирован AbortSignal.abort()
- Добавлен рендеринг текста на OffscreenCanvas в воркерах
- Для WebGL стал доступен Metal ANGLE бекенд
- Реализована передача RTCDataChannel между процессами
Полный список изменений:
WebKit
Release Notes for Safari Technology Preview 124
Safari Technology Preview Release 124 is now available for download for macOS Big Sur and macOS Catalina.
Новые фичи Canvas 2D API
Разработчики Chromium некоторое время работают над нововведениями в Canvas 2D API, и это самое большое расширение API с момента его стандартизации. О новинках хорошо рассказано в видео и git репозитории, где представлено описание (explainer'ы) для каждого из расширений. Ключевые направления расширений:
- Паритет по функциям с другими 2D API;
- Доступ к возможностям Web/CSS;
- Улучшение производительности.
На данный момент в Chromium реализовано 9 фич:
- Reset function – метод reset(), который очищает канвас, текущий путь и стек трансформаций. Не понятно, почему его не было раньше. Позволяет избежать хаков и проседания производительности.
- Color input – добавляет возможность использовать экземпляры CSSColorValue и массивы чисел как значения цвета (сейчас можно использовать только строки).
- Text modifiers – аналоги CSS свойств letter-spacing, word-spacing, font-variant-caps, font-kerning, font-stretch и text-rendering.
- RoundRect – прямоугольник со скругленными углами, что-то вроде CSS border-radius.
- Conic Gradient - аналог CSS conical-gradient()
- Perspective transforms – трансформации с перспективой. На самом деле, сводится к поддержке матриц трансформации 4x4.
- Modern filters – сейчас в канвасе доступны SVG фильтры. Но пользоваться ими неудобно и к тому же они не доступны в воркерах (так как там нет DOM и, соответственно, SVG). Это расширение повторяет SVG фильтры, но в виде JavaScript API.
- willReadFrequently – опция при создании 2d контекста, которая сигнализирует браузеру, что будет активно использоваться getImageData() и браузер может это оптимизировать (как хранить). Сейчас браузеры эвристически решают будет ли активно использоваться getImageData() или нет, что является не надежным и сложным решением.
- Canvas context loss – позволяет браузеру освобождать ресурсы выделенные под контекст, когда канвас не используется (например, за пределами вьюпорта) и добавлять реакцию на восстановление контекста (начать отрисовывать, когда канвас возвращается во вьюпорт).
Еще около 7 фичей находятся на уровне идей.
В середине апреля было объявлено о начале экспериментов в Chrome. Новое API доступно за флагом new-canvas-2d-api (
Разработчики Chromium некоторое время работают над нововведениями в Canvas 2D API, и это самое большое расширение API с момента его стандартизации. О новинках хорошо рассказано в видео и git репозитории, где представлено описание (explainer'ы) для каждого из расширений. Ключевые направления расширений:
- Паритет по функциям с другими 2D API;
- Доступ к возможностям Web/CSS;
- Улучшение производительности.
На данный момент в Chromium реализовано 9 фич:
- Reset function – метод reset(), который очищает канвас, текущий путь и стек трансформаций. Не понятно, почему его не было раньше. Позволяет избежать хаков и проседания производительности.
- Color input – добавляет возможность использовать экземпляры CSSColorValue и массивы чисел как значения цвета (сейчас можно использовать только строки).
- Text modifiers – аналоги CSS свойств letter-spacing, word-spacing, font-variant-caps, font-kerning, font-stretch и text-rendering.
- RoundRect – прямоугольник со скругленными углами, что-то вроде CSS border-radius.
- Conic Gradient - аналог CSS conical-gradient()
- Perspective transforms – трансформации с перспективой. На самом деле, сводится к поддержке матриц трансформации 4x4.
- Modern filters – сейчас в канвасе доступны SVG фильтры. Но пользоваться ими неудобно и к тому же они не доступны в воркерах (так как там нет DOM и, соответственно, SVG). Это расширение повторяет SVG фильтры, но в виде JavaScript API.
- willReadFrequently – опция при создании 2d контекста, которая сигнализирует браузеру, что будет активно использоваться getImageData() и браузер может это оптимизировать (как хранить). Сейчас браузеры эвристически решают будет ли активно использоваться getImageData() или нет, что является не надежным и сложным решением.
- Canvas context loss – позволяет браузеру освобождать ресурсы выделенные под контекст, когда канвас не используется (например, за пределами вьюпорта) и добавлять реакцию на восстановление контекста (начать отрисовывать, когда канвас возвращается во вьюпорт).
Еще около 7 фичей находятся на уровне идей.
В середине апреля было объявлено о начале экспериментов в Chrome. Новое API доступно за флагом new-canvas-2d-api (
chrome://flags/#new-canvas-2d-api
). Разработчики других браузеров в целом относятся позитивно к новым фичам, но есть вопросы по некоторым из них. В Firefox уже ведут разработку, Edge помогает с имплементацией в Chromium, насчет Safari пока информации нет.YouTube
Canvas2D is getting an update
Your good, old friend the Canvas2D API has been improving and is worth another look. Hear about all the new features that have been added to the spec.
Resources:
Github → https://goo.gle/39Acp9i
Speaker: Aaron Krajeski
Watch all Chrome Developer Summit…
Resources:
Github → https://goo.gle/39Acp9i
Speaker: Aaron Krajeski
Watch all Chrome Developer Summit…
Shared Element Transitions
Разработчики Blink собираются начать эксперимент с Shared Element Transitions – новое API, позволяющее делать плавные переходы между состояниями как для Single Page Application так и для Multiple Page Application. API предлагает как переходы между страницами, так и переходы для отдельных элементов страницы. Да, идея похожа на Transitions Filters – технологию, которая была еще в IE5 и IE6, и в дальнейшем спилена. Были попытки сделать что-то подобное и в Blink. Так что это новая попытка добавить функциональность в платформу.
Чтобы понять идею, можно посмотреть видео из статьи Sarah Drasner, в которой она описала как добиваться похожих эффектов используя Vue и Nuxt.js. С новым API все должно стать гораздо проще, и веб приложения смогут быть более похожими на мобильные (в плане интерактивности).
Разработчики других браузеров пока не высказили свое мнение относительно предложения, а вот со стороны веб разработчиков сигналы позитивные. Информации пока не много, будем следить.
Разработчики Blink собираются начать эксперимент с Shared Element Transitions – новое API, позволяющее делать плавные переходы между состояниями как для Single Page Application так и для Multiple Page Application. API предлагает как переходы между страницами, так и переходы для отдельных элементов страницы. Да, идея похожа на Transitions Filters – технологию, которая была еще в IE5 и IE6, и в дальнейшем спилена. Были попытки сделать что-то подобное и в Blink. Так что это новая попытка добавить функциональность в платформу.
Чтобы понять идею, можно посмотреть видео из статьи Sarah Drasner, в которой она описала как добиваться похожих эффектов используя Vue и Nuxt.js. С новым API все должно стать гораздо проще, и веб приложения смогут быть более похожими на мобильные (в плане интерактивности).
Разработчики других браузеров пока не высказили свое мнение относительно предложения, а вот со стороны веб разработчиков сигналы позитивные. Информации пока не много, будем следить.
GitHub
shared-element-transitions/README.md at main · WICG/shared-element-transitions
Contribute to WICG/shared-element-transitions development by creating an account on GitHub.
Visualizing Garbage Collection Algorithms
Ken Fox разбирает пять алгоритмов работы сборщика мусора и визуализирует каждый из их. Среди алгоритмов есть и Reference Counting Collector, который использовался в первых JavaScript движках, и Copying Collector, который в основном используется в современных движках, когда есть два поколения памяти (молодое и старое).
https://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/
Ken Fox разбирает пять алгоритмов работы сборщика мусора и визуализирует каждый из их. Среди алгоритмов есть и Reference Counting Collector, который использовался в первых JavaScript движках, и Copying Collector, который в основном используется в современных движках, когда есть два поколения памяти (молодое и старое).
https://spin.atomicobject.com/2014/09/03/visualizing-garbage-collection-algorithms/
Atomic Spin
Visualizing Garbage Collection Algorithms
Developers take garbage collection for granted, but it's hard to see how it works. Watch 5 different GC algorithm visualizations.
Официальный отчет о 82й встрече TC39
Опубликован отчет последней встречи TC39, которая прошла 19-21 апреля. Сергей уже делал отчет по тому что происходило в каждый из дней. В отчете же от TC39 структура идет от самих пропосалов и их стадии, плюс больше деталей и ссылок.
Опубликован отчет последней встречи TC39, которая прошла 19-21 апреля. Сергей уже делал отчет по тому что происходило в каждый из дней. В отчете же от TC39 структура идет от самих пропосалов и их стадии, плюс больше деталей и ссылок.
SpiderMonkey JavaScript/WebAssembly Engine
TC39 meeting, April 19-21 2021
In this TC39 meeting, the updates to JavaScript Classes around private state have moved to stage 4. Other proposals of note this meeting were proposals related to ArrayBuffers, notably resizable ArrayBuffers and a new proposal, introducing read-only ArrayBuffers…
Официальный сайт #TC39 теперь доступен на нескольких языках
Добавлены русскоязычная, немецкая и китайская версии сайта. Также в скором времени будет добавлена японская версия.
Некоторые ссылки («Предстоящая повестка» и «Протокол последнего собрания») нуждаются в обновлении, что может стать полезным вкладом с Вашей стороны. Также принимаются предложения по улучшению перевода. Репозиторий сайта: https://github.com/tc39/tc39.github.io
Добавлены русскоязычная, немецкая и китайская версии сайта. Также в скором времени будет добавлена японская версия.
Некоторые ссылки («Предстоящая повестка» и «Протокол последнего собрания») нуждаются в обновлении, что может стать полезным вкладом с Вашей стороны. Также принимаются предложения по улучшению перевода. Репозиторий сайта: https://github.com/tc39/tc39.github.io