Вебня
5.81K members
69 photos
1 video
3 files
1.51K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.

Ведёт Серёжа Рубанов из TC39 (@chicoxyzzy). Иногда помогает Роман Дворнов (@rdvornov).

Поддержать: https://www.patreon.com/chicoxyzzy

Дружественный канал: @defront
Download Telegram
to view and join the conversation
Если в коде остаются ссылки на окно (или вкладку или iframe) браузера, то после его закрытия возникает утечка памяти. Хотя окно фактически закрыто, браузер не может очистить память до тех пор, пока код ссылается на него. Деврелы Google написали статью том, как отследить такую проблему и о способах её решения.

https://web.dev/detached-window-memory-leaks/
В конце сентября W3C опубликовал новую версию дорожной карты веб приложений на мобильных устройствах (Roadmap of Web Applications on Mobile). Роадмап включает список спецификаций по группам, а также информацию о поддержке этих спецификаций браузерами.

Сам родмап: https://www.w3.org/2020/09/web-roadmaps/mobile/
Анонс: https://www.w3.org/blog/news/archives/8686
JavaScript будет наиболее производительным тогда, когда он наиболее предсказуем. А предсказуем он тогда, когда состояние инлайн кэша мономорфно, то есть структура объектов не изменяется с течением времени (в объекты не добавляются и из них не удаляются поля в течение жизненного цикла объекта). Новый инструмент Indicium — это системный анализатор, который позволяет отследить когда состояние инлайн кэша становится полиморфным (когда создаются несколько map’ов aka hidden class’ов для одного объекта).

https://v8.dev/blog/system-analyzer
Вышел npm v7.0.0. Эта версия будет включена по умолчанию в Node.js 15 (которая, к слову, выйдет уже через неделю). Новая версия теперь поддерживает воркспейсы, сильно увеличена скорость npm install, устанавливать пакеты теперь можно из GitHub PR, а также добавились ещё какие-то фичи, которые разработчики предлагают поискать в ченжлогах, начиная с первой беты 😡. Если Вы знаете что ещё там изменилось или добавилось, то пишите в комментарии.

https://blog.npmjs.org/post/631877012766785536/release-v700
Компания Mozilla запустила дерзкую компанию Unfck the Internet. Призывают бороться с политической рекламой установкой Firefox, посмотерть The Social Dilemma на Netflix, установить расширения Facebook Container (чтобы избавиться от фейсбуковой слежки в интернете) и Flag bad YouTube recommendations (чтобы отучить YouTube предлагать ненужное), а также использовать независимые технологии.

Анонс компании: https://blog.mozilla.org/blog/2020/09/30/the-internet-needs-our-love/
Страница компании: https://www.mozilla.org/en-US/firefox/unfck/
Видос: https://www.youtube.com/watch?v=jeu0oKBThMg

Mozilla, ты пьяна, иди домой.
Chrome Dev Summit 2020 пройдёт онлайн 9-10 декабря.
Запросить инвайт можно тут:
https://developer.chrome.com/devsummit/
17 ноября выйдет Chrome 87. В DevTools появятся полезные штуки:
- инструменты отладки CSS Grid
- новый таб для отладки WebAuthn
- расположение двух отдельных инструментов сверху и снизу
- обновления панели Elements
- Lighthouse 6.4
- добавлены события performance.mark() на временной шкале панели Performance
- новые фильтры в панели Network
- обновление деталей о фрейме во вкладке Application

https://developers.google.com/web/updates/2020/10/devtools
A New Backend for Cranelift, Part 1: Instruction Selection — статья от Chris Fallin из Mozilla.
В ней он рассказывает о том, что такое Cranlift, фреймворк для написания компиляторов в #WebAssembly (и не только). VCode — это новое IR (промежуточное представление), которое является платформозависимым и позволяет генерировать более оптимальный результирующий код.

https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
У пропозала .item() (stage 3) проблема с веб-совместимостью. Видимо придётся менять название.

