Как стать автором
Обновить
20.24

Firefox

Свободный браузер на движке Gecko

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

Инструментарий для front-end разработки под Linux

Время на прочтение6 мин
Количество просмотров24K
Доброго времени суток, господа девелоперы! В этой статье я расскажу, как сделать разработку под Linux действительно комфортной и удобной, чтобы она приносила только боль удовольствие.

Чего мы добиваемся:
Просматриваем страницу в браузере и правим в текстовом редакторе HTML и CSS/SASS. Код извлекаем напрямую из PSD, попутно корректируя до PixelPerfect прямо в браузере. При сохранении SASS автоматически преобразуется в CSS и загружается на сервер. Необходимые картинки из PSD шаблона вырезаем в два клика, после чего они так-же автоматически загружаются на сервер. Как этого добиться менее чем за пол часа? Я расскажу вам!

Сразу хочу предупредить вас, если ваш опыт работы более нескольких лет и вы являетесь достаточно опытным front-end'ером, то ничего нового вы в этой статье не найдете. Она предназначена для людей, которые относительно недавно присоединились к GNU/Linux сообществу или только решили к нему примкнуть.

Краткое содержание


  1. Выбор браузера
  2. Установка расширений для Firefox
  3. Выбор текстового редактора
  4. Необходимые расширения для Sublime Text 3
  5. Дополнительные инструменты и оптимизация системы
Читать дальше →
Всего голосов 16: ↑9 и ↓7+2
Комментарии38

Разработка addon firefox, или ещё один скриншотер с помощью webExtensions и addon sdk

Время на прочтение6 мин
Количество просмотров5.8K
В этой статье мы рассмотрим разработку расширения для Firefox, с помощью addon sdk, а также разберём ключевые моменты разработки: установка sdk(jpm), инициализация проекта, тестирование, компиляция и публикация нашего расширения на addons.mozila.org, на примере всё того же скриншотера…

image

Должен сразу оговориться, что расширение поддерживается только linux системами и разработана на linux.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии12

Разработка расширения для firefox, или мой первый опыт, на примере скриншотера

Время на прочтение7 мин
Количество просмотров18K
После написания статьи Системные скрипты на php для linux, пишем скриншотер, у меня появилась идея «А почему бы, не написать расширение которое завязать на мой скрипт, с возможностью автоматической выгрузки на яндекс диск.»… Почитав документацию о разработке расширений я решил всё же начать писать.

image

Вот это маленькая кнопочка и скриншот на яндекс диске, результат прототипа расширения, написаного за пару часов. О процессе его создание под катом…
Поехали!
Всего голосов 34: ↑26 и ↓8+18
Комментарии32

Кэш, хэш и няш-меш

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

UPD0 (2016-07-19 23-31): судя по всему, первая половина моей статьи — успешно изобретённый велосипед. Спасибо хабравчанам за ссылку на спецификацию
Статья ценна не более, чем вольное описание уже придуманной технологии.


Предыстория


Июльский субботний вечер подходил к концу. Нарубив дров на шашлык, я повесил USB-модем на багету, скомандовал sudo wvdial, развернул браузер и обновил вкладку с открытым гитхабом. Вернее, попытался обновить. Скорость не радовала, и в итоге страница-то обновилась, но явно не хватало какого-то из стилевых файлов; и дело было не в блокировке, поскольку аналогичные проблемы я наблюдал и с другими сайтами, и зачастую они решались просто многократным обновлением страницы. Во всём был виноват перегруз 3G-сети.


Стоп! А как же кэш?

Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии34

Истории

Код Rust включен в Firefox 48

Время на прочтение3 мин
Количество просмотров32K
Компонент, написанный на Rust, впервые заменил компонент на C++ в браузере Firefox, и это только начало!

Mozilla любит Rust


Трудно поверить, что прошло почти семь лет с тех пор как Mozilla Research впервые начала спонсировать разработку Rust — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В то время это был не более чем амбициозный исследовательский эксперимент, вокруг которого образовалось небольшое, но преданное сообщество. Удивительно, что несмотря на долгую историю изобретений и открытий, Rust сохранил свой ключевые принципы. Изначально разработчики хотели создать безопасную альтернативу C++, повысить эффективность системного программирования, защитить критическое программное обеспечение от эксплоитов памяти, упростить работу с параллельными алгоритмами — вот почему Mozilla поддержала проект Rust и, в конечном счёте, начала использовать Rust в стабильной версии браузера.
Читать дальше →
Всего голосов 58: ↑51 и ↓7+44
Комментарии86

