Обновить
256K+

Браузеры

Веб-обозреватели

55,2
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Несколько LLM-агентов в одном Chrome: изоляция вкладок без потери логинов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.9K

Когда у вас один AI-агент в браузере, всё просто. Когда их пять и они параллельно ходят по разным сайтам через Playwright MCP, начинается война за вкладку. Штатный @playwright/mcp работает в общем BrowserContext, и агенты перехватывают страницы друг у друга. Отдельный контекст через newContext() решает изоляцию, но убивает логины.

На основании собственных мучений, в этой статье разбираю, как получить и то, и другое: изолированные окна на каждого агента с общими куками профиля, используя недокументированный contextGetter в createConnection. С кодом, граблями и честными ограничениями.

Читать далее

Новости

Браузерные расширения от А до П, где П — публикация в Google Store

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели10K

Всем привет! Меня зовут Александр, я продуктовый инженер в KTS.

Недавно мы разрабатывали AI-копайлот для сервис-деска в виде расширения на Chrome. Копайлот подсказывал оператору ответы для клиента на основе контекста диалога, истории обращений и базы знаний компании. Уже на старте стало понятно, что разработка расширений сильно отличается от привычной фронтенд-разработки.

Основная сложность была не столько в реализации конкретных фич, сколько в архитектуре: где должен жить тот или иной код, как организовать взаимодействие между частями расширения и как не заложить проблемы на будущее. Дополнительно добавились нюансы интеграции в страницу и ограничения, связанные с публикацией в Chrome Web Store.

Поударявшись о всевозможные подводные камни, я решил написать эту статью. В ней я разберу ключевые этапы разработки и публикации, покажу удачные и неудачные подходы и на что стоит обратить внимание, если вы планируете делать браузерное расширение со сложной логикой.

Сразу задам фрейм: в статье речь пойдет именно о расширениях для Chrome (Manifest V3), хотя многие подходы будут применимы и к другим браузерам на базе Chromium.

Читать далее

OSINT для новичков: что можно узнать из открытых источников

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

Разбираю базовые техники OSINT для новичков: как проверять телефон, email, домен, компанию и изображения через поисковики, реестры, веб-архивы и открытые сервисы.

Читать далее

Playwright, Selenium, Cypress, WebdriverIO: что реально известно о скорости в 2026 году (и как намерить свои цифры)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

За последний месяц я насчитал минимум семь свежих статей с заголовком в духе "Playwright быстрее Selenium на N%". Проблема в том, что N у всех разный: 23%, 42%, 63%, "1.85x". Методология почти нигде не раскрыта дальше фразы "controlled environment". Для решения, которое определяет CI-бюджет и архитектуру тестов на годы вперёд, это не цифры — это шум.

Здесь — что из этого шума реально на что-то опирается, почему остальное несопоставимо, и рабочий бенчмарк-харнесс, который вы можете прогнать на своём стеке за один CI-job и получить именно свои числа, а не чужие проценты.

Читать далее

История браузеров в игровых консолях: вторая часть

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели9.4K

Nintendo DSi

В большинстве случаев браузер был включён в пакет системного ПО DSi (2008 год), в противном случае его можно было бесплатно установить из DSi Shop. Для браузера не требовался Memory Expansion Pak благодаря тому, что в DSi имела встроенные 16 МБ ОЗУ. Браузер сильно улучшили по сравнению с версией для DS, это урезанная версия Opera 9.501.

Важным аспектом стало добавление поддержки HTML canvas: на различных сайтах наподобие DSiPaint, DSiCade, DSiPlaza и Social Neko, написанных специально под браузер DSi, использовалась эта поддержка и другие веб-технологии, упрощающие интерактивные действия. Браузер поддерживал только один шрифт и три его размера, а контент преобразовывался в соответствии с этим ограничением.

Авторы обзоров того времени критиковали отсутствие поддержки Adobe Flash и воспроизведения видео, а также достаточно частые сообщения о заканчивающейся памяти, но всё равно считали браузер серьёзным шагом вперёд по сравнению с ПО для DS. Он получил единственное обновление до версии 1.4 (август 2009 года), которое немного уменьшило занимаемый в памяти размер.

Несмотря на увеличившийся размер ОЗУ, DSi не была совместима с браузером DS из-за обязательной проверки на наличие Memory Expansion Pak, который невозможно было установить DSi из-за отсутствия Slot-2.

1. Несмотря на некоторые утверждения, браузер работал в самой DSi, не используя прокси рендеринга Opera Mini.

Читать далее

Как я сделал расширение, которое показывает десктоп и мобильную версию сайта одновременно

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели14K

