Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
В описание “same-site” будет добавлена URL схема

Таким образом вебсайт теперь будет представлен как схема + регистрируемый домен, так что ссылки между HTTP и HTTPS будут представлены как cross-site запросы. Деврелы Chrome написали статью о том, как это повлияет на передачу cookie и как подготовиться.

https://web.dev/schemeful-samesite/
Имплементация for..of для 32-битной версии JavaScriptCore

Paulo Matos из Igalia написал статью, которая будет полезна тем, кто интересуется внутренностями JavaScript. Igalia занимается поддержкой JSC для 32-битных архитектур. При работе над имплементацией затрагиваются интерпретатор LLInt, baseline JIT-компилятор и JIT-компилятор DFG.

https://linki.tools/2020/11/a-tour-of-the-for-of-implementation-for-32bits-jsc.html
MediaRecorder API в Safari

В последних версиях Safari MediaRecorder API включен оп умолчанию (и будет включен также на iOS 14.3). В блоге WebKit рассказали о том, как можно его использовать.

https://webkit.org/blog/11353/mediarecorder-api/
Я (Рома Дворнов) решил попробовать вести телеграм канал, как пристанище мыслей, идей и того что случается в работе над разными проектами. Название говорит за себя, пока пишу много, как будет дальше — посмотрим. Сейчас в эфире история с написанием «поточного» парсера JSON, но будет и про другие аспекты фронтенда и около:
https://t.me/gorshochekvarit
WebGL 2 в WebKit

В вышедшем месяц назад Safari Technology Preview 114 появилась поддержка WebGL 2. Это стало возможно благодаря коллаборации компаний Google и Apple. Google разрабатывает ANGLE — имплементацию OpenGL ES поверх других графических API. ANGLE уже использовался в Chromium и Firefox. В результате коллаборации двух компаний, ANGLE стал также поддерживать Metal бэкенд. Так WebKit (а также остальные браузеры под iOS, где используется WKWebView) получил поддержку WebGL 2, а другие браузеры (под macOS) — лучшую нативную поддержку Metal и новых чипов M1.
Результаты проекта Open Prioritization от Igalia

В июле была запущена инициатива Open Prioritization, которая по сути является сбором средств для разработки недостающих фич в браузерах. Brian Kardell подвёл итоги этого проекта, финалистом которого стала фича :focus-visible для WebKit.
#WebAssembly пропозал Numeric Values in WAT Data Segments отправляется на phase 2

Он позволяет в удобном виде писать числовые типы вместо текущего строкового представления. Влияет только на инструменты, которые работают с текстовым форматом.

https://github.com/WebAssembly/wat-numeric-values
В тритере написали, что в Chrome Canary выгрузили поддержку селекторов (точнее псевдоклассов) :is() и :where(). Сейчас они за флагом в Blink, и поддерживаются только в Safari. Так что месяца через три они станут доступны в большинстве браузеров.
Вчера Daniel Ehrenberg из Igalia, пожалуй, самый активный делегат #TC39, рассказал на проходящем сейчас HolyJS доклад о возможном будущем JavaScript модулей.

Доступны слайды: https://docs.google.com/presentation/d/1H52SGdUTnE1i4i8lcK7deGrQlV4iPcwmzZd2mhKwPTE/edit#slide=id.p
Новый JS пропозал Array find from right

Добавляет не только эргономики, но и может стать более оптимальным решением, чем текущие его альтернативы.

https://github.com/Kingwl/proposal-array-find-from-right
Сайт Internet Archive добавляет поддержку Flash через WebAssembly

Не смотря на то, что поддержка Flash заканчивается 31 декабря 2020 года, сайт Internet Archive будет поддерживать эту технологию и после этой даты. Поддержка сохранится за счёт Ruffle — эмулятора Flash плеера с помощью #WebAssembly.
В Chrome 88 появится поддержка отключения ускорения указателя

Это может понадобится, например, если Вы создаёте FPS игру. Chrome 88 сейчас находится в статусе beta, релиз намечен на 19 января 2021.

https://web.dev/disable-mouse-acceleration/
Оказывается у Миши Башурова тоже есть канал. Миша эксперт в вопросах типизации JavaScript и не только.
Помнится, чтобы элемент был ниже (а не прилипал к краю вьюпорта) когда вьюпорт скролится к нему, использовали разные хаки/трюки. В современных браузерах эта проблема решается в одну строку с помощью CSS свойства scroll-margin (статья на css-tricks). В Safari используется нестандартное scroll-snap-margin
#WebAssembly пропозал Sign-extension operators реализован в JavaScriptCore

Sign-extension operators попали в спецификацию в марте, но до сих пор не были реализованы в WebKit / Safari. Мне вдвойне приятно постить эту новость, потому что я сам заимплементил эту фичу в JavaScriptCore. Теперь она будет работать во всех браузерах.

https://bugs.webkit.org/show_bug.cgi?id=210302
https://bugs.webkit.org/show_bug.cgi?id=218990
Режим Types-First станет единственным возможным режимом в Flow с 2021 года

В середине января с выходом версии v0.143, классический режим Flow (который можно включить в настройках) станет недоступен. Это позволит упростить поддержку языка и быстрее внедрять новые фичи.

https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c
State of the Octoverse 2020 — инфографика об использовании GitHub

GitHub опубликовал три отчёта с красочной инфографикой:
- Finding balance
- Empowering communities
- Securing software

В них можно найти статистику по использованию различных языков программирование, влияние пандемии и локдаунов на активность на гитхабе и на время, проводимое там разработчиками, и т.д.

https://octoverse.github.com
История JavaScript в инфографике

Завтра JavaScript исполняется 25, и JetBrains опубликовали сайт с временной шкалой, на которой отражены основные вехи в развитии языка.

https://www.jetbrains.com/lp/javascript-25/

upd: есть ещё русскоязычная версия
Состоялся релиз Beaker Browser 1.0

Это экспериментальный браузер, который основан на Electron и использует протокол Hypercore вместо HTTP, чтобы хостить веб сайты прямо с собственного устройства.

https://beakerbrowser.com/2020/12/02/beaker-1-0.html
Что нового будет в Chrome 88

Chrome 88 выйдет 19 января. Из интересных новых фич: новые origin trials, которые будут интересны геймдевам, AbortSignal добавлен в addEventListener, новые фичи CSS, Origin isolation, SharedArrayBuffer с COOP/COEP. Также убраны поддержка FTP и Web Components v0, которые долго не могли убрать из-за того, что YouTube их использовал и несколько предыдущих попыток убрать старую версию не увенчались успехом.
⚡️Top-level await только что был добавлен в Firefox

Этот stage 3 пропозал скорее всего станет доступен в Firefox 85 (если не будет найдено критических багов), релиз которого состоится 26 января 2021.

Пока можно попробовать в Nightly под флагом javascript.options.experimental.top_level_await

https://bugzilla.mozilla.org/show_bug.cgi?id=1519100