Собираем ваш первый WebAssembly-компонент

Время на прочтение6 мин
Количество просмотров29K
Когда я впервые услышал о технологии WebAssembly — она сразу показалось мне крутой вещью и мне сразу захотелось попробовать её в деле. От первого желания, до чего-то работающего мне, однако, пришлось потратить немало времени и порой испытать кое-какие разочарования. Для того, чтобы сохранить ваше время и ваши нервы, если вам захочется повторить тот же путь, и написана данная статья.

image
Предупреждение читателю

Эта статья написана 24-го июня 2016-го года. Поскольку WebAssembly очень молодая и динамично развивающаяся технология, со временем многие описанные в данной статье вещи устареют или полностью изменятся — учитывайте это.

А теперь поехали.

Что такое WebAssembly?

Официальная документация говорит следующее: «WebAssembly или wasm это новый портабельный, эффективный по размеру и скорости загрузки формат компиляции для веба». Эм-м-м-м… Что? Формат чего? Текстовый или бинарный? Да, это откровенно плохое описание. Так что убирайте уже ваши баззворд-бинго карточки и я, на основе моего опыта, дам своё определение:

«WebAssembly или wasm это спецификация байткода для написания производительных, браузеро-независимых компонентов для веба». Это определение, тоже, конечно, не вершина эпистолярного жанра, но я попробую его дополнить. WebAssembly позволяет повысить производительность с помощью использования статически типизированных переменных, которые обходятся на рантайме значительно дешевле динамических. WebAssembly разрабатывается W3C Community Group и планируется быть внедрённым во все основные браузеры. И с этого момента на стол выкладывается киллер-фича: вы сможете писать код веб-компонентов на любом языке программирования.

Теперь звучит лучше, неправда ли?
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии30

Спасём Firefox

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


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

Давным-давно было два браузера, которыми пользовались почти все: Netscape и Internet Explorer, связанные в смертельной битве за будущее Интернета. Они сильно разошлись друг от друга, чтобы склонить веб-издателей оптимизировать свои сайты каждый под свой браузер в надежде, что пользователи последуют за ними.

Затем произошёл перелом: открытый, некоммерческий браузер Mozilla выделился из Netscape и поставил перед собой другую задачу: служить не издателям, а самим пользователям. Mozilla по умолчанию блокировала всплывающие окна с рекламой, бич раннего интернета. Это был шаг, который не мог позволить себе ни один из основных браузеров, потому что издатели были уверены, что не выживут без такой рекламы, и любой браузер со встроенной блокировкой отвернул бы от себя издателей, что многое значило в конкурентной борьбе.
Читать дальше →
Всего голосов 68: ↑56 и ↓12+44
Комментарии167

Новый Firefox 46.0 выложен в свободный доступ на FTP Mozilla

Время на прочтение2 мин
Количество просмотров13K
imageМеньше суток назад Mozilla выложила на своем FTP-сервере 46.0 версию своего основного браузера Firefox. Установить браузер можно на основные популярные платформы: Win x86-x64, Linux x86-x64 и mac x86-x64. Пока на официальном сайте для скачивания доступна только 45 версия продукта.
Читать дальше →
Всего голосов 27: ↑13 и ↓14-1
Комментарии34

Project Tofino — новый браузер от Mozilla

Время на прочтение1 мин
Количество просмотров47K
image
Концепт дизайна и функционала нового браузера. Кликабельно

Компания Mozilla тихо, без лишнего шума, анонсировала в эту пятницу запуск нового проекта — Project Tofino в его собственном блоге на medium, который некоторые уже успели окрестить «убийцей Firefox».

Для подобного мнения есть все основания. Последние годы Firefox стремительно теряет свою долю на рынке, не выдерживая натиска Google Chrome. Project Tofino призван радикально изменить облик браузера от Mozilla и обновить его, тем самым положить начало «возвращению» утраченной доли рынка. Команда Tofino пока состоит всего из шести человек. Именно они и займутся проектированием и дизайном нового продукта компании.
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии177

Почему мы ненавидим уведомления на сайтах?

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


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

Но ведь в самом деле:

Лезут из всех щелей, пытаясь заставить нажать вас заветную кнопку. Возникают при каждом переходе на сайте. Вылезают в самые неудачные моменты и мешают вам жить. Разберем подробно, почему мы (а именно вы) не любим уведомления на сайтах.
Читать дальше →
Всего голосов 41: ↑28 и ↓13+15
Комментарии54