Когда верстаешь адаптив, постоянно скачешь между десктопом и мобильной версией: то DevTools в режиме устройства, то ресайз окна, то открыть на телефоне. Десктоп и мобайл при этом никогда не видны одновременно — один прячется, когда смотришь на другой.

Готовые мобильные симуляторы это не закрывали: они хорошо делают своё дело, но не дают посмотреть адаптив прямо на вкладке, поверх десктопа. Я сделал свой инструмент — и в статье разбираю, как это устроено технически.

Читать разбор

Семь браузерных инструментов без сервера: WASM, WebGPU, шифрование на клиенте

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели11K

Запись в Notion - и текст на чужом сервере. Задачи в облачном планировщике - данные в чужой аналитике.

Волна локальных LLM показала широкой аудитории, что on-device - это реально. Модель работает, данные не покидают машину. RAG в indexeddb - кто так не делал?

Тот же сдвиг происходит с обычными инструментами. Всё заметнее, что ежемесячная подписка - это аренда софта, которым не владеешь и который нельзя отключить от сети.

Я доделал свои 7 pet-проектов. Все работают целиком в браузере, без сервера, без регистрации, без отправки данных куда-либо. Только локальное хранилище, шифрование на стороне клиента и нативные браузерные API.

Что же это за проекты

История браузеров в игровых консолях

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели9.5K

Видеоигровые консоли и веб-браузеры имеют долгую совместную историю. Ещё с самого появления World Wide Web консоли пытались выйти онлайн. Браузеры в видеоигровых консолях изначально в основном были попытками предоставить дешёвое окно в веб для обычной аудитории без технического опыта, однако со временем они становились всё более масштабными и интегральными частями систем.

В этой статье мы подробно изучим браузеры консолей, однако рассмотрим только официальные веб-браузеры. Во многие консоли можно установить браузеры через специализированные прошивки и homebrew, но они не войдут в рамки нашей статьи, как и системы без веба наподобие Satellaview, а также онлайн-сервисы, не предоставляющие браузер, например, XBAND, Sega Meganet и Sega Channel.

Браузеры игровых консолей какое-то время были в сфере интересов веб-разработчиков, когда персональные вычислительные устройства и мобильные браузеры находились на ранних этапах развития. В целом, разработка консольных браузеров позволит нам взглянуть на юный веб, постепенно растущий и развивающийся, а также исследовать пользовательские интерфейсы консолей.

Читать далее

Использование Blob API для обработки файлов, их загрузки и создания клиентских приложений без утечек памяти

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели9.2K

Современные фронтенд-приложения постоянно взаимодействуют с файлами.

Пользователи загружают аватары, перетаскивают видео в дашборды, экспортируют CSV-отчеты, просматривают PDF-файлы, скачивают сгенерированные конфигурационные файлы и работают с медиаконтентом прямо в браузере. На первый взгляд все это выглядит довольно просто: поле загрузки файла, элемент предпросмотра, возможно, кнопка скачивания — и задача решена.

Но именно здесь начинаются настоящие проблемы.

Читать далее

Как войти в MAX без пароля, СМС и QR. Две команды, и ты внутри

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели44K

Подробная инструкция: как войти в свой аккаунт MAX, если нет доступа к СМС, QR и паролю. Справится даже твоя бабушка.

Читать далее

Пишем движок для JavaScript с нуля

Время на прочтение9 мин
Охват и читатели8.4K

Как выкатить собственный движок JavaScript

Привет, Хаброжители! Мы подготовили для вас перевод статьи, в которой автор делится опытом создания собственного движка JavaScript с нуля.

Автор на языке Go с нуля создаёт простой движок JavaScript. В статье пошагово разобраны ключевые этапы: от лексического анализа и построения AST до реализации вычислителя и встроенных функций (print, fetch, JSON). Отличный материал, чтобы понять, как код на JS превращается в работающие инструкции.

Читать далее

Новый русский орфографический словарь для Firefox, Thunderbird и CSpell: как он собирался

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.8K

Русская проверка орфографии в браузере — вещь почти невидимая. Пока она работает нормально, о ней не думаешь. Но стоит словарю начать подчёркивать обычные современные слова — и он сразу превращается из полезного инструмента в раздражитель.

Так случилось и с русским словарём для Firefox и Thunderbird. Текущий словарь много лет выполнял свою работу, но постепенно начал отставать от живого языка: технической лексики, интерфейсных слов, современной терминологии, слов из документации, ИБ, веба, разработки и повседневной цифровой среды.

Читать далее

Как сломался Code Blocks: маленькое расширение, большое неудобство и история про устаревший движок

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.6K

