Firefox Preview Beta теперь становится Firefox Nightly на платформе Android. Почитать анонс можно вот тут: https://blog.mozilla.org/futurereleases/2020/01/17/a-brand-new-browsing-experience-arrives-in-firefox-for-android-nightly/
Future Releases
A brand new browsing experience arrives in Firefox for Android Nightly
We tested Firefox Preview, the new Firefox experience for Android, together with our users for 6 months. Now it's coming to Firefox for Android Nightly.
На этой неделе вышла новая версия Google Closure Compiler (v20200112). Среди прочих нововведений числятся поддержка вычисляемых имен геттеров и сеттеров в классах (эта фича ES2015 ранее не поддерживалась компилятором) и поддержка компиляции для браузеров, вышедших в 2020. Полный список изменений тут:
https://github.com/google/closure-compiler/wiki/Releases#january-12-2020-v20200112
https://github.com/google/closure-compiler/wiki/Releases#january-12-2020-v20200112
В репозитории MSEdge есть ишью, которая называется “Make EdgeHTML open source”. Сама по себе она особой ценности не несёт, зато там появились интересные сообщенияя о том, почему EdgeHTML вряд ли когда-то станет свободным ПО. Я расскажу вам немного более полную историю. 🙂
Код рендер движка из Edge legacy основан на кодовой базе движка Trident, который использовался в Internet Explorer. Trident в свою очередь основан на исходниках Mosaic, которые компания Microsoft приобрела у компании Spyglass Inc., созданной Университетом Иллиноиса для того, чтобы релецензировать код другим вендорам и зарабатывать деньги с продаж. Microsoft выкупила лицензию на использование кода Mosaic в 1995 году за 2 миллиона долларов, и Spyglass рассчитывали заработать ещё больше за ежеквартальные платежи и проценты с продаж браузера Internet Explorer, но их планам не суждено было сбыться. Microsoft решили сделать браузер бесплатным, чтобы бороться за рынок с Netscape. Впоследствии Microsoft заплатит Spyglass ещё 8 миллионов роялти за период до конца 1998 (в сумме Microsoft выплатит Spyglass 13.1 миллиона долларов) и добьётся прекращения юридического конфлекта с ними. Внутренний аудит кода Internet Explorer 7 позже покажет, что в нём не осталось кода Mosaic. На данный момент трудно сказать, сможет ли Microsoft при необходимости доказать в суде, что в EdgeHTML не используется код Mosaic, а значит возможно это в том числе является препятствием для перелицензирования своего рендер движка. В любом случае, наверняка есть и другие проблемы, не позволяющие сделать EdgeHTML свободным ПО.
Код рендер движка из Edge legacy основан на кодовой базе движка Trident, который использовался в Internet Explorer. Trident в свою очередь основан на исходниках Mosaic, которые компания Microsoft приобрела у компании Spyglass Inc., созданной Университетом Иллиноиса для того, чтобы релецензировать код другим вендорам и зарабатывать деньги с продаж. Microsoft выкупила лицензию на использование кода Mosaic в 1995 году за 2 миллиона долларов, и Spyglass рассчитывали заработать ещё больше за ежеквартальные платежи и проценты с продаж браузера Internet Explorer, но их планам не суждено было сбыться. Microsoft решили сделать браузер бесплатным, чтобы бороться за рынок с Netscape. Впоследствии Microsoft заплатит Spyglass ещё 8 миллионов роялти за период до конца 1998 (в сумме Microsoft выплатит Spyglass 13.1 миллиона долларов) и добьётся прекращения юридического конфлекта с ними. Внутренний аудит кода Internet Explorer 7 позже покажет, что в нём не осталось кода Mosaic. На данный момент трудно сказать, сможет ли Microsoft при необходимости доказать в суде, что в EdgeHTML не используется код Mosaic, а значит возможно это в том числе является препятствием для перелицензирования своего рендер движка. В любом случае, наверняка есть и другие проблемы, не позволяющие сделать EdgeHTML свободным ПО.
GitHub
Make EdgeHTML open source by itsjank · Pull Request #5 · MicrosoftEdge/MSEdge
As another big step I would like to see EdgeHTML open sourced just as MS did with the ChakraCore. ChakraCore is a rip-off from the IE just as EdgeHTML is a refreshed version of Trident from IE. So ...
Экспериментальная поддержка
https://bugzilla.mozilla.org/show_bug.cgi?id=1593698
WeakRefs (stage 3) добавлена в Firefox Nightly 74. Включить можно в about:config флагом javanoscript.options.experimental.weakref.https://bugzilla.mozilla.org/show_bug.cgi?id=1593698
bugzilla.mozilla.org
1593698 - Add a preference to enable weak references in the browser
RESOLVED (jcoppeard) in Core - JavaScript Engine. Last updated 2020-01-20.
Optional chaining (добавленный недавно в ES2020) был реализован в SpiderMonkey и скоро должен попасть в Firefox Nightly 74.
MDN Web Docs
Optional chaining (?.) - JavaScript | MDN
The optional chaining (?.) operator accesses an object's property or calls a function. If the object accessed or function called using this operator is undefined or null, the expression short circuits and evaluates to undefined instead of throwing an error.
В блоге браузера Brave вышла статья Brave 1.0 Performance: Methodology and Results со сравнением производительности Brave, Chrome, Firefox и Opera на платформах Windows, MacOS и Android. Сравниваются такие метрики как скорость загрузки страницы, потребление памяти, потребления энергии, утилизация процессора, пропускная способность (bandwidth). Также прилагаются результаты синтетических тестов Kraken 1.1, Speedometer 2.0, JetStream 2 и BaseMark Web 3.
Brave Browser
Brave 1.0 Performance: Methodology and Results
Keeping the web open to everyone with built-in privacy protections and significant efficiency gains. This blog was written by Dr. Andrius Aucinas, Dr. Matteo Varvello, performance researchers at Brave, and Dr. Ben Livshits, Brave’s Chief Scientist. In 2019…
Вышел Jest 25. Эта версия примечательна началом работы над поддержкой ESM модулей для Node 13. Из других нововведений можно выделить экспериментальную поддержку инструментария для проверки покрытия тестами из V8. Полный спосок изменений можно найти на официальном сайте:
https://jestjs.io/blog/2020/01/21/jest-25
https://jestjs.io/blog/2020/01/21/jest-25
jestjs.io
Jest 25: 🚀 Laying foundations for the future · Jest
Jest 25 is laying the groundwork for many major changes in the future. As such, we kept breaking changes to a minimum, but internal architecture changes may require attention during the upgrade. The main changes are an upgrade of JSDOM from v11 to v15, 10…
Выпуск подкаста Андрея Смирнова Frontend Weekend с соведущим этого канала Романом Дворновым.
https://soundcloud.com/frontend-weekend/fw-102
00:35 Чем можешь быть известен моей аудитории?
01:16 Как изменилось видение баланса между руководством и разработкой?
03:47 Каково было не работать полгода после ухода из Avito?
07:21 Что успел сделать необычного за время отдыха?
09:18 Насколько Wrike смог предложить то, что тебе нужно сейчас?
11:28 Раскрытие «секрета» про переезд Ромы в Прагу
14:34 Будешь ли переводить Wrike на basis.js и как собиралась твоя команда?
18:26 Когда собираешься отказаться от роли «играющего тренера»?
21:54 Как понимаешь свою миссию как веб-исследователя?
23:33 Как и зачем появился discovery.js?
26:55 Угас ли интерес к open source и появился ли у него успех?
30:53 Договорился ли с работодателем и научился ли продвигать свои проекты?
37:01 Почему называешь себя «изобретателем велосипедов» и понимаешь ли проблемы такого подхода?
42:45 Если бы можно вернуться в прошлое и исправить ровно один проект, какой бы выбрал?
46:07 Как и зачем пришел помогать Серёже Рубанову с Juliarderity?
47:56 Почему стоит переехать в Прагу?
48:50 Какие soft skills помогли стать тимлидом?
50:48 Готовим вместе с фронтенд-разработчиком
52:33 Совет от Ромы
https://soundcloud.com/frontend-weekend/fw-102
00:35 Чем можешь быть известен моей аудитории?
01:16 Как изменилось видение баланса между руководством и разработкой?
03:47 Каково было не работать полгода после ухода из Avito?
07:21 Что успел сделать необычного за время отдыха?
09:18 Насколько Wrike смог предложить то, что тебе нужно сейчас?
11:28 Раскрытие «секрета» про переезд Ромы в Прагу
14:34 Будешь ли переводить Wrike на basis.js и как собиралась твоя команда?
18:26 Когда собираешься отказаться от роли «играющего тренера»?
21:54 Как понимаешь свою миссию как веб-исследователя?
23:33 Как и зачем появился discovery.js?
26:55 Угас ли интерес к open source и появился ли у него успех?
30:53 Договорился ли с работодателем и научился ли продвигать свои проекты?
37:01 Почему называешь себя «изобретателем велосипедов» и понимаешь ли проблемы такого подхода?
42:45 Если бы можно вернуться в прошлое и исправить ровно один проект, какой бы выбрал?
46:07 Как и зачем пришел помогать Серёже Рубанову с Juliarderity?
47:56 Почему стоит переехать в Прагу?
48:50 Какие soft skills помогли стать тимлидом?
50:48 Готовим вместе с фронтенд-разработчиком
52:33 Совет от Ромы
Вышел Safari Technology Preview 99.
Основные изменения:
- убрана поддержка Adobe Flash
- улучшения веб инспектора
- исправления и улучшения поддержки HTML и DOM спецификаций
- улучшения CSS
- улучшения поддержки медиа и различных Web API
Основные изменения:
- убрана поддержка Adobe Flash
- улучшения веб инспектора
- исправления и улучшения поддержки HTML и DOM спецификаций
- улучшения CSS
- улучшения поддержки медиа и различных Web API
WebKit
Release Notes for Safari Technology Preview 99
Safari Technology Preview Release 99 is now available for download for macOS Catalina and macOS Mojave.
Составлен список вопросов на обсуждение для февральской встречи WebAssembly Community Group.
День 1:
- переход Exception Handling на phase 2 🚀
- Stack switching / Coroutines / Effect handlers
- переход Bulk Memory Operations на phase 4 🚀
- переход Reference Types на phase 4 🚀
- переход Tail calls на phase 4 🚀
- Garbage Collection
- Debugging Topics
День 2:
- Feature Detection
- Fixed-Width SIMD
- Custom Annotation Syntax in the Text Format
- Interface Types
- WASI :
- WASI Embedding API, Interface Types и WASI
- CT-Wasm
- Multiple Memories
- Type Reflection for WebAssembly JavaScript API
- Typed Function References
День 1:
- переход Exception Handling на phase 2 🚀
- Stack switching / Coroutines / Effect handlers
- переход Bulk Memory Operations на phase 4 🚀
- переход Reference Types на phase 4 🚀
- переход Tail calls на phase 4 🚀
- Garbage Collection
- Debugging Topics
День 2:
- Feature Detection
- Fixed-Width SIMD
- Custom Annotation Syntax in the Text Format
- Interface Types
- WASI :
- WASI Embedding API, Interface Types и WASI
- CT-Wasm
- Multiple Memories
- Type Reflection for WebAssembly JavaScript API
- Typed Function References
Среди репозиториев Microsoft на GitHub появился интересный проект Playwright — библиотека Node.js для автоматизации браузеров Chrome, Firefox и WebKit. За проектом стоят те же люди, которые создавали Puppeteer.
https://twitter.com/aslushnikov/status/1220045633282662401
https://twitter.com/aslushnikov/status/1220045633282662401
Twitter
Andrey Lushnikov
Folks! I'm happy to share what we've been working on: 📣github.com/microsoft/play… Playwright is like Puppeteer, but cross-browser.
Планируете ли Вы обновляться на Yarn 2?
Anonymous Poll
17%
Да
18%
Пока что нет
3%
Нет, планирую оставаться на первой версии
60%
Нет, мне хорошо с npm
2%
Использую другой пакетный менеджер (не npm и не yarn)
Вышел Yarn 2. Изменений там много и некоторые из них весьма смелые. Интересно, что основной мейнтейнер Yarn ушёл из Facebook, и сам Facebook не планирует обновляться до второй версии. Себастьян МакКензи, оригинальный автор Yarn вообще считает, что Yarn 2 не должен называться Yarn. Babel тем временем (оригинальным автором которого также является Себастьян) планирует скоро перейти на новую версию.
DEV Community
Introducing Yarn 2 ! 🧶🌟
Hi everyone! After exactly 365 days of very intensive development, I'm extremely happy to unveil the...
Кажется пользователи Flow не смогут использовать Yarn 2 в своих проектах.
https://twitter.com/NicoloRibaudo/status/1221166724579581952
Update: Николо поправил меня, что на самом деле Yarn 2 и Flow можно использовать вместе, для этого надо включить генерацию node_modules.
https://twitter.com/NicoloRibaudo/status/1221166724579581952
Update: Николо поправил меня, что на самом деле Yarn 2 и Flow можно использовать вместе, для этого надо включить генерацию node_modules.
Twitter
Nicolò Ribaudo 🏳️🌈
@mikesherov Btw, @arcanis started working on Flow support (https://t.co/iYr3gRlxe5), but then the Flow team decided not to support custom resolvers (https://t.co/1M2dHhYqQT) without any public discussion 🙃
Mozilla проводит ревью дополнений для Firefox. За последние 2 недели были забанены 197, из которых 129 разработы компанией 2Ring и скачивали и выполняли удаленный код в браузере пользователя. Часть дополнений собирала пользовательские данные, еще часть являлась malware.
Вообще это очень скромные цифры. И в магазине расширений Google всё тоже очень плохо, если не ещё хуже.
Вообще это очень скромные цифры. И в магазине расширений Google всё тоже очень плохо, если не ещё хуже.
ZDNet
Mozilla has banned nearly 200 malicious Firefox add-ons over the last two weeks
Mozilla's security staff is cracking down on malicious Firefox add-ons.
В блоге WebKit опубликована статья о ResizeObserver, который был включен по умолчанию в Safari Technology Preview 97 (а также Epiphany Technology Preview 97).
WebKit
ResizeObserver in WebKit
For years now, web developers have desired the ability to design components that are responsive to their container instead of the viewport.
Отличная статья о том, что Internet Explorer сделал для веба и как повлиял на сегодняшние стандарты. Крайне рекомендую.
https://schepp.dev/posts/today-the-trident-era-ends/
https://schepp.dev/posts/today-the-trident-era-ends/
schepp.dev
Today, the Trident Era Ends
About the rise and fall of Microsoft's take on the web.
Дедлайн для добавления фич для продвижения на следующий stage на ближайшей встрече #TC39 прошёл. Вот полный список таких предложений:
- Unified NumberFormat for Stage 4
- Intl.segmenter for Stage 3 (slides, spec text)
- Object iteration for Stage 2 (slides, draft spec text)
- Logical Assignment for Stage 2
- JSON.parse source text access for Stage 2 (slides)
- SES for Stage 2
- Strict builtin functions for Stage 1
- Legacy reflection features for functions in JavaScript for Stage 1
- Syntax for Explicitly this argument for Stage 1
- function thisArgumentExpected property for Stage 1
- Time Duration Format Proposal for Stage 1
- ArrayBuffer view stride argument for Stage 1
- ArrayBuffer.fillRandom for Stage 1
- RegExp Atomic Groups and Possessive Quantifiers for Stage 1
- Extensions for Stage 1 (ссылки пока не предоставлены автором)
А также те, которые не успели обсудить на декабрьской встрече:
- Async initialization for stage 1
- Preserve Host Virtualizability for Stage 1
- BigDecimal for Stage 1 (slides)
Полный и актуальный список всех тем можно найти тут: https://github.com/tc39/agendas/blob/master/2020/02.md
- Unified NumberFormat for Stage 4
- Intl.segmenter for Stage 3 (slides, spec text)
- Object iteration for Stage 2 (slides, draft spec text)
- Logical Assignment for Stage 2
- JSON.parse source text access for Stage 2 (slides)
- SES for Stage 2
- Strict builtin functions for Stage 1
- Legacy reflection features for functions in JavaScript for Stage 1
- Syntax for Explicitly this argument for Stage 1
- function thisArgumentExpected property for Stage 1
- Time Duration Format Proposal for Stage 1
- ArrayBuffer view stride argument for Stage 1
- ArrayBuffer.fillRandom for Stage 1
- RegExp Atomic Groups and Possessive Quantifiers for Stage 1
- Extensions for Stage 1 (ссылки пока не предоставлены автором)
А также те, которые не успели обсудить на декабрьской встрече:
- Async initialization for stage 1
- Preserve Host Virtualizability for Stage 1
- BigDecimal for Stage 1 (slides)
Полный и актуальный список всех тем можно найти тут: https://github.com/tc39/agendas/blob/master/2020/02.md
GitHub
agendas/02.md at master · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Очередная статья от Surma, на этот раз про то, как он ускорял WebXR приложение выносом математики из основного потока в WebWorker.
https://dassur.ma/things/omt-for-three-xr/
https://dassur.ma/things/omt-for-three-xr/
dassur.ma
Case study: Moving a Three.js-based WebXR app off-main-thread — surma.dev
Keeping the frame rate stable is vital for virtual reality applications. Off-main-thread architecture can help ensure that the frames keep shipping.
Вышел Puppeteer 2.1.0, который теперь основан на Chromium 80, а также научился запускать Firefox из коробки, что является первым шагом к устранению необходимости использовать дополнительный пакет
puppeteer-firefox. Интересно к чему приведет конкуренция Puppeteer и Playwright.GitHub
Release v2.1.0 · puppeteer/puppeteer
Big changes
Chromium 80.0.3987.0 (r722234)
The launcher now has an option to run Puppeteer with different browsers, starting with Firefox (#5137). Puppeteer can now talk to a real, unpatched Firef...
Chromium 80.0.3987.0 (r722234)
The launcher now has an option to run Puppeteer with different browsers, starting with Firefox (#5137). Puppeteer can now talk to a real, unpatched Firef...