Автоматическое обновление расширений Firefox

Время на прочтение8 мин
Количество просмотров9.4K
Предлагаю вашему вниманию перевод статьи Automatic Firefox Extension Updates.

Статья старенькая, но вся информация актуальна и по сей день.


Разработчики расширений Firefox конечно знают, что при распространении расширений через официальный store вы бесплатно получаете возможность автоматически обновлять свои расширения. Но что делать, если мы хотим сами хостить свое расширение на своем сайте? Как нам самим реализовать поддержку автоматических обновлений?
Давайте разберемся
Всего голосов 23: ↑18 и ↓5+13
Комментарии17

Необычное свойство Push-уведомлений — время жизни

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


События проходят и теряют свою актуальность. Письмо, которое вы отправили человеку, сообщающее о новой акции не имеет смысла после конца акции. Как поступить? Пуш-уведомления умеют «умирать», когда в них больше нет необходимости.

TTL — (Time To Live) время жизни. Это важный термин в сети Интернет. Чаще всего он применяется к пакетам данных и означает количество «хопов», которые пакет будет «жить»

В рамках push-уведомлений TTL задает время жизни уведомления в секундах. Более того, если задать его равным 0 (в PushAll -1), то либо уведомление придет немеделенно, либо никогда. По сути, этот параметр задает сколько секунд уведомление будет ждать клиента, пока он присоединиться к пуш-серверу.

Читать дальше →
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Настройка Safebrowsing от Яндекс в Firefox

Время на прочтение4 мин
Количество просмотров13K
Небольшой дисклеймер.

Все ниже приведённое можно найти в версии Firefox которую раздаёт компания – установив эту самую версию или же вскрыв дистрибутив и вытащив файл distribution.ini. Этот файл так же доступен на GitHub, но не обновлялся более двух лет (на момент публикации) и сейчас приведённые там настройки не полные.

Я не совсем в курсе почему компания не обновляет эти данные в официальном репозитории Mozilla (возможно потому, что сборка и упаковка происходит "внутри" на мощностях компании или в Mozilla поменялась политика работы с партнёрами).

Надеюсь кому-то эта информация будет полезна и сэкономит пару минут. Так же прошу прощения за немного сумбурную подачу информации.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии6

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

Многопроцессный Firefox 44.b, оптимизация Electrolysis

Время на прочтение4 мин
Количество просмотров38K
Так уж сложилось, что Firefox использует однопроцессную модель, и реальность такова, что такой подход с учётом динамики развития сети и частичной связки с XUL вызывает, мягко говоря, много неудобств. Один процесс должен обрабатывать несколько потоков, что очень сильно сказывается на производительности браузера в целом. Отзывчивость Firefox оставляла желать лучшего, когда тот же Google Chrome прекрасно рендерил тяжёлые страницы, что никак не сказывалось на производительности других вкладок.

Такое положение вещей заставляло многих переходить на хром, а кто не хотел — искал пути решения в виде разного рода оптимизаций, которые по большому счёту из-за нелогичного подхода распределения потоков или банального желания настрочить что-то в блог просто усугубляли ситуацию. Теперь один процесс должен был не просто работать, а очень быстро работать! В конечном итоге и разработчики сами прекрасно понимали, что одно дело — мало памяти, другое — низкая скорость работы, которая в основном оправдана старыми связками с XUL. На деле: открываем в Firefox несколько вкладок сразу, скролим их и в момент загрузки видим, что все тормозит — ни о каком плавном серфинге речи быть не могло.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии50

Бенчмарк 32 и 64-битных версий браузеров: быстрее, сильнее, выше?

Время на прочтение2 мин
Количество просмотров61K
В наше время пользователь может использовать несколько отличных браузеров. У большинства есть 32 и 64-битные версии. У каждого из нас свое мнение о возможностях того либо иного браузера. Тем не менее, можно попробовать сравнить браузеры, проведя несколько тестов с каждой программой, как с 32-битной, так и с 64-битной версией.

Пользователь ресурса Ghacks и решил этим заняться. В качестве тестовой системы был выбран ПК с Intel Core i5-2500, 8 ГБ ОЗУ, 256 ГБ SSD, Nvidia GeForce GTX 960 и Windows 10.
Читать дальше →
Всего голосов 33: ↑21 и ↓12+9
Комментарии219

