Как стать автором
Поиск
Написать публикацию
Обновить
24.03

Браузеры

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

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

Дзен и публикация картинок

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

Привет, Хабр! Сегодня я хотел бы поговорить с тобой о проблеме публикации картинок. Зачем вообще об этом говорить? Ежедневно миллионы людей публикуют миллионы, или даже, миллиарды изображений, что тут можно обсуждать? Наверняка, для веб-разработчика, тем более, опытного - это вообще никакая не проблема.

Эх, как бы не так.

Публикация пакета npm с ESM и TypeScript

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



За последние 2 года поддержка ESM в TypeScript, Node.js и браузерах сильно улучшилась. В этой статье я объясню мою современную настройку, которая является относительно простой по сравнению с тем, что нам приходилось делать раньше:


  • она предназначена для пакетов, которые могут пренебречь обратной совместимостью. Настройка хорошо работает для меня некоторое время — начиная с TS 4.7 (24.05.2022)
    • помогает то, что Node.js теперь поддерживает require(esm) — запрос библиотек ESM из модулей CommonJS
  • я использую только tsc, но упоминаю поддержку других инструментов в разделе "Компиляция TS с помощью других инструментов"

Обратная связь приветствуется: что вы делаете по-другому? Что может быть улучшено?


Пример пакета: в @rauschma/helpers используется настройка, описываемая в этой статье.

Читать дальше →

Предложение Mozilla по отзыву случайных сертификатов

Время на прочтение2 мин
Количество просмотров4.3K


Разработчики Mozilla выступили с интересным предложением по оздоровлению инфраструктуры сертификатов TLS и инфраструктуры открытых ключей (PKI) в целом.

Среди прочего, Центрам Сертификации предлагается массово отзывать у пользователей сертификаты, чтобы подтолкнуть их к автоматизации. Для тестирования системы ежегодно отзыву подлежит 30 случайных сертификатов.
Читать дальше →

Локаторы. Стратегии поиска веб-элементов

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

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

Читать далее

Netscape Navigator празднует 30 лет. История и технологии, которые важны и сегодня

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров4K
На Хабре много публикаций про браузер Netscape, но нет ни одной полностью раскрывающей всю историю и технические особенности проекта. Пришел хороший повод вернуться к теме: недавно Netscape исполнилось 30 лет. Он стал техническим прорывом и подарил нам множество важнейших технологий, которые вы используете каждый день!

image

Конец 1994 года оказался удачным моментом для старта: компьютеры проникали в каждый дом, происходило ежегодное удвоение интернета, все крупные компании открыли свои сайты, а для самых активных людей планеты чтение электронной почты стало ежедневной рутиной. Всем нужен качественный и недорогой браузер. Да, браузеры когда-то были платными. Netscape стал самым продвинутым для 1994 года и как следствие, самым популярным браузером в мире. Однако очень скоро началась первая браузерная война, которая уничтожила компанию, привела к краху и забытию. Тем не менее, мы помним вклад Netscape Navigator, а самое забавное, что часть технологий и даже программного кода используется до сих пор. Мы вспомним ключевых участников, технологии, события, патенты и малоизвестные моменты. Это история главного в истории браузера. И, конечно, история о том, как интернет изменил наш мир.
Читать дальше →

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

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров19K

Лучшие Антидетект браузеры (в простонародье антики) появились как ответ на распространение технологий браузерного фингерпринтинга – скрытой идентификации пользователей по совокупности параметров их устройства и среды. Современные сайты помимо cookies отслеживают IP-адрес, геолокацию и десятки характеристик браузера (Canvas, WebGL, список шрифтов, User-Agent и др.), чтобы отличать и связывать посетителей​. В результате даже в режиме инкогнито или при смене IP пользователь может быть детектирован по «цифровому отпечатку» – уникальному набору свойств его браузера​.

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

Антидетект браузер – это модифицированный браузер (часто на основе Chromium или Firefox​), который подменяет или маскирует эти свойства (фингерпринты), не позволяя сайтам однозначно узнать пользователя и обнаружить мультиаккаунтинг​. 

С использованием антидетект браузеров, десяток разных аккаунтов выглядит как десять независимых пользователей с разными устройствами, хотя на самом деле работают с ними через один компьютер. Это открывает новые возможности в интернете – от безопасного серфинга до бизнес-задач с множеством учетных записей.

Читать далее

Я сделал тирлист 4 бесплатных браузерных прокси, чтобы вам не пришлось

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

