Super Duper Secure Mode в Edge
В браузере Edge появится новый режим, в котором будет отключен JIT, который является причиной почти половины уязвисостей. Инженеры Microsoft выяснили, что производительность JS при этом падает незначительно, а отключение JIT позволит применить также другие технология для защиты браузера, которые иначе применить сложно. Режим получил название Super Duper Secure Mode и доступен в Edge Canary, Dev и Beta. На данный момент при включённом SDSM недоступен #WebAssembly.
https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
В браузере Edge появится новый режим, в котором будет отключен JIT, который является причиной почти половины уязвисостей. Инженеры Microsoft выяснили, что производительность JS при этом падает незначительно, а отключение JIT позволит применить также другие технология для защиты браузера, которые иначе применить сложно. Режим получил название Super Duper Secure Mode и доступен в Edge Canary, Dev и Beta. На данный момент при включённом SDSM недоступен #WebAssembly.
https://microsoftedge.github.io/edgevr/posts/Super-Duper-Secure-Mode/
Microsoft Browser Vulnerability Research
Super Duper Secure Mode
Introduction
Сегодня World Wide Web исполняется 30 лет
6 августа 1991 года Сэр Тим Бернерс Ли рассказал миру про Веб.
https://www.w3.org/blog/2021/08/30-years-on-from-introducing-the-web-to-the-world/
6 августа 1991 года Сэр Тим Бернерс Ли рассказал миру про Веб.
https://www.w3.org/blog/2021/08/30-years-on-from-introducing-the-web-to-the-world/
www.w3.org
30 years on from introducing the Web to the World
On 6 August 1991, Tim Berners-Lee posted information about his WorldWideWeb project to the public and introduced the Web to the world.
⚡️ Структурное клонирование теперь доступно из JS как часть спецификации HTML
https://github.com/whatwg/html/commit/1e610d403f0b608e12aa5286d19fb67d603c94b5
Ожидается, что помимо браузеров его поддержат Node и Deno, после чего можно будет попробовать перенести его в спецификацию ECMAScript (где описания алгоритма структурного клонирования ещё нет). Стоит сказать, что уже давно существуют и другие способы, но все они менее удобные или имеют другие недостатки.
https://github.com/whatwg/html/commit/1e610d403f0b608e12aa5286d19fb67d603c94b5
Ожидается, что помимо браузеров его поддержат Node и Deno, после чего можно будет попробовать перенести его в спецификацию ECMAScript (где описания алгоритма структурного клонирования ещё нет). Стоит сказать, что уже давно существуют и другие способы, но все они менее удобные или имеют другие недостатки.
GitHub
Define self.structuredClone() · whatwg/html@1e610d4
Closes #793.
Вышла бета версия V8 9.3
Из нового:
- компилятор Sparkplug научился компилировать функции пачками, что ускоряет процесс компиляции
- Object.hasOwn (stage 3)
- Error cause (stage 3)
- на Android теперь также выключена отдельная кодогенерация, которая защищала от атак Spectre, что позволяет увеличить производительность на этой платформе; вместо неё используется Site Isolation, как и на других платформах.
Из нового:
- компилятор Sparkplug научился компилировать функции пачками, что ускоряет процесс компиляции
- Object.hasOwn (stage 3)
- Error cause (stage 3)
- на Android теперь также выключена отдельная кодогенерация, которая защищала от атак Spectre, что позволяет увеличить производительность на этой платформе; вместо неё используется Site Isolation, как и на других платформах.
v8.dev
V8 release v9.3 · V8
V8 release v9.3 brings support for Object.hasOwn and Error causes, improves compilation performance and disables untrusted codegen mitigations on Android.
Вышел Firefox 91
Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021.
Новое:
- HTTPS-First Policy
- Windows SSO
- Visual Viewport API на всех платформах
- Intl.DateTimeFormat.prototype.formatRange() и Intl.DateTimeFormat.prototype.formatRangeToParts() (ECMA402 2021)
- Error cause (stage 3)
- Gampad API теперь требует защищённого контекста
- улучшения поддержки WebDriver
Изменения для конечного пользователя
Изменения для разработчиков
Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021.
Новое:
- HTTPS-First Policy
- Windows SSO
- Visual Viewport API на всех платформах
- Intl.DateTimeFormat.prototype.formatRange() и Intl.DateTimeFormat.prototype.formatRangeToParts() (ECMA402 2021)
- Error cause (stage 3)
- Gampad API теперь требует защищённого контекста
- улучшения поддержки WebDriver
Изменения для конечного пользователя
Изменения для разработчиков
Forwarded from Deno Fanatic
⚡️ Вышел Deno 1.13
Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable
Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC
В REPL завезли еще немного фич: поддержка exports + eval
Подробнее про Deno.core: tag/1.13
⚡️ Deno/std 0.104.0
- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node
Подробнее про Deno.std: tag/0.104.0
Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable
Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC
В REPL завезли еще немного фич: поддержка exports + eval
Подробнее про Deno.core: tag/1.13
⚡️ Deno/std 0.104.0
- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node
Подробнее про Deno.std: tag/0.104.0
Вебня
Вышел Firefox 91 Помимо прочего, эта версия станет новым релизом с расширенной поддержкой (ESR). Поддержка предыдущей версии Firefox 78 ESR прекратится в октябре 2021. Новое: - HTTPS-First Policy - Windows SSO - Visual Viewport API на всех платформах - …
Также вышла статья на Mozilla Hacks, в которой рассказывается о части новых фич Firefox 91
Mozilla Hacks – the Web developer blog
Hopping on Firefox 91
August is already here, which means so is Firefox 91! For developers Firefox 91 supports the Visual Viewport API and Intl.DateTimeFormat object additions.
Вышел Safari Technology Preview 130
https://webkit.org/blog/11958/release-notes-for-safari-technology-preview-130/
В нём:
- Array.prototype.findLast и Array.prototype.findLastIndex под флагом (stage 3)
- улучшения CSS
- исправления и улучшения разных Web API и медиа
https://webkit.org/blog/11958/release-notes-for-safari-technology-preview-130/
В нём:
- Array.prototype.findLast и Array.prototype.findLastIndex под флагом (stage 3)
- улучшения CSS
- исправления и улучшения разных Web API и медиа
WebKit
Release Notes for Safari Technology Preview 130
Safari Technology Preview Release 130 is now available for download for macOS Big Sur and betas of macOS Monterey.
В Chromium 93 появится поддержка импорта CSS-модулей в JavaScript
https://web.dev/css-module-scripts/
Это станет возможным благодаря поддержке import assertions (stage 3).
https://web.dev/css-module-scripts/
Это станет возможным благодаря поддержке import assertions (stage 3).
web.dev
Using CSS Module Scripts to import stylesheets | Articles | web.dev
Learn how to use CSS module scripts to import CSS stylesheets using the same syntax as JavaScript modules.
Доступна альфа-версия React 18
https://medium.com/stackanatomy/react-18-is-out-this-is-what-you-need-to-know-3a64f443daed
Новое:
- batch update состояний везде (не только в DOM)
- улучшения Strict Mode (Strict Effects + поддержка Offscreen API)
- новое Root API как замена React.render
- Concurrent Mode
- startTransition и useTransition для продвинутого управления приоритетом изменения состояния
- хук useDeferredValue для отложенных значений
- SuspenseList
- Suspense теперь является стабильным API
- потоковый Server-Side Rendering
Стабильная версия React 18 выйдет в конце 2021 - первой половине 2022.
https://medium.com/stackanatomy/react-18-is-out-this-is-what-you-need-to-know-3a64f443daed
Новое:
- batch update состояний везде (не только в DOM)
- улучшения Strict Mode (Strict Effects + поддержка Offscreen API)
- новое Root API как замена React.render
- Concurrent Mode
- startTransition и useTransition для продвинутого управления приоритетом изменения состояния
- хук useDeferredValue для отложенных значений
- SuspenseList
- Suspense теперь является стабильным API
- потоковый Server-Side Rendering
Стабильная версия React 18 выйдет в конце 2021 - первой половине 2022.
Medium
React 18-Alpha Is Out! This Is What You Need to Know
React 18 has been announced, but what’s new about it? Here are the details you need to know about this new version of React.
Forwarded from Deno Fanatic
⚡️Deno появился на страницах MDN
Недавно Deno начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data
https://deno.com/blog/deno-on-mdn
Недавно Deno начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data
https://deno.com/blog/deno-on-mdn
До ближайшей встречи #TC39 ещё неделя, а тем для обсуждения уже набралось на 12 часов (из восьми доступных), так что агенда достаточно плотная. В ней присутствуют как новые пропозалы, так и некоторые долгожданные для многих.
GitHub
agendas/08.md at master · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
React render tracker
Новый инструмент React render tracker помогает обнаруживать в React приложениях непреднамеренные (лишние) ререндеры и отмонтирование компонент, что может быть причиной багов и проблем с производительностью. Проект в стадии MVP/proof of concept, но кое-что уже умеет. В будущем ождается возможность записывать логи рендеров на CI для анализа, получать отчеты для прикладывая в задачи/PR и технические документы, и др. (туду лист)
Новый инструмент React render tracker помогает обнаруживать в React приложениях непреднамеренные (лишние) ререндеры и отмонтирование компонент, что может быть причиной багов и проблем с производительностью. Проект в стадии MVP/proof of concept, но кое-что уже умеет. В будущем ождается возможность записывать логи рендеров на CI для анализа, получать отчеты для прикладывая в задачи/PR и технические документы, и др. (туду лист)
GitHub
GitHub - lahmatiy/react-render-tracker: React render tracker – a tool to discover performance issues related to unintentional re…
React render tracker – a tool to discover performance issues related to unintentional re-renders and unmounts - lahmatiy/react-render-tracker
Forwarded from Wild Wild Web
🎉 Релиз TypeScript 4.4 🎉
Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂
Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:
- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.
- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.
- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.
Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂
Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:
- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.
- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.
- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.
Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
Microsoft News
Announcing TypeScript 4.4
Today we’re excited to announce the availability of TypeScript 4.4! If you haven’t heard of TypeScript yet, it’s a language that builds on JavaScript by adding syntax for static types. Tools like the TypeScript compiler just erase those types, leaving you…
React Native 0.65 и Hermes 0.8.1
17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
reactnative.dev
Announcing React Native 0.65 · React Native
Today we’re releasing React Native version 0.65 with a new version of Hermes, improvements to accessibility, package upgrades, and more.
Новое в Chrome 94 Beta
Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)
Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)
Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
Chromium Blog
Chrome 94 Beta: WebCodecs, WebGPU, Scheduling, and More
Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Wi...