Push-уведомления в Firefox 44 и выше

Время на прочтение2 мин
Количество просмотров11K
image
Теперь в личном кабинете добавилось еще одно название браузера.

Релиз Firefox 44 намечен на 26 января, но мы уже подготовились и реализовали его поддержку, т.к. он теперь находится в beta-ветке. Мы опишем, как выглядят оповещения в Firefox и чем они отличаются от оповещений в других браузерах.

Кстати, выглядит приходящее оповещение в Linux вот так.

image

Замечу, что с предыдущей версии изменился внешний вид оповещения, теперь заголовок выше картинки. Странное решение. Выглядит как то не особо красиво. Но ничего не поделаешь.

Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии9

Zotero: оптимизация хранения и использования научной литературы

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


Не буду распространяться о преимуществах использования библиографических менеджеров. На дворе 2015 год. Тема не раз обсуждалась на Хабре.

Здесь подробно описываются все прелести использования библиографического менеджера на примере Mendeley (это один из главных конкурентов Zotero, сравнение позже в этой статье). Здесь любопытно представлена система Citavi. Вроде бы, все в ней неплохо, но платить за софт приличные деньги, когда есть прекрасные бесплатные аналоги — развлечение на любителя. Кстати, от души рекомендую почитать комментарии к этой статье — познавательнее иных опусов. Здесь автор библиографического менеджера SciRef предлагает получить программку бесплатно.

Существует огромное множество различных библиографических менеджеров (см. таблицу в подвале, источник).

Сравнительная таблица библиографических менеджеров



Разумеется, при таком многообразии глупо говорить об одном идеальном решении. В этой статье я хочу рассказать вам о решении, которым пользуюсь и которое устраивает меня почти полностью. Как видно из названия статьи, это Zotero.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии6

Уведомления на разных платформах, какие они бывают? Бонус на смарт-часах Moto 360

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


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

Мы расскажем о том, как выглядят различные типы уведомлений на Chrome, Android, Safari, Firefox, iOS. Какие мы используем, какие можно использовать и не много о том, как оно работает.

Кстати попробовать практически все типы можно на нашем сайте.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии7

Альфа-версия SocketPush — универсальные уведомления для всех браузеров + 3 миллиона бесплатных уведомлений

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

Мы обнаружили, что ряд браузеров вообще не имеет в своём арсенале встроенный GCM-сервис. Среди них, к примеру, Опера, Вивальди, Firefox. В Safari есть APNS, но мы реализуем работу через него чуть позже.

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

Нам необоходимо небольшое нагрузочное тестирование, а также проверить все ли уведомления приходят нужным адресатам. Данные уведомления проверены мною в chrome и firefox. Необходима проверка в edge, ie (хотя сомневаюсь, что будет работать) и конечно safari.

Прежде всего это удобный метод включить уведомления «на время», а потом выключить их закрытием вкладки. В отличии от других способов, данный метод не работает при закрытой вкладке или окне браузера. По поводу включения, и немного о архитектуре — подробнее под катом.
Читать дальше →
Всего голосов 21: ↑14 и ↓7+7
Комментарии5

Многострочный textarea placeholder, который работает в Firefox

Время на прочтение2 мин
Количество просмотров14K
image
Понадобилось сделать многострочный placeholder в textarea. Выяснилось, что Firefox, в отличие от всех других современных браузеров, не поддерживает перенос строки в элементе placeholder. Хотя делает он это в соответствии с W3C спецификацией — радости это не добавляет.

Все нагугленные решения не понравились. Ставить JQuery-плагины только ради переноса строк в Firefox не хотелось. Решил попробовать сделать свой placeholder во вспомогательном блоке. В итоге получилось вот такое простое решение, которое работает во всех браузерах и предоставляет широкие возможности для кастомизации placeholder.

Стандартное поведение реализуется с помощью jQuery (используется у меня в проекте, при необходимости легко заменяется чистым JS). Если вам нравится скрывать placeholder, когда поле попадает в фокус, то можно обойтись только CSS.

Посмотреть пример на jsfiddle.

UPD
Спасибо gwer за подсказки.

Изменения и уточнения:
  • на чистом CSS работать не будет, без JS не обойтись
  • в JS нужно использовать событие 'input'. Тогда placeholder исчезает и при вставке из буфера обмена через контекстное меню.

Показать HTML, CSS, JS
Всего голосов 8: ↑4 и ↓40
Комментарии15