Я заметил, что многие относятся к бесплатным прокси как к чему-то ненадежному, если не бесполезному. Да, они существуют, ими кто-то пользуется, но воспринимать их всерьез как рабочий инструмент — ну уж точно нет.

Я решил проверить, насколько все действительно плохо (или, наоборот, хорошо), протестировав популярные бесплатные прокси по скорости, стабильности, анонимности и удобству. Цель — понять, можно ли реально пользоваться ими каждый день.

Читать далее

Свой прокси. Волшебство разделения ресурсов в одном браузере

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9.5K

Представьте себе ситуацию: вы хотите в одном браузере смотреть любимый сериал на зарубежном сайте, который требует прокси, и одновременно листать локальные новости, где прокси только мешает. Обычно это превращается в жонглирование настройками или даже окнами браузера — скучно и утомительно. Но что, если я скажу, что есть простой и изящный способ объединить эти миры? Сегодня я поделюсь с вами крутым Bash-скриптом для сервера на Ubuntu, который настроит прокси-сервер Squid так, чтобы вы могли легко разделять ресурсы с прокси и без него в одном браузере. Давайте разберёмся, как это работает, и почему это так увлекательно!

Читать далее

Запускаем Pong в 240 вкладках браузера

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.8K

Что вы делаете с незакрытыми вкладками браузера? На мой взгляд, они занимают слишком много места на экране, поэтому на этой неделе я разобрался, как запустить в этих вкладках Pong.

Это 240 вкладок браузера в плотной сетке 8x30. И в них запущен Pong! Видно, что мяч и ракетки перемещаются по canvas в окне и во всех вкладках.

Код (ужасный) можно посмотреть на GitHub. Но как он работает?

Читать далее

SSL и SSL-сертификаты для новичков

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров43K

Представляю вашему вниманию перевод статьи SSL and SSL Certificates Explained For Beginners. Я долго разбирался с SSL, сертификатами, центрами сертификации - это единственная статья, после которой у меня что-то отложилось в голове :) Поэтому возникла идея перевести ее и донести до широких масс.

Читать далее

Поддержка webextensions под Андроид

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.2K

Добрый день!


Меня зовут Тимур и я программист.


Сегодня я хочу представить очередную свою работу, точнее рабочий черновик. Да, я в курсе — дураку полработы не показывают, но так и на хабре то не дураки сидят. Итак, сегодня я расскажу как перенес поддержку webextensions в chromium под Андроид, что работает а что не работает, как пользоваться тем что работает и когда будет работать то что не работает.

Читать дальше →

Почему именно в Chrome под Windows на сайтах не работают эмодзи флагов

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

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

Более того, вы даже можете легко реализовать динамическое определение иконок на основе кода региона:

// Смещение для корректировки кода ASCII каждого символа в строке кода ISO страны для определения соответствующего флага.
const EMOJI_CHARACTER_OFFSET = 127397;

const getEmojiForCountryCode = (countryCode: string) =>
  String.fromCodePoint(
    ...countryCode
      .toUpperCase()
      .split('')
      .map((char) => char.charCodeAt(0) + EMOJI_CHARACTER_OFFSET),
  );

// "en-US"
const currentLanguageCode = navigator.language;
// "US"
const currentCountryCode = currentLanguageCode.split("-")[1];
// "🇺🇸"
getEmojiForCountryCode(currentCountryCode);
// "🇫🇷"
getEmojiForCountryCode("FR");
// "🇸🇪"
getEmojiForCountryCode("SE");

Всё идёт шикарно!

Как вдруг…
Читать дальше →

Я перешёл на Firefox и обратно возвращаться не намерен

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

Мой рабочий PC — древний мамонт, и когда я открываю в Chrome много вкладок, кулеры начинают вопить. Я всегда думал, что дело в моём старом компьютере, но потом перешёл на Firefox и обнаружил, что виноват Chrome.

Всё, что может Chrome, и даже больше

Сколько себя помню, Chrome всегда был моим основным браузером. Все мои пароли, закладки и расширения оказывались под рукой после входа в аккаунт Google. На своём компьютере я пользуюсь только браузером, поэтому никогда не испытывал нужды апгрейдить «железо». По крайней мере, до недавнего времени, когда я установил пару новых расширений Chrome.

Я решил, что настало время установить в машину ещё немного ОЗУ или навсегда с ней распрощаться. Временно я перешёл на Firefox. Создал для него новый аккаунт и связал его с цепочкой синхронизации между PC и телефоном. К моему удивлению, старый PC работал без проблем даже при куче открытых вкладок. Смолкли и голоса рассерженных вентиляторов.