https://github.com/tc39/proposal-item-method/issues/34

Проблема была обнаружена в Firefox Nightly, где сразу после этого фича была откачена. Также она была убрана и в JavaScriptCore.
Вводная статья о том как использовать Rust в вебе (через #WebAssembly) и сравнение с JavaScript.

https://www.jakobmeier.ch/blogging/Rust_on_the_Web.html
В Chrome появился origin trial WebCodecs. Веб кодеки будут включать декодеры и энкодеры видео, аудио, изображений и получение кадров. Черновик возможного будущего стандарта разрабатывается совместно Google и Mozilla в рамках WICG.

https://web.dev/webcodecs/
В Safari 14 (и WebKit) появилась поддержка Face ID и Touch ID через WebAuthn. Подробнее об этом в блоге WebKit.

https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/
В Playwright от Microsoft появилась поддержка языка Python для автоматизации браузеров.

https://github.com/microsoft/playwright-python
Ada Rose Cannon из команды браузера Samsung Internet рассказывает о своём опыте использования Web Audio для VR сцены.

https://medium.com/samsung-internet-dev/audio-on-the-web-for-games-and-vr-efcd523a3d58

Для пространственного звучания используется Resonance Audio SDK для веб.
W3C WebFonts Worknig Group опубликовала документ Progressive Font Enrichment: Evaluation Report, который представляет собой работу по исследованию различных техник для прогрессивного улучшения шрифтов для более быстрого их отображения в медленных сетях, при больших размеров шрифтов или сложных условий выборки подмножества шрифтов. Комментарии к документу принимаются до 15 декабря.
Теперь в Internet Explorer 9 и 11 можно выключить JScript, диалект ECMAScript, поддержка которого появилась в Internet Explorer 3 в августе 1996 года. Разработка JScript была остановлена после релиза Internet Explorer 8, однако была включена по умолчанию вплоть до Internet Explorer 11.

https://support.microsoft.com/en-us/help/4586060/option-to-disable-jscript-execution
Вышла Node.js 15.0.0 с npm 7 в комплекте, unhandledRejection установленным в значение throw по умолчанию, экспериментальной поддержкой QUIC, V8 8.6 (а значит с поддержкой String.prototype.replaceAll, Promise.any, WeakRef и логических присваиваний), поддежкой AbortController, N-API v7.

Блогпост: https://medium.com/@nodejs/node-js-v15-0-0-is-here-deb00750f278
Ченжлог: https://nodejs.org/en/blog/release/v15.0.0/
Вышел Firefox 82. В нём:
- средства отладки SSE (Server-Sent Events)
- улучшения Media Session API, а именно кастомизация медиа уведомлений (например, для отображения проигрываемого трека в системных нотификациях) и обработчики событий из ОС (например, для переключения трека на золченом экране без необходимости открывать браузер)
- улучшение приватности в случаях, когда новая страница могла читать содежимое свойства window.name при открытии в той же вкладке
- псевдо-селектор ::file-selector-button для стилизации поля ввода с типом file
- улучшения работы WebExtentsons
- allow-downloads в атрибуте sandbox айфреймов
- атрибут download становится приоритетнее значения inline в заголовке Content-Disposition
- улучшения режима Picture-in-Picture
- улучшенная производительность: flexbox раскладки теперь на 20% быстрее, востанновление сессии — на 17%, открытие окна в Windows — на 10%

Изменения для разработчиков: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/82
Изменения для пользователей: https://www.mozilla.org/en-US/firefox/82.0/releasenotes/
Исправления уязвимостей: https://www.mozilla.org/en-US/security/advisories/mfsa2020-45/
Вышел React 17. В нём нет новых фич за исключением новой системы делегирования событий. Теперь синтетические события реакта регистрируются на том узле, в который рендерится дерево React. Кроме этого, присутствует несколько других незначительных потенциально ломающих изменений (см. описание React 17 RC).