Finding a VS Code Memory Leak
Разработчик Chromium Брюс Доусон обнаружил, что VS Code течёт дескрипторы процессов: вместо того чтобы закрывать дескриптор после использования, он оставляет его открытым. Каждый незакрытый дескриптор «стоит» 64 КБ, и при длительной работе редактора это может привести к утечке гигабайтами памяти. Проблема была найдена и исправлена в течении пары дней после доклада, и в релизе 1.94 VS Code больше не течёт.
Комментарии (11)
- VS Code и другие крупные редакторы из-за своего размера и сложности становятся мишенью для атак на цепочку поставок и уязвимостей.
- Участники обсуждают, что большие кодовые базы и многочисленные зависимости увеличивают риски.
- Появляется идея использовать ограничения по памяти для раннего обнаружения утечек и избытка функций.
- Некоторые участники выражают обеспокоенность по поводу того, что такие ограничения могут быть непрактичны в современных условиях.
- В целом, обсуждение подчеркивает важность минимизации поверхности атаки и управления рисками в экосистеме разработки.
Electron-based apps cause system-wide lag on macOS 26 Tahoe 💬 Длинная дискуссия
Приложения на Electron вызывают серьёзные задержки в работе всей системы на macOS 26. Пользователи сообщают о замедлении интерфейса, лагах при вводе текста и проблемах с отзывчивостью даже при минимальной нагрузке. Это связано с тем, что фреймворк использует общие ресурсы системы неэффективно, особенно в многозадачных сценариях.
Проблема проявляется при одновременной работе нескольких Electron-приложений, таких как Slack, Discord или VS Code. Система начинает проседать по производительности, что негативно сказывается на пользовательском опыте. Разработчики Electron признают проблему и изучают её, но пока не предложили конкретного решения.
Комментарии (153)
- Проблема с производительностью в macOS 26 вызвана использованием приложениями (включая Electron) приватных API Apple, что приводит к утечкам ресурсов и лагам.
- Некоторые пользователи не сталкиваются с проблемами, возможно, из-за высокой производительности железа (например, чипов M4), которое маскирует недочеты.
- Обсуждается, кто виноват: разработчики приложений за использование приватных методов или Apple за отсутствие регрессионного тестирования и обратной совместимости.
- Для части приложений (Chrome/Chromium) уже выпущен фикс, а также известны временные решения через терминал.
- Спектр мнений варьируется от критики Electron до защиты его как кросс-платформенного решения с хорошим DX.
Helium Browser 🔥 Горячее 💬 Длинная дискуссия
Helium — это браузер для десктопа с открытым исходным кодом, ориентированный на приватность и удобство. По умолчанию он блокирует рекламу, трекеры, криптомайнеры и фишинговые сайты благодаря предустановленному uBlock Origin, без исключений и дополнительных настроек. Браузер не содержит собственной аналитики, не делает веб-запросов без явного согласия пользователя и работает на облегчённой версии Chromium, что обеспечивает высокую скорость и энергоэффективность.
Helium включает уникальные функции, такие как нативные !bangs (позволяют быстро переходить на сайты, например, !w для Википедии), разделённый просмотр страниц и поддержку всех Chromium-расширений с анонимизацией запросов к Chrome Web Store. Интерфейс минималистичен, не отвлекает и настраивается под пользователя. Все обновления безопасности выпускаются оперативно, а синхронизация данных через облако отсутствует для максимальной конфиденциальности.
Комментарии (471)
- Скептицизм по поводу использования Chromium в качестве основы для приватного браузера, учитывая контроль Google над экосистемой и необходимость альтернативных движков (WebKit, Gecko).
- Озабоченность отсутствием информации о команде разработчиков, модели монетизации и долгосрочных планах поддержки, что важно для доверия к автоматическим обновлениям.
- Критика и сравнение с другими браузерами (Brave, Firefox, Orion, Zen), где отмечаются недостатки Helium: отсутствие вертикальных вкладок, синхронизации с мобильными устройствами и поддержки MV2-расширений.
- Запросы о технических деталях: механизм автообновлений, поддержка Linux и мобильных ОС, версия uBlock Origin (MV2 или Lite), безопасность расширений.
- Некоторые положительные отзывы о качестве браузера и удобстве использования, но в целом преобладает осторожное или негативное отношение из-за зависимости от Chromium.
Cloudflare is sponsoring Ladybird and Omarchy 🔥 Горячее 💬 Длинная дискуссия
Cloudflare объявляет о спонсорской поддержке двух независимых open-source проектов — браузера Ladybird и дистрибутива Omarchy на базе Arch Linux для разработчиков. Это часть стратегии по укреплению открытого интернета через разнообразие инструментов. Ladybird — амбициозная попытка создать браузер с нуля, включая собственные движки рендеринга (LibWeb) и JavaScript (LibJS), что контрастирует с доминированием Chromium, используемого 65% пользователей. Такой подход стимулирует инновации в безопасности и производительности, а также выявляет недочёты в веб-стандартах.
Omarchy предлагает продуманную среду для разработчиков, упрощая настройку и повышая продуктивность. Оба проекта демонстрируют важность альтернативных решений в условиях консолидации рынка. Cloudflare видит в этом вклад в экосистему, где независимые инициативы помогают сохранять интернет открытым и конкурентоспособным.
Комментарии (417)
- Обсуждение спонсорства Cloudflare проектов Ladybird и Omarchy с акцентом на возможные скрытые мотивы компании, включая движение к вебу только для одобренных браузеров.
- Скептицизм относительно практической ценности Omarchy как ещё одного дистрибутива Linux и его сравнение с другими установщиками и системами, такими как Nix или Alpine.
- Вопросы о целесообразности создания нового браузерного движка (Ladybird) на C++ вместо более безопасных языков и сомнения в его способности конкурировать с существующими гигантами.
- Обсуждение личности DHH (создателя Omarchy) и его спорных высказываний, а также того, должно ли это влиять на поддержку его проектов.
- Поднята тема стратегического интереса Cloudflare к децентрализации веба и уменьшения зависимости от Google, аналогичного стратегии Valve с Proton.
Forking Chrome to render in a terminal (2023)
-
Рисование
Терминал умеет только моноширинные символы и escape-последовательности. Используем нижний полублок▄, задавая цвет фона (верхний пиксель) и символа (нижний).fn print_pixels_pair(top, bottom, (x, y)) { println!("\x1b[{};{}H\x1b[48;2;{t}m\x1b[38;2;{b}m▄", y+1, x+1, t=top, b=bottom); } -
Текст
СоздаёмTextCaptureDeviceв Skia: перехватываемonDrawGlyphRunList, преобразуем glyph → Unicode, вызываем Rust-функциюdraw_text.
Добавляем очистку текста при заливке прямоугольников:if (paint.getStyle() == kFill_Style && paint.getAlphaf() == 1.0) clear_text(rect); -
Ввод
Читаем stdin, парсим escape-коды клавиш/мыши, передаём их в Chromium через DOM-события. -
Pipe-режим
carbonyl --pipeрисует в stdout, позволяя встраивать браузер в скрипты. -
Mojo
Заменяем GPU-процесс на заглушку, отключая лишние сервисы. -
Layout
Подгоняемdevice_scale_factorиviewportпод размер терминала, чтобы 1 px = ½ клетки. -
LoDPI
На 1×-экранах включаем сглаживание, чтобы символы не «дребезжали». -
Цвет
Палитра 6×6×6 или 24-бит truecolor; приводим цвета к ближайшему доступному. -
Заголовок
ESC-операторы меняют заголовок окна и вкладки tmux. -
Итог
Carbonyl запускает весь веб в терминале без X11/Wayland:cargo install carbonyl.
Комментарии (17)
- Carbonyl — терминальный браузер на движке Chrome, удивительно шустрый и юзабельный, особенно с --zoom=300 --bitmap.
- Пользователи просят добавить Kitty Graphics Protocol, sixel/chafa для нормального вывода картинок без ASCII-арта.
- Проект вдохновлён browsh, но работает быстрее; автору даже помог получить работу.
- Запускается в podman, показывает YouTube «кубиками» и почти справляется с капчей (могут помочь мультимодальные LLM).
- Под капотом — Skia и Mojo из Chromium, что позволяет рендерить всё, включая PDF.
Closer to the Metal: Leaving Playwright for CDP
Прощай, Playwright — здравствуй, CDP
Мы отказались от Playwright и перешли на «родной» Chrome DevTools Protocol. Это ускорило извлечение элементов, скриншоты и действия, добавило асинхронные реакции и нормальную работу с кросс-доменными iframe.
Проклятие абстракции
Playwright скрывает важные детали, вносит лишнюю задержку через WebSocket-прокси и не нужен для узких задач AI-агентов. Мы решили реализовать только нужные вызовы сами.
Краткая история автоматизации браузеров
- 2011–2017: PhantomJS → Chrome Remote Debugging → WebKit RDP → CDP.
- 2017: Headless Chrome + Puppeteer.
- 2018: WebDriver стал W3C-стандартом.
- 2020: бывшие разработчики Puppeteer создали Playwright.
- 2023–2024: WebDriver BiDi в ChromeDriver и Puppeteer.
Современные драйверы
pydoll, go-rod, chromedp, puppeteer, playwright, selenium, cypress, appium.
Но ни один не подошёл, поэтому мы написали собственный cdp-use.
Комментарии (103)
- Автор перенёс Playwright, Browser Use и Selenium в расширения Chrome, отказавшись от CDP и полагаясь на DOM- и extension-API.
- Сообщество спорит: кто-то считает это «NIH-синдромом», другие — полезным способом избежать фингерпринтинга и ускорить работу.
- Поднимаются вопросы о Firefox (без CDP), ограничениях расширений и невозможности автоматизировать другие расширения.
- Некоторые напоминают, что Selenium/подобные инструменты работали уже до 2011, и «тёмные века» — субъективны.
- Итог: проект пока ориентирован на Chromium-браузеры, CDP всё ещё используется для снимков и фреймов, а полный переход на extension-only решает не все задачи.
Комментарии (67)
- DOJ требует у судьи Мехты принудительно отделить Chrome от Google после признания монополии в поиске; предложение Perplexity рассматривается как юридический ход.
- Предложение Perplexity в $34,5 млрд (в 2× превышающее её капитализацию) участники называют пиар-акцией: денег нет, цена занижена, а сделка обречена на провал.
- Многие считают, что проще форкнуть Chromium бесплатно, чем платить за бренд и установленную базу в 3,45 млрд пользователей.
- Пользователи критикуют саму Perplexity: «фанфары вместо продукта», «плохие результаты», «обман маркетинга» и опасения, что ИИ-компания будет ещё агрессивнее использовать данные, чем Google.
The Chrome VRP Panel has decided to award $250k for this report 🔥 Горячее 💬 Длинная дискуссия
Chromium
Войти
Комментарии (249)
- Найдена критическая уязвимость escape из Chrome-песочницы, за которую Google заплатили $250 000.
- Некоторые считают, что на «чёрном» рынке она могла стоить дороже, но продажа чревата рисками и отмыванием денег.
- Mozilla платит за аналогичные баги лишь $20 000, что вызывает сравнение серьёзности подходов к безопасности.
- Ошибка логики/тайминга; Rust бы её не предотвратил.
- Участники обсуждают, как начать искать такие баги: читать write-ups, практиковать reverse engineering, пользоваться ресурсами вроде pwn.college.
Nyxt: The Emacs-like web browser
Nyxt — браузер в духе Emacs, написанный на Common Lisp под BSD-лицензией. Цель — клавиатурное управление и полная расширяемость для разработчиков; Linux — приоритетная платформа.
Проект запущен в 2017 г. Джоном Меркурисом, спонсируется двухчеловечной Atlas. Идея — дать «хороший Emacs-опыт в интернете», но без самого Emacs: технический долг и ограничения плагинов не позволили реализовать задумку иначе. Поддерживаются vi- и CUA-схемы клавиш.
Стабильная ветка 3.12.0 (октябрь 2024) использует WebKitGTK, экспериментально Blink. Обновления безопасности только для последней стабильной версии.
Разрабатывается 4.0: рендер-агностик, WebKitGTK + Electron (из-за производительности и поддержки macOS/Windows). Пока доступен превью-AppImage на Electron; WebKitGTK требует сборки из исходников. Основные изменения — рефакторинг, багфиксы, улучшения UI.
Установка стабильной версии в Linux — Flatpak.
Комментарии (35)
- Пользователи восторжены идеей «Emacs для браузера», но ждут стабильной 4.0 и полной совместимости с сайтами.
- Основные тормозы: отсутствие uBlock Origin/umatrix, странный поиск в модальном окне, проблемы с Electron и сборкой под Guix/Mac.
- Движок — Chromium через Electron, поэтому sandbox-защита сопоставима с Chrome, но «взлом» вне песочницы пугает.
- Критики считают проект хакерским, а не продуктовым: мало внимания UX и «обычным» пользователям.
- Сторонники отвечают: целевая аудитория — энтузиасты Emacs/Luakit, а не массовый рынок.