И что ещё удивительнее, Firefox способен на всё, что умеет Chrome. Синхронизация между устройствами работает идеально. Вы получаете широкий ассортимент браузерных аддонов и можете гибко настраивать основную часть интерфейса. Он обладает множеством удобных возможностей, которых нет у Chrome.

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

Читать далее

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

Vivaldi 7.1 для Android и iOS — стрельба дуплетом

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

Всем привет!

Не прошло и недели (вообще-то прошло), а мы уже выпускаем новый стабильный релиз Vivaldi 7.1 сразу для двух платформ - для Android и iOS. Возможно, это не очень хорошая идея - смешивать две аудитории читателей, но мы решили просто показать пользователям двух довольно разных платформ, что на самом деле не такие уж они и разные. По крайней мере, у себя в Vivaldi мы стараемся эту разницу максимально убрать. Хотя она ещё и имеется, но об этом - чуть ниже.

Читать далее

Минималистичная JavaScript песочница

Время на прочтение1 мин
Количество просмотров2.7K

Основное отличие этой песочницы от других — сжатие и кодирование пользовательского кода непосредственно в URL. Код не хранится на сервере или где-либо ещё. Если у вас есть ссылка, значит у вас есть код.

Может возникнуть вопрос, сколько символов можно записать в URL и как много кода таким образом можно закодировать? У разных браузеров максимальная длина URL-строки отличается. Но 2000 символов поддерживают все современные браузеры. В такую строку можно закодировать довольно много кода, причем степень сжатия увеличивается с объёмом кода.

Читать далее

Сколько памяти ест ваша вкладка

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

При разработке веб-приложений не все задумываются о том, сколько памяти потребляет их код. О производительности наших сайтов мы вспоминаем гораздо чаще. К тому же не каждому разработчику интересно «экономить на спичках». Разве может наш код на языке JavaScript требовать много памяти? «Много» — это вообще сколько? 100 мегабайтов — это много?

Меня зовут Антон Непша. Я работаю в Сбере, разрабатываю сайт СберБанк Онлайн и веду Telegram-канал Антон Непша.js. Недавно я выступил на HolyJS с докладом о том, сколько ресурсов потребляют наши сайты, как эти ресурсы распределяются, где хранятся, и как связать информацию о них из снимка памяти с конкретным местом в своём коде.

Если смотреть видео вам удобнее, то доклад есть на YouTube и ВК Видео. В статье вас ждёт текстовый вариант и ссылки на используемые материалы:

Читать далее

Vivaldi 7.1 — Персонализированный комфорт

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

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

Читать далее

Извлечение паролей из разных браузеров

Время на прочтение3 мин
Количество просмотров9.2K


Если пользователь забыл мастер-пароль от парольного менеджера Bitwarden, 1Password, KeepassXC, то пароли невозможно восстановить. Другое дело — встроенные парольные менеджеры браузеров Chrome и Firefox, для расшифровки которых есть специальные инструменты. Этот факт следует иметь в виду при хранении пользовательских данных — и не допускать, чтобы злоумышленник получил физический или удалённый доступ к компьютеру с правами пользователя.

Примечание: перечисленные ниже инструменты не работают с последними версиями браузеров и приведены исключительно в информационно-образовательных целях.
Читать дальше →

Как расширение браузера «Honey» забирает прибыль у блогеров и манипулирует поведением покупателя

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

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

Читать далее

Fullstack v2: учимся писать UI на Go

Время на прочтение12 мин
Количество просмотров9.8K

Меня зовут Илья Глухов.  Последние 7 лет я пишу на Go. Я люблю этот язык, а ещё люблю задаваться странными, на первый взгляд, вопросами. Например, как разные интересные штуки, которые мы пишем на Go взаимодействуют с пользователем? В классическом бэкенде мы при помощи RPC (Remote Procedure Call), протокола HTTP или разных очередей модифицируем поведение нашей программы. А что насчёт graphic UI? Он же из фронтенда? Или нам так только кажется? Давайте  создадим пользовательский интерфейс (UI) на Go. Выбор решений разнообразен: Gopherjs, gomobile, обёртки для Qt, GTK и много чего ещё. Но если мы хотим добиться кросс-платформенной совместимости для браузеров, мобильных устройств и десктопов, нам нужен универсальный UI. Давайте на практическом примере разберём как создать его на Go.

Читать далее

Вклад авторов