Всем привет, меня зовут Сергей Прощаев. Эта статья будет не про большую архитектуру и не про разбор тестового задания — а про маленький, почти бытовой случай, который, как мне кажется, хорошо иллюстрирует, насколько мы привыкаем к удобным инструментам и насколько хрупкой бывает их работа.

Преподаю и много пишу код, который потом нужно красиво показать — в документах, статьях и особенно в презентациях для занятий. И на днях я случайно наткнулся на то, что мой давно любимый инструмент — надстройка Code Blocks для Google Docs — просто перестал работать.

Читать далее

Ближайшие события

Как я портировал ретрошутер Redneck Rampage в браузер

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.1K

Всем привет! Я решил наконец то сам сделать пост на хабре. Обычно о всех моих веб проектах и команды DosZone Team пишет здесь многоуважаемый @denis-19, за что ему огромное спасибо! Ведь нам просто лень или не хватает на это времени. И так! После шутера Blood мне было интересно попробовать также портировать Redneck Rampage как раз на основе того, что я уже сделал. Было ошибочно так думать, потому что RR в отличие от NBlood оказался совершенно на другом движке - RedNukem, и пришлось начинать всё с нуля. Да и сложность повысилась и всё это заняло в два раза больше времени, чуть больше недели.

Читать далее

Центр сертификации в собственной автономной системе

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.4K

Привет!

В статье рассмотрим создание центров сертификации для автономной системы в реалиях 2026 года. Такой системой может выступать ваш дом, небольшой офис или другая локальная сеть, которая предоставляет пользователям сервисы. Простоты ради мы будем использовать пакет EasyRSA. Рассмотрим все шаги от создания корневого и промежуточного ЦС до выпуска клиентских и серверных ключей(и бонусом — пример их использования в моей домашней сети). Интересно? Тогда добро пожаловать под кат.

Читать далее

HTTPS-перехват на практике

Время на прочтение4 мин
Охват и читатели11K

Перехват HTTPS — это техническая концепция и хакерская техника, которая заключается в обходе шифрования TLS для инспекции защищённого трафика. Таким образом, злоумышленник может активировать DPI незаметно для владельца сайта и его посетителей — и эффективно просматривать их трафик в то время, как они будут уверены в своей защищённости.

На практике атака более десяти лет производится через обман Удостоверяющих центров (УЦ), такого как Let’s Encrypt. На первом этапе злоумышленник заставляет их выдать TLS-сертификаты для доменов, которые им не принадлежат, перехватывая запросы ACME-HTTP-01. Для атаки уязвимы все УЦ, которые используют ACME.

Читать далее

JavaScript. Работа с большими файлами в браузере. Часть 2/2: Создание 5Gb файлов в браузере

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.9K

Онлайн доска DGRM.net кеширует файлы в постоянном кеше. Постоянный кеш не удаляется при закрытии вкладки. Рассказываю как хранить большие файлы в браузере.

Читать далее

Благоустраиваем Firefox: встроенный VPN

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели8.9K

Продолжаем серию заметок по улучшению UI нашего любимого браузера. На этот раз поменяем кнопку включения VPN на тулбаре.

Читать далее

Мобильный Vivaldi 8.0 — Лучший браузер для лета

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели7.2K

Люди по-разному готовятся к лету. Кто-то ищет место для отпуска и бронирует отели, кто-то старательно худеет, чтобы предстать на пляже в лучшем виде, а кто-то проводит весеннюю уборку, чтобы летом не отвлекаться на рутину, а получать удовольствие от жизни. Мы также провели определённую работу этой весной, чтобы предложить вам новые версии мобильных браузеров, такой своего рода летний вариант с новыми удобными функциями и исправленными недочётами.

Читать далее

Браузеры подстраиваются под большие сайты

Время на прочтение7 мин
Охват и читатели11K

В некоторых браузерах есть код, проверяющий, какой домен посещает пользователь, и меняющий способ рендеринга страницы.

Да, вы всё поняли верно. If site == X, do Y.

Особого обращения заслужили TikTok, Netflix, Instagram* и даже SeatGuru.

Так поступают Safari и Firefox. Но не Chrome.

И это говорит нам кое о чём любопытном.

Если вам любопытно, исходный код выложен на Github. Это буквально проверки доменов, встроенные в движки рендеринга браузеров и гласящие: «если пользователь находится на этом домене, рендери вот это иначе» или «если он на этом домене, обрабатывай этот вызов API по-другому». Это не баг, а фича, выпускаемая для миллиардов устройств.

Читать далее
1
23 ...