Делюсь двумя статьями о технологиях, применённых в Яндекс.Браузере:
- Hibernate позволяет освободить ресурсы компьютера за счет сохранения состояния вкладки в зашифрованом виде на диск.
- про энергосбережение
Также советую посмотреть доклад от Константина Крамлих из Яндекса о настоящем и будущем Яндекс.Браузера.
- Hibernate позволяет освободить ресурсы компьютера за счет сохранения состояния вкладки в зашифрованом виде на диск.
- про энергосбережение
Также советую посмотреть доклад от Константина Крамлих из Яндекса о настоящем и будущем Яндекс.Браузера.
И вот еще ссылки из доклада Константина
https://gist.github.com/PurplePowder/026bd4683312dc331717a5d39e8447d1
https://gist.github.com/PurplePowder/026bd4683312dc331717a5d39e8447d1
Gist
present and future links.md
GitHub Gist: instantly share code, notes, and snippets.
Если Вы еще не видели, то список изменений в готовящемуся релизу webpack 5 (текущая версия — v5.0.0-alpha.10, вышла 7 февраля) можно посмотреть тут:
https://github.com/webpack/changelog-v5
https://github.com/webpack/changelog-v5
GitHub
GitHub - webpack/changelog-v5: Temporary repo for the changelog for webpack 5
Temporary repo for the changelog for webpack 5. Contribute to webpack/changelog-v5 development by creating an account on GitHub.
В Firefox Nightly 67 появился тип BigInt под флагом. В ближайших патчах он будет включен по умолчанию.
https://hg.mozilla.org/mozilla-central/rev/4b74d76e55a8
https://hg.mozilla.org/mozilla-central/rev/4b74d76e55a8
Swc — компилятор JS-to-JS, написанный на Rust. Быстрее Babel в 16+ раз. Умеет также JSX и TypeScript.
https://swc-project.github.io
https://swc-project.github.io
swc.rs
SWC: Speedy Web Compiler
SWC is an extensible Rust-based platform for the next generation of fast developer tools. It's used by tools like Next.js, Parcel, and Deno, as well as companies like Vercel, ByteDance, Tencent, Shopify, and more.
А если хотите полное комбо, то вот еще и быстрая замена webpack, написанная на ReasonML.
https://fastpack.sh
https://fastpack.sh
fastpack.sh
Fastpack · Pack JavaScript fast & easy
На сегодняшней видеовстрече #WebAssembly Working Group будет обсуждение запроса к W3C для перевода спецификаций на стадию Candidate Recommendation. В данный момент спецификации находятся на стадии Editor’s Draft. Кажется смогу там присутствовать, так что вероятно вечером дам апдейт.
Сами спеки:
WebAssembly Core Specification
WebAssembly JavaScript Interface
WebAssembly Web API
Сами спеки:
WebAssembly Core Specification
WebAssembly JavaScript Interface
WebAssembly Web API
Только что закончилась видеовстреча #WebAssembly WG.
Предложение Typed Function References было отделено от предложения Garbage Collection и теперь находится на phase 0 (pre-proposal). Такое изменение поможет иметь эффективные косвенные вызовы функций без проверок во время выполнения, иметь указатели на функции без необходимости таблиц, простой и эффективный способ обмена ссылками на функции между модулями и окружением хоста, а также опциональную поддержку замыканий.
Спецификации было решено перевести со второй фазы в разряд стандартизированных предложений. Сами спецификации, как и ожидалось, будут отправлены на ревью в W3C для получения статуса Candidate Recommendation.
Предложение Typed Function References было отделено от предложения Garbage Collection и теперь находится на phase 0 (pre-proposal). Такое изменение поможет иметь эффективные косвенные вызовы функций без проверок во время выполнения, иметь указатели на функции без необходимости таблиц, простой и эффективный способ обмена ссылками на функции между модулями и окружением хоста, а также опциональную поддержку замыканий.
Спецификации было решено перевести со второй фазы в разряд стандартизированных предложений. Сами спецификации, как и ожидалось, будут отправлены на ревью в W3C для получения статуса Candidate Recommendation.
Делюсь ещё одним интересным каналом — https://t.me/jabascript. В нем вы найдёте различные статьи на тему JavaScript, а также информацию об интересных библиотеках. Всё с достаточно подробным описанием от автора канала. Советую.
Telegram
Жабаскрипт (веде Віктор Турський)
Авторський контент для JavaScript розробників, але не завжди про JS:). Пишу про архітектуру, best practices, продуктивність, безпеку, інструментарій.
Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google
Рекламу не розміщую!
Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google
Рекламу не розміщую!
Спецификация CSS Transforms Module Level 1 от W3C CSS Working Group получила статус Candidate Recommendation. Описанные в ней CSS трансформации позволяют производить преобразования в двумерном пространстве. Эта спецификация появилась путём объединения двух других спецификаций — CSS 2D Transforms и SVG Transforms.
Был уверен, что уже писал о Layered APIs, но почему-то поиск не находит ни одного сообщения об этом. 🤔 Что ж, тогда напишу.
———————————
Существует так называемый Манифест Расширяемого Веба, созданный в 2013 году и подписанный всеми светочами веба (а также всеми желающими). Среди обещаний манифеста — фокус на низкоуровневых возможностях веб платформы, на основе которых уже будут строиться высокоуровневые API.
Сегодня веб-разработчики вынуждены создавать большинство высокоуровневых компонентов уровня приложения самостоятельно, что создает высокий порог входа, увеличивает размер приложений (за счет полифиллов или собственных реализаций, а иногда даже приходится вместе с зависимостями включать несколько сторонних библиотек, делающих одно и то же). Но и когда нужные API все-таки существуют, то часто из-за недостаточного тестирования этих API разработчиками позже выясняется, что в приложениях их использовать очень сложно или невозможно. К тому же, такие неюзабельные API ещё и загрязняют глобальное пространство имён.
Layered APIs — это попытка создать новые стандарты для совместной работы над фичами высокого уровня. Такие API загружаются через JavaScript импорты с помощью специального синтаксиса и таким образом не загрязняют глобальное пространство имен. Также Layered APIs не должны использовать никакие примитивные операции, которые недоступны в веб платформе, что даёт веб разработчикам возможность реализовать спецификацию любого многоуровневого API исключительно возможностями JavaScript.
Вот подробный документ по Layered APIs, который, к слову, совсем недавно обновился:
https://docs.google.com/document/d/1VbU4z7xtU_kzuLAcj38KKL5qoOr2UYNUJW8vZB2AcWc/edit#heading=h.oj227hdy49ce
А вот документ, описывающий имплементацию многоуровневых API в Blink:
https://docs.google.com/document/d/1V-WaCZQbBcQJRSYSYBb8Y6p0DOdDpiNDSmD41ui_73s/edit#
———————————
Существует так называемый Манифест Расширяемого Веба, созданный в 2013 году и подписанный всеми светочами веба (а также всеми желающими). Среди обещаний манифеста — фокус на низкоуровневых возможностях веб платформы, на основе которых уже будут строиться высокоуровневые API.
Сегодня веб-разработчики вынуждены создавать большинство высокоуровневых компонентов уровня приложения самостоятельно, что создает высокий порог входа, увеличивает размер приложений (за счет полифиллов или собственных реализаций, а иногда даже приходится вместе с зависимостями включать несколько сторонних библиотек, делающих одно и то же). Но и когда нужные API все-таки существуют, то часто из-за недостаточного тестирования этих API разработчиками позже выясняется, что в приложениях их использовать очень сложно или невозможно. К тому же, такие неюзабельные API ещё и загрязняют глобальное пространство имён.
Layered APIs — это попытка создать новые стандарты для совместной работы над фичами высокого уровня. Такие API загружаются через JavaScript импорты с помощью специального синтаксиса и таким образом не загрязняют глобальное пространство имен. Также Layered APIs не должны использовать никакие примитивные операции, которые недоступны в веб платформе, что даёт веб разработчикам возможность реализовать спецификацию любого многоуровневого API исключительно возможностями JavaScript.
Вот подробный документ по Layered APIs, который, к слову, совсем недавно обновился:
https://docs.google.com/document/d/1VbU4z7xtU_kzuLAcj38KKL5qoOr2UYNUJW8vZB2AcWc/edit#heading=h.oj227hdy49ce
А вот документ, описывающий имплементацию многоуровневых API в Blink:
https://docs.google.com/document/d/1V-WaCZQbBcQJRSYSYBb8Y6p0DOdDpiNDSmD41ui_73s/edit#
В багтрекере Chromium закрыли баг с breaking change в ES2019, который ломал некоторые графики в библиотеке Highcharts.js с введением
“Since (unlike with Array.prototype.flatten) the breakage is limited to line labels disappearing in specific scenarios, and a simple fix is available for affected websites (that doesn't require updating to a new version), we've decided to move forward with Array.prototype.flat, which is now shipping in multiple browsers. Closing this issue.”
https://bugs.chromium.org/p/chromium/issues/detail?id=888128#c33
Array.prototype.flat.“Since (unlike with Array.prototype.flatten) the breakage is limited to line labels disappearing in specific scenarios, and a simple fix is available for affected websites (that doesn't require updating to a new version), we've decided to move forward with Array.prototype.flat, which is now shipping in multiple browsers. Closing this issue.”
https://bugs.chromium.org/p/chromium/issues/detail?id=888128#c33
Недавно вышла обновленная бета браузера Samsung Internet 9.2, основанная на Chromium 67 (я ранее писал об этом здесь), с новым UI и экспериментальной технологией защиты от отслеживания Smart Anti-Tracking.
Разработчики браузера написали об этом статью:
https://medium.com/samsung-internet-dev/new-year-new-samsung-internet-b74f282e4429
Разработчики браузера написали об этом статью:
https://medium.com/samsung-internet-dev/new-year-new-samsung-internet-b74f282e4429
В Chrome Canary под флагом добавлено кэширование скомпилированных #WebAssembly модулей. Включение фичи позволяет избежать повторной компиляции и сразу инициировать модуль с горячим стартом.
Интересная серия статей “Проблемы #WebAssembly” в четырех частях:
- WebAssembly Is Not a Stack Machine
- Why Do We Need the Relooper Algorithm, Again?
- What About Alloca?
- Microwasm
- WebAssembly Is Not a Stack Machine
- Why Do We Need the Relooper Algorithm, Again?
- What About Alloca?
- Microwasm
В Firefox Nightly 67 добавили защиту от криптовалютных майнеров и фингерпринтинга.
https://bugzilla.mozilla.org/show_bug.cgi?id=1527917
https://bugzilla.mozilla.org/show_bug.cgi?id=1527917
Вышла новая версия Safari Technology Preview под номером 76 с незначительными исправлениями темного режима, WebRTC, CSS, рендерера.
https://webkit.org/blog/8607/release-notes-for-safari-technology-preview-76/
https://webkit.org/blog/8607/release-notes-for-safari-technology-preview-76/
WebKit
Release Notes for Safari Technology Preview 76
Safari Technology Preview Release 76 is now available for download for macOS Mojave and macOS High Sierra.
Опубликованы записи с 68й встречи #TC39, проходившей 29-31 января.
https://github.com/tc39/tc39-notes/tree/master/es9/2019-01
https://github.com/tc39/tc39-notes/tree/master/es9/2019-01