Вышел Safari Technology Preview 75. В релизе: Screen Capture, ITP Debug Mode, улучшения CSS и другое.
https://webkit.org/blog/8594/release-notes-for-safari-technology-preview-75/
https://webkit.org/blog/8594/release-notes-for-safari-technology-preview-75/
Forwarded from Веб-стандарты (Веб-стандарты)
Простая библиотека lit-html 1.0 для HTML-шаблонизации и базовый класс LitElement 2.0 для создания веб-компонентов. В блоге проекта Polymer рассказали про релизы библиотек, анонсированных в прошлом году на Google I/O — https://www.polymer-project.org/blog/2019-02-05-lit-element-and-lit-html-release
Apple готовится выключить по умолчанию доступ из Safari к акселерометру и гироскопу в целях безопасности. Рекламные агентства, специальзирующиеся на AR и VR технологиях обеспокоены тем, что от этого они потеряют заказы, потому что пользователи не захотят разрешать браузеру доступ к устройствам ориентации.
https://digiday.com/marketing/definitely-going-break-things-apple-prepping-ios-change-may-hurt-ar-vr-advertising/
https://digiday.com/marketing/definitely-going-break-things-apple-prepping-ios-change-may-hurt-ar-vr-advertising/
Digiday
'It's definitely going to break things': Apple is prepping an iOS change that may hurt AR and VR advertising - Digiday
Apple plans to update Safari on iOS to disable sites from collecting the sensor data used to power web-based AR and VR experiences.
Вышел релиз V8 7.3. В нем:
- асинхронные стек трейсы включены по умолчанию
- await ускорен за счет уменьшения количества необходимых тиков
- доработан baseline компилятор Liftoff, за счет чего WebAssembly стартует на 15-20% быстрее
- добавлена поддержка
- добавлена поддержка
- Atomics.wake переименован в
https://v8.dev/blog/v8-release-73
- асинхронные стек трейсы включены по умолчанию
- await ускорен за счет уменьшения количества необходимых тиков
- доработан baseline компилятор Liftoff, за счет чего WebAssembly стартует на 15-20% быстрее
- добавлена поддержка
Object.fromEntries- добавлена поддержка
String.prototype.matchAll- Atomics.wake переименован в
Atomics.notify в соответствии с изменениями в спецификацииhttps://v8.dev/blog/v8-release-73
Делюсь двумя статьями о технологиях, применённых в Яндекс.Браузере:
- 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 модулей. Включение фичи позволяет избежать повторной компиляции и сразу инициировать модуль с горячим стартом.