Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Web Share API в Safari позволял принимать протокол file в ссылке, что позволяло прикрепить потенциально чувствительные файлы (историю бразера или что-то подобное) при шейринге через почтовые приложения. При этом также надо уговорить пользователя отправить такое письмо злоумышленнику через Web Share API, что может быть достаточно трудно сделать. Уязвимость исправления в iOS 14 Beta и macOS 14 Beta.

https://blog.redteam.pl/2020/08/stealing-local-files-using-safari-web.html
Гораздо более серьёзная уязвимость была обнаружена некоторое время назад в Chromium. Она позволяла полностью обойти все CSP правила на любой платформе в браузерах Chrome, Edge, Opera и других на основе Chromium версий с 73 по 83. Для обхода CSP достаточно было указать javascript: в атрибуте src айфрейма.

https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/
Разработчики Brave написали статью о том, чем грозит внедрение предложенного компанией Google для стандартизации Web Bundles API. По их мнению это чревато значительным ослабеванием приватности и безопасности. И с ними сложно не согласиться.

Ранее команда Brave выражала свои опасения относительно Client-Hints.
Занятный факт. #TC39 (а точнее Task Group 2 в его составе) непродолжительное время занимался также разработкой языка C#. Позже TG2 была выделена в отдельный комитет TC49.

https://twitter.com/littledan/status/1298450137568759808
Недавно вышел Kotlin 1.4, в котором представлен новый Kotlin/JS IR backend (в альфе). Он умеет удалять мёртвый код и улучшает интероп с TypeScript и JavaScript кодом через генерацию TypeScript определений типов.

https://kotlinlang.org/docs/reference/js-ir-compiler.html
В Wasmtime (#WebAssembly рантайм) добавлена поддержка Reference Types (phase 4). В статье рассказывается о том, чем эта фича полезна для различных хостов (в том числе для web), насколько она полезна для реализации последующих улучшений в WebAssembly и о деталях её имплементации в wasmtime.
Вышел Yarn 2.2.0 — новая версия альтернативного пакетного менеджера для Node.js. В нём появилась новая команда yarn dedupe, которая удаляет дубликаты старых совместимых версий пакетов, улучшена производительность, уменьшен размер бинарника и сделаны другие более мелкие изменения.

Кроме того, команда Yarn обсуждает с Node TSC возможность добавления проекта “Package manager manager” в Node.js. Такой менеджер позволит использовать Yarn или pnpm из коробки (они установятся автоматически при первом вызове).
Команда Edge DevTools из Microsoft рассказала о новых фичах в инструментах разработчика Edge 85. Некоторые из этих фич являются уникальными и еще не добавлены в upstream Chromium.
Вышел Electron 10.0.0. Chrome в нём обновлён до версии 85, а Node.js до версии 12.16. Полный список изменений можно посмотреть здесь. Поддержка Electron 7 остановлена.
Chrome 86 будет поддерживать well-known URL для смены пароля на вебсайте из других тулз (таких как менеджер паролей), спецификацию инкубатора WICG, разработанную Apple (фича доступна в Safari 13 и более поздних версиях). Firefox также рассматривает возможность внедрения этой фичи, в данный момент она помечена как worth prototyping.
Вышел Samsung Internet 13 Beta. В нём несколько визуальных изменений, улучшение юзабилити, новые фичи в Add-on extension API. Браузер основан на Chromium 83.
В Chrome 86 (выйдет 6 октября) появится псевдо-элемент ::marker, который позволит легче и круче стилизовать маркеры в списках. Firefox уже поддерживает его с версии 68, а Safari с 11.1. В Chrome эта фича была доступна только под флагом, начиная с версии 80.

https://web.dev/css-marker-pseudo-element/
Разработчики Chromium собираются реализовать новый псевдокласс :focus-visible для стилизации фокуса и быструю подсветку активного фокуса в версии 86.

https://blog.chromium.org/2020/09/giving-users-and-developers-more.html
Оказывается во всю идёт подготовка к релизу PHP 8.0. Уже вышла третья (последняя) бета, после которой ожидаются 5 релиз кандидатов и стабильный релиз 26 ноября. Самым главным и ожидаемым нововведением станет JIT, который должен повысить производительность.

https://wiki.php.net/todo/php80

Кстати, в Microsoft отказались от поддержки PHP 8 на Windows.
Flareact — альтернатива Next.js, для эдж-рендеринга с использованием Cloudflare Workers.

Гостевая статья от автора в блоге разработчиков Cloudflare:
https://blog.cloudflare.com/rendering-react-on-the-edge-with-flareact-and-cloudflare-workers/
Новое в Chrome 86: изменения фокуса, о которых я писал двумя сообщениями выше, WebHID API. Native File System API и многое другое.
Ого, новый NativeScript 7 теперь использует V8 на iOS. Видимо в JIT-less режиме. Интересна их мотивация, т.к. решение весьма сомнительное 🤔

https://nativescript.org/blog/nativescript-7-announcement/
Chris Lord из Iagalia о своей работе над OffscreenCanvas в WebKit.

https://www.chrislord.net/2020/08/27/offscreencanvas-jobs-life/

Имплементация частично юзабельна, но ещё не включена (даже под флагом), автор обещал писать обо всех обновлениях. На данный момент OffscreenCanvas доступен только в браузерах, использующих Blink. Частичная (и практически нерабочая) имплементация есть под флагом в Firefox.
4 сентября был утверждён стандарт C++20. К концу года ожидается официальная публикация. Стандарт уже практически полностью поддерживается в компиляторах GCC, clang.

Изменения по сравнению с С++17: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2131r0.html
Планы на C++23: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0592r4.html