Состоялся релиз web-браузера Firefox 59, а также мобильной версии Firefox 59 для платформы Android. В ближайшие часы ожидается обновление ветки с длительным сроком поддержки 52.7.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 60 (ESR), релиз которой намечен на 9 мая.
Основные новшества:

  • Продолжена работа по оптимизации производительности:  Ускорена загрузка содержимого стартовой страницы. Переработан механизм кэширования - если определяется, что дисковый ввод/вывод на текущей системе слишком медленный, то параллельно с обращением к кэшу на диске отправляется сетевой запрос и используется первый полученный результат. В ситуации наличия медленных дисков и высокоскоростного сетевого соединения данный подход позволяет ускорить загрузку страниц. На платформе macOS включена отрисовка в отдельном потоке (OMTP, Off-Main-Thread Painting), которая ранее уже была включена для Linux и Windows;
  • На стартовой странице появилась возможность перегруппировки избранных сайтов через перетаскивание пиктограмм мышью (Drag-and-drop), а также предоставлены средства для гибкой настройки выводимых блоков и их оформления;

    0_1520960286.png

  • Во встроенном инструменте для создания скриншотов появился простейший редактор, предоставляющий возможности кадрирования сохранённых изображений (изменения видимой области), рисования произвольных линий кистью и выделения областей;

    0_1520961269.png

  • В настройки (about:preferences) в секцию "Безопасность и Приватность" добавлена опция для временного блокирования вывода сайтами запросов на доставку уведомлений, а также на запросов доступа к микрофону, камере и местоположению. Выставление данной опции не влияет на явно добавленные пользователем разрешения для заслуживающих доверия сайтов;

    0_1520963052.png

  • В приватном режиме при обращении к внешнему ресурсу в заголовке HTTP Referer теперь передаётся только имя хоста, а путь и все параметры запроса вырезаются. Т.е. вместо "Referer: https://www.example.com/путь/?аргументы" будет передан "Referer: https://www.example.com/". Подобное поведение поможет предотвратить передачу лишних данных о пользователе рекламным сетям и прочим внешним ресурсам;
  • Прекращена поддержка сборки с использованием библиотеки GTK+ 2. Для платформы GNU/Linux теперь можно использовать только GTK+ 3;
  • Расширен API WebExtensions: улучшена поддержка децентрализованных протоколов (Secure Scuttlebutt, DATproject и IPFS), добавлена возможность динамической регистрации скриптов обработки контента, реализованы новые свойства для тем оформления, управления вкладками и доступом к настройкам, добавлены API  pageAction, browserAction и SidebarAction.
  • Улучшены возможности, связанные с организацией коммуникаций в режиме реального времени (WebRTC): реализован интерфейс  RTCRtpTransceiver, позволяющий создавать приёмопередатчики, использующие API RTCPeerConnection (RTCPeerConnection.addTransceiver() ) и предоставляющие более тонкий контроль за вызовами. Добавлена серия методов, необходимых для поддержки хорошо масштабируемых телеконференций;
  • В реализации формата WebVTT (Web Video Text Tracks, используется для вывода текста поверх видео) включена по умолчанию поддержка регионов (секция REGION, определяющая область вывода текста);
  • Добавлена поддержка API PointerEvents, позволяющего контролировать в одном обработчике все события, связанные с перемещением указателя. Добавлены отдельные устройства для управления указателем ввода для мыши, пера и сенсорного экрана;
  • Для HTML-элемента  textarea добавлена поддержка атрибута autocomplete, который позволяет управлять включением или выключением автозаполнения форм;
  • Добавлено новое CSS-свойство overscroll-behavior, позволяющее изменить поведение при достижении конца области прокрутки;
  • Реализована поддержка липкого позиционирования CSS - position:sticky, при которой можно определить, чтобы при скроллинге часть блока оставалась видимой, пока сам блок полностью не выйдет за пределы экрана. Например, можно легко сделать так, чтобы заголовок с пояснениями по столбцам для длинной таблицы был виден, пока видна хоть одна ячейка таблицы, не прибегая к усложнениям в виде перехвата событий прокрутки и переключения позиции с "relative" на "fixed";
  • Добавлено CSS-свойство font-optical-sizing;
  • Для вычисления задаваемых через CSS значений цветов и значений  media query  теперь можно использовать функцию calc();
  • Прекращена поддержка открытия в основной странице URL "data:", содержимое которых может быть использовано для отображения в адресной строке информации, вводящей пользователя в заблуждение (фишинга). Отныне не будет работать открытие ссылок "data:", которые включают в себя непосредственно данные страницы, через JavaScript-методы window.open("data:...") и window.location = "data:...", а также клики на ссылки с ‹a href="data:..."› и редиректы через meta refresh и код состояния 302. При этом останутся работоспособны такие способы как явное копирование блока "data:" в адресную строку через буфер обмена и открытие блоков с MIME-типами "plain/text", "data:application/pdf", "data:application/json" и "image/*" (за исключением "data:image/svg+xml");
  • Попытка загрузки изображений с внешних областей, требующих аутентификации, теперь не будет приводить к выводу диалога HTTP-аутентификации;
  • Передаваемые при HTTP-аутентификации значения имени пользователя и пароля теперь передаются в кодировке utf-8 вместо ISO-8859-1, что соответствует поведению других браузеров;
  • Расширены инструменты для web-разработчиков: В интерфейсе инспектирования хранилищ информация о  Cookie теперь включает столбец со значением флага sameSite. В инструменте Rulers в верхнем правом углу обеспечено отображение текущих размеров области просмотра. В инструменте Responsive Design Mode добавлена возможность установки разрешения экрана при помощи клавиш управления курсором. Во вкладке с HTTP-заголовками в Network Monitor реализовано отображение кодов ответа. Во вкладке Response интерфейса сетевого мониторинга обеспечен показ эскизов результатов отрисовки загруженного HTML-контента.

    response-html-preview.png"

  • В версии для Android добавлена поддержка воспроизведения потокового видео с использованием протокола HLS (HTTP Live Streaming). Удалена спецстраница "about:", вместо которой следует использовать секцию меню  "About Firefox". Обеспечена возможность регистрации Firefox как Assist App для организации поиска через Firefox длительным нажатием на клавишу Home. Отображение видео на весь экран теперь всегда производится в ландшафтном режиме.

Кроме новшеств и исправления ошибок в Firefox 59 закрыты 18 уведомлений об уязвимостях. В двух уведомлениях, охватывающих 21 ошибку (под CVE-2018-5126 сведено 19 ошибок и под CVE-2018-5125 сведено 12 ошибок) устранены  критические проблемы, которые потенциально могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц.

Загрузить:

    Русская версия:
        ico-win.png Windows (32-bit) (установка через Интернет)
        ico-win.png Windows (32-bit) (установка в автономном режиме)
        ico-win.png Windows (64-bit) (установка в автономном режиме)
        ico-osx-uni.png Mac OS X (32-bit/64-bit)
        ico-tux.png Linux (32-bit)
        ico-tux.png Linux (64-bit)

    Английская версия:
        ico-win.png Windows (32-bit) (установка через Интернет)
        ico-win.png Windows (32-bit) (установка в автономном режиме)
        ico-win.png Windows (64-bit) (установка в автономном режиме)
        ico-osx-uni.png Mac OS X (32-bit/64-bit)
        ico-tux.png Linux (32-bit)
        ico-tux.png Linux (64-bit)

   Другие языки
   
   android.png Android (с Google Play)

        android.png Android (ARMv7, 4.1 Jelly Bean и выше) (мультиязычная версия с сайта Mozilla)
        android.png Android (x86, 4.1 Jelly Bean и выше) (мультиязычная версия с сайта Mozilla)
        android.png Android (ARMv7, 4.1 Jelly Bean и выше) (английская версия с сайта Mozilla)
        android.png Android (x86, 4.1 Jelly Bean и выше) (английская версия с сайта Mozilla)

   Другие языки

Что нового в Firefox 59 для разработчиков
Примечания к выпуску для Windows, Mac and Linux
Примечания к выпуску для Android

Новость взята с сайта opennet.ru

Когда-нибудь браузер треснет и лопнет по швам от инструментов для web-разработчиков.

Coroner
Они вроде и не мешают ни производительности, ни чему - если не пользоваться ими..)
Единственное могут иметь психологический эффект раздражения присутствием. Что то вроде - есть куча всего мне не нужного, значит тормозит браузер. Этакое нарушение эстетичности со стороны разработчиков по отношению ко мне любимому. :angel:
Да и., что то я не пойму, куда от мобильной версии четверть веса приложения откусили. :rolleyes:

FMRUser пишет

Единственное могут иметь психологический эффект раздражения присутствием. Что то вроде - есть куча всего мне не нужного, значит тормозит браузер.

Не знаю. :) Но когда люди от Симанки все куски отгрызают — они утверждают что всё работает быстрее и памяти меньше кушает.
Насчёт производительности и прочего — писали что и на Firefox это отгрызание действует положительно, сам не пробовал, как там и чего отгрызали — на совести авторов сборок. Даже не знаю возможно ли это вообще.

Не то что раздражает, просто когда видишь изменения в давно ожидаемой версии браузера, который по сути ещё недоделанный, а там значительные изменения лишь в инструментах разработки — невольно задумываешься: чего они там делают? Например может взяться и API WebExtensions домучать, или писатели дополнений так и будут по одной функции раз в два месяца получать?

FMRUser пишет

Да и., что то я не пойму, куда от мобильной версии четверть веса приложения откусили.

Задумались об оптимизации, может быть? Или кто-то случайно нашёл огромную кучу мусора.
Или что-то забыли. :D

TabMixPlus окончательно перестал работать. По крайней мере, не вызывается окно настроек, и не закрываются вкладки по клику на крестике. Откатился на 58.0.2 и запретил обновления. :angry:

Всё стало на английском (русский языковый пакет установлен) в арчлинукс. Проблема арча или у кого ещё то же самое?
Сам отвечаю) Все языковые пакеты в репозитории помечены устаревшими. Значит чего-то нашли..

Вместо 300мб на 58.02 с одной открытой домашней страницей, теперь подъедает теперь 570мб памяти. Видимо, нужно на чистую переустановить?

dreamkz пишет

Видимо, нужно на чистую переустановить?

А много ли дополнений установлено? 570мб это многовато.
Надо попробовать чистый профиль и посмотреть сколько сожрёт. Прикинуть на глаз — есть ли разница с 58.

Размер шрифта увеличился в about:addons:

скрытый текст
c6bf82388ff0.png

После обновления Firefox с версии 58.2 до 59
У меня нормально не отображаются страницы любого поисковика (и любая веб страница)
вписанного как домашняя страница.
Все они выводяться на экран в виде фрагментов текста и изображения
а текст-ссылка отображается когда на нее наводится курсор мышки.

Если вписать их адрес в новой вкладке все отображается нормально
закладки так же отображаются нормально

ofizer пишет

Размер шрифта увеличился в about:addons:
скрытый текст

Банда идиотов :) Я только позавчера её настроил (держу новую версию, кастомизирую, ищу экстеншены, так-то на 52й :) ) Ну, ниче.. Пару строк в юзерхроме изменил..

Foma пишет

После обновления Firefox с версии 58.2 до 59 У меня нормально не отображаются страницы любого поисковика (и любая веб страница)вписанного как домашняя страница. Все они выводяться на экран в виде фрагментов текста и изображенияа текст-ссылка отображается когда на нее наводится курсор мышки.Если вписать их адрес в новой вкладке все отображается нормальнозакладки так же отображаются нормально

Такая же проблема. Не нашла как её решить. Откатилась до 58.2 версии, стало всё нормально. Запретила автоматическое обновление.

Foma
Irishka

Данная проблема возникла у меня в ноябре 2017, когда 59 версия была еще Nightly (подробнее в теме Тестирование нестабильных сборок Firefox (Nightly))
Оказалось, она затронула тех, у кого отключен ClearType в системе. Второй вариант "решения" - отключить аппаратное ускорение.

Nerazzurro пишет

FomaIrishkaДанная проблема возникла у меня в ноябре 2017, когда 59 версия была еще Nightly (подробнее в теме Тестирование нестабильных сборок Firefox (Nightly))Оказалось, она затронула тех, у кого отключен ClearType в системе. Второй вариант "решения" - отключить аппаратное ускорение.

И правда, у меня ClearType отключён т.к. мой Windows 7 работает в режиме наивысшего быстродействия, а в этом режиме ClearType отключается  автоматически.
Спасибо :)

Coroner пишет

dreamkz пишет: Видимо, нужно на чистую переустановить?А много ли дополнений установлено? 570мб это многовато.Надо попробовать чистый профиль и посмотреть сколько сожрёт. Прикинуть на глаз — есть ли разница с 58.

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

dreamkz пишет

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

Я у себя разницы не вижу. Но у меня один процесс лишь, возможно что какие-то изменения меня и вовсе прошли стороной. :D
Единственное это неработоспособность некоторых кнопок CB (видимо из-за "data:text/css", "data:uri").

f00fc7c8 пишет

Пару строк в юзерхроме изменил..

Не подскажете эту пару строк?

Nerazzurro пишет

Foma
Irishka

Данная проблема возникла у меня в ноябре 2017, когда 59 версия была еще Nightly (подробнее в теме Тестирование нестабильных сборок Firefox (Nightly))
Оказалось, она затронула тех, у кого отключен ClearType в системе. Второй вариант "решения" - отключить аппаратное ускорение.

Спасибо включил ClearType все работает, а ведь началось и на Firefox 58.2
редко но слетали иные страници.

Народ, чего делать-то? Если на 58 старые расширения еще как-то работали, то на 59 вообще мрак. А на 60 видимо все кончится.
ТМР еще можно стилями как-то отработать. А СВ? Я к кнопкам привык.
Можно, конечно, на 58 посидеть годик, но это изначально тупиковый путь.
Кнопки это ведь скрипты в основном. Можно ли их как-то через greasemonkey / tampermonkey подключить?
Многие кнопки работают "в фоне" (Autocopy или Context Search, например), т.е. не требуют нажатия.
Можно ли такие кнопки конвертировать или через js+css как-то замутить?
В "Дополнительной панели" от Vitaliy V. кнопки работают же без СВ.

Coroner пишет

Не подскажете эту пару строк?

Вот весь мой кусок про about:addons (последний кусочек, про версию, тупо украден у Ариса (ссылка есть), как её (версию) сейчас вытянуть не нашёл. Она появляется только в тултипе при наведении на аддонс штатно, ну и хранится только для этого аддонса. JS надо ваять. И, пардон, это юзерконтент, конечно.

скрытый текст

Выделить код

Код:

/* Compact add-ons list */
@-moz-document url(chrome://mozapps/content/extensions/extensions.xul), url(about:addons) {
 .main-content {
  padding-bottom: 0px !important; padding-left: 0px !important; font-size: 12px !important;
 }

 #headered-views-content > #updates-view > #updates-list > scrollbox,
 #headered-views-content > #list-view > #addon-list > scrollbox {
  padding-left: 0px !important; padding-right: 0px !important;
 }

 #updates-list,#addon-list {
  border-top: 2px solid menu !important;
 }

 #categories {
  max-width: 70px !important;
 }

 #categories >.category {
  margin-left: 0px !important;margin-right: 0px !important;
 }

 #categories, #categories > .category, #categories > .category[selected=true],
 #updates-list .addon-view[selected=true], #list-view .addon-view[selected=true] {
  background-color: menu !important;
 }

 #updates-list .addon-view, #list-view .addon-view, #categories > .category {
  border-left: 0px !important; padding-left: 11px !important;
 }

 #addons-page .category-name,
 #updates-list .addon-view .warning, #list-view .addon-view .warning,
 #updates-list .description-outer-container, #list-view .description-outer-container {
  display: none !important;
 }

 #updates-list .addon-view[notification=warning], #list-view .addon-view[notification=warning] {
  background-color: #fffff0 !important;
 }

 #updates-list .addon-view *, #list-view .addon-view * {
  -moz-box-orient: horizontal !important;
  -moz-box-align: center !important;
  vertical-align: middle !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-right: 0 !important;
  white-space: nowrap !important;
 }

 #updates-list .addon-view .date-updated {
  color: green;
 }

 #updates-view>.view-header {
  border-bottom-width: 0px !important;
 }

 #updates-list .content-container, #list-view :-moz-any(.error, .pending, .warning) {
  margin-left: 11px !important;
 }

 #updates-list .content-container, #list-view :-moz-any(.error, .pending, .warning) >  label {
  margin-left: 10px !important;
 }

 #updates-list .name-container *, #list-view .name-container * {
  font-size: 14px !important;
 }

 #updates-list .advancedinfo-container, #list-view .advancedinfo-container {
  -moz-box-pack: end !important; margin-left: 10px !important;
 }

 #addons-page .category {
  margin-right: 10px !important;
 }

 #updates-list .icon, #list-view .icon,
 #updates-list .icon-container #list-view .icon-container {
  width: 24px !important; height: 24px !important;
 }

 #list-view:-moz-any([type]) .addon:first-child     {counter-reset: enabled; counter-reset: disabled;}
 #list-view:-moz-any([type]) .addon[active="true"]  {counter-increment: enabled;}
 #list-view:-moz-any([type]) .addon[active="false"] {counter-increment: disabled;}
 #list-view:-moz-any([type]) #addon-list::after {
  content: counter(enabled)" enabled, "counter(disabled)" disabled";
  background-color: #e0e0ff;
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 1px;
  padding-bottom: 1px;
  position: fixed;
  font-weight: bold;
  top: 35px;
  margin-left: 10px;
  font-size: 110%;
 }

 .addon[selected="true"]::after {
  content: attr(value);
  position: fixed;
  top: 55px;
  margin-left: -5px;
  }
}

/* Firefox 57+ userChrome.css tweaks ****************************************************/
/* code mostly taken from 'Classic Theme Restorer' & 'Classic Toolbar Buttons' add-ons **/
/* by Aris (aris-addons@gmx.net)*********************************************************/
/* Github: https://github.com/aris-t2/customcssforfx ************************************/
/****************************************************************************************/

/* Add-on version */

@-moz-document url-prefix(chrome://mozapps/content/extensions/extensions.xul), url-prefix(about:addons) {
/*  addonversion.xml contains a copy of the 'addon-generic' binding Mozilla removed from Fx40+ builds! */
    
 .addon:not([pending="uninstall"])[status="installed"] {
  -moz-binding: url("./myAddOn57.xml#addon-generic") !important;
  }

 .addon:not([pending="uninstall"])[status="installing"] .name-container .version,
 .addon:not([pending="uninstall"])[status="installed"] .name-container .version {
  visibility: visible !important;
  }
    
 .addon:not([pending="uninstall"])[status="installing"] {
  -moz-binding: url("./myAddOn57.xml#addon-installing");
  }
}

Irishka пишет

И правда, у меня ClearType отключён т.к. мой Windows 7 работает в режиме наивысшего быстродействия, а в этом режиме ClearType отключается  автоматически

За N лет пользования им (считая XP), считаю, что без него - издевательство над глазами...


Ultima2m пишет

ТМР еще можно стилями как-то отработать.

Я ещё не видел ни одного стиля multirow, который был бы безглючен. Проверка номер один - перенести мышью таб на более высокую строку.

f00fc7c8, благодарю.
Про стиль Ариса — я тоже никак XML подцепить не могу, как не менял адрес в -moz-binding: url("./myAddOn57.xml#addon-generic"), да и сам файл куда только не совал.
Более старое решение (https://forum.mozilla-russia.org/viewto … 51#p748251) тоже не работает.
Но версию хоть при наведении видно — и ладно. :)
P. S. Странная забота о безопасности пользователей — прятать номера версий. Давайте уж тогда и урл прятать, нечего пользователей пугать закорючками, название сайта туда выводить надо. И красивше будет. :)

Более старое решение (https://forum.mozilla-russia.org/viewto … 51#p748251) тоже не работает.

Хм, у меня в 60 версии работает (как работало и в 57-59). Как вариант, возможно у вас не закрыты где-нибудь кавычки например. Попробуйте разместить этот код в самом начале userContent.css. Или сделайте для проверки чистый файл только с этим кодом и кодировкой utf-8.

Northtech пишет

Или сделайте для проверки чистый файл только с этим кодом и кодировкой utf-8.

Пересохранил в utf-8 (почему то 1251 было, хотя вроде следил за этим).
Всё равно никак. Все стили повыключал. Если только предположить что из-за дополнений или костыля для проверки цифровых подписей?

Вам верю, поэтому на новом профиле пробовать не буду, попробую с действующим разобраться.

Coroner пишет

Про стиль Ариса — я тоже никак XML подцепить не могу, как не менял адрес в -moz-binding: url("./myAddOn57.xml#addon-generic"), да и сам файл куда только не совал.

Я его переименовал

скрытый текст

Выделить код

Код:

<?xml version="1.0"?>

<!DOCTYPE page [
<!ENTITY % extensionsDTD SYSTEM "chrome://mozapps/locale/extensions/extensions.dtd">
%extensionsDTD;
]>

<!-- import-globals-from extensions.js -->

<bindings id="addonBindings"
          xmlns="http://www.mozilla.org/xbl"
          xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
          xmlns:xbl="http://www.mozilla.org/xbl">

  <!-- Addon - generic - A normal addon item, or an update to one -->
  <binding id="addon-generic"
           extends="chrome://mozapps/content/extensions/extensions.xml#addon-generic">
    <content>
      <xul:hbox anonid="warning-container"
                class="warning">
        <xul:image class="warning-icon"/>
        <xul:label anonid="warning" flex="1"/>
        <xul:label anonid="warning-link" class="text-link"/>
        <xul:button anonid="warning-btn" class="button-link" hidden="true"/>
        <xul:spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
      </xul:hbox>
      <xul:hbox anonid="error-container"
                class="error">
        <xul:image class="error-icon"/>
        <xul:label anonid="error" flex="1"/>
        <xul:label anonid="error-link" class="text-link" hidden="true"/>
        <xul:spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
      </xul:hbox>
      <xul:hbox anonid="pending-container"
                class="pending">
        <xul:image class="pending-icon"/>
        <xul:label anonid="pending" flex="1"/>
        <xul:button anonid="restart-btn" class="button-link"
                    label="&addon.restartNow.label;"
                    oncommand="document.getBindingParent(this).restart();"/>
        <xul:button anonid="undo-btn" class="button-link"
                    label="&addon.undoAction.label;"
                    tooltipText="&addon.undoAction.tooltip;"
                    oncommand="document.getBindingParent(this).undo();"/>
        <xul:spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
      </xul:hbox>

      <xul:hbox class="content-container" align="center">
        <xul:vbox class="icon-container">
          <xul:image anonid="icon" class="icon"/>
        </xul:vbox>
        <xul:vbox class="content-inner-container" flex="1">
          <xul:hbox class="basicinfo-container">
              <xul:hbox class="name-container">
                <xul:label anonid="name" class="name" crop="end" flex="1"
                           tooltip="addonitem-tooltip" xbl:inherits="value=name"/>
                <xul:label anonid="version" class="version"/>                     
                <xul:label anonid="legacy" class="legacy-warning text-link" value="&addon.legacy.label;"/>
                <xul:label class="disabled-postfix" value="&addon.disabled.postfix;"/>
                <xul:label class="update-postfix" value="&addon.update.postfix;"/>
                <xul:spacer flex="5000"/> <!-- Necessary to make the name crop -->
              </xul:hbox>
            <xul:label anonid="date-updated" class="date-updated"
                       unknown="&addon.unknownDate;"/>
          </xul:hbox>
          <xul:hbox class="experiment-container">
            <svg width="6" height="6" viewBox="0 0 6 6" version="1.1"
                 xmlns="http://www.w3.org/2000/svg"
                 class="experiment-bullet-container">
              <circle cx="3" cy="3" r="3" class="experiment-bullet"/>
            </svg>
            <xul:label anonid="experiment-state" class="experiment-state"/>
            <xul:label anonid="experiment-time" class="experiment-time"/>
          </xul:hbox>

          <xul:hbox class="advancedinfo-container" flex="1">
            <xul:vbox class="description-outer-container" flex="1">
              <xul:hbox class="description-container">
                <xul:label anonid="description" class="description" crop="end" flex="1"/>
                <xul:button anonid="details-btn" class="details button-link"
                            label="&addon.details.label;"
                            tooltiptext="&addon.details.tooltip;"
                            oncommand="document.getBindingParent(this).showInDetailView();"/>
                <xul:spacer flex="5000"/> <!-- Necessary to make the description crop -->
              </xul:hbox>
              <xul:vbox anonid="relnotes-container" class="relnotes-container">
                <xul:label class="relnotes-header" value="&addon.releaseNotes.label;"/>
                <xul:label anonid="relnotes-loading" value="&addon.loadingReleaseNotes.label;"/>
                <xul:label anonid="relnotes-error" hidden="true"
                           value="&addon.errorLoadingReleaseNotes.label;"/>
                <xul:vbox anonid="relnotes" class="relnotes"/>
              </xul:vbox>
              <xul:hbox class="relnotes-toggle-container">
                <xul:button anonid="relnotes-toggle-btn" class="relnotes-toggle"
                            hidden="true" label="&cmd.showReleaseNotes.label;"
                            tooltiptext="&cmd.showReleaseNotes.tooltip;"
                            showlabel="&cmd.showReleaseNotes.label;"
                            showtooltip="&cmd.showReleaseNotes.tooltip;"
                            hidelabel="&cmd.hideReleaseNotes.label;"
                            hidetooltip="&cmd.hideReleaseNotes.tooltip;"
                            oncommand="document.getBindingParent(this).toggleReleaseNotes();"/>
              </xul:hbox>
            </xul:vbox>
          </xul:hbox>
        </xul:vbox>
        <xul:vbox class="status-control-wrapper">
          <xul:hbox class="status-container">
            <xul:hbox anonid="checking-update" hidden="true">
              <xul:image class="spinner"/>
              <xul:label value="&addon.checkingForUpdates.label;"/>
            </xul:hbox>
            <xul:vbox anonid="update-available" class="update-available"
                      hidden="true">
              <xul:checkbox anonid="include-update" class="include-update"
                            label="&addon.includeUpdate.label;" checked="true"
                            oncommand="document.getBindingParent(this).onIncludeUpdateChanged();"/>
              <xul:hbox class="update-info-container">
                <xul:label class="update-available-notice"
                           value="&addon.updateAvailable.label;"/>
                <xul:button anonid="update-btn" class="addon-control update"
                            label="&addon.updateNow.label;"
                            tooltiptext="&addon.updateNow.tooltip;"
                            oncommand="document.getBindingParent(this).upgrade();"/>
              </xul:hbox>
            </xul:vbox>
            <xul:hbox anonid="install-status" class="install-status"
                      hidden="true"/>
          </xul:hbox>
          <xul:hbox anonid="control-container" class="control-container">
            <xul:button anonid="preferences-btn"
                        class="addon-control preferences"
                        label="&cmd.showPreferencesWin.label;"
                        tooltiptext="&cmd.showPreferencesWin.tooltip;"
                        oncommand="document.getBindingParent(this).showPreferences();"/>
            <xul:button anonid="enable-btn"  class="addon-control enable"
                        label="&cmd.enableAddon.label;"
                        oncommand="document.getBindingParent(this).userDisabled = false;"/>
            <xul:button anonid="disable-btn" class="addon-control disable"
                        label="&cmd.disableAddon.label;"
                        oncommand="document.getBindingParent(this).userDisabled = true;"/>
            <xul:button anonid="replacement-btn" class="addon-control replacement"
                        label="&cmd.findReplacement.label;"
                        oncommand="document.getBindingParent(this).findReplacement();"/>
            <xul:button anonid="remove-btn" class="addon-control remove"
                        label="&cmd.uninstallAddon.label;"
                        oncommand="document.getBindingParent(this).uninstall();"/>
            <xul:menulist anonid="state-menulist"
                          class="addon-control state"
                          tooltiptext="&cmd.stateMenu.tooltip;">
              <xul:menupopup>
                <xul:menuitem anonid="ask-to-activate-menuitem"
                              class="addon-control"
                              label="&cmd.askToActivate.label;"
                              tooltiptext="&cmd.askToActivate.tooltip;"
                              oncommand="document.getBindingParent(this).userDisabled = AddonManager.STATE_ASK_TO_ACTIVATE;"/>
                <xul:menuitem anonid="always-activate-menuitem"
                              class="addon-control"
                              label="&cmd.alwaysActivate.label;"
                              tooltiptext="&cmd.alwaysActivate.tooltip;"
                              oncommand="document.getBindingParent(this).userDisabled = false;"/>
                <xul:menuitem anonid="never-activate-menuitem"
                              class="addon-control"
                              label="&cmd.neverActivate.label;"
                              tooltiptext="&cmd.neverActivate.tooltip;"
                              oncommand="document.getBindingParent(this).userDisabled = true;"/>
              </xul:menupopup>
            </xul:menulist>
          </xul:hbox>
        </xul:vbox>
      </xul:hbox>
    </content>

    <implementation>

      <field name="_version">
        document.getAnonymousElementByAttribute(this, "anonid", "version");
      </field> 

      <method name="_initWithAddon">
        <parameter name="aAddon"/>
        <body><![CDATA[
          this.mAddon = aAddon;

          this._installStatus.mAddon = this.mAddon;
          this._updateDates();
          this._updateState();

          this.setAttribute("name", aAddon.name);

          var iconURL = AddonManager.getPreferredIconURL(aAddon, 48, window);
          if (iconURL)
            this._icon.src = iconURL;
          else
            this._icon.src = "";

          if (shouldShowVersionNumber(this.mAddon))
            this._version.value = this.mAddon.version;
          else
            this._version.hidden = true;
            
          if (this.mAddon.description)
            this._description.value = this.mAddon.description;
          else
            this._description.hidden = true;

          let legacyWarning = legacyExtensionsEnabled && !this.mAddon.install &&
            isLegacyExtension(this.mAddon);
          this.setAttribute("legacy", legacyWarning);
          document.getAnonymousElementByAttribute(this, "anonid", "legacy").href = SUPPORT_URL + "webextensions";

          if (!("applyBackgroundUpdates" in this.mAddon) ||
              (this.mAddon.applyBackgroundUpdates == AddonManager.AUTOUPDATE_DISABLE ||
               (this.mAddon.applyBackgroundUpdates == AddonManager.AUTOUPDATE_DEFAULT &&
                !AddonManager.autoUpdateDefault))) {
            AddonManager.getAllInstalls(aInstallsList => {
              // This can return after the binding has been destroyed,
              // so try to detect that and return early
              if (!("onNewInstall" in this))
                return;
              for (let install of aInstallsList) {
                if (install.existingAddon &&
                    install.existingAddon.id == this.mAddon.id &&
                    install.state == AddonManager.STATE_AVAILABLE) {
                  this.onNewInstall(install);
                  this.onIncludeUpdateChanged();
                }
              }
            });
          }
        ]]></body>
      </method>
      
      <method name="onNewInstall">
        <parameter name="aInstall"/>
        <body><![CDATA[
          if (this.mAddon.applyBackgroundUpdates == AddonManager.AUTOUPDATE_ENABLE)
            return;
          if (this.mAddon.applyBackgroundUpdates == AddonManager.AUTOUPDATE_DEFAULT &&
              AddonManager.autoUpdateDefault)
            return;

          this.mManualUpdate = aInstall;
          this._showStatus("update-available");
          this._updateUpgradeInfo();
        ]]></body>
      </method>

      <method name="_updateUpgradeInfo">
        <body><![CDATA[
          // Only update the version string if we're displaying the upgrade info
          if (this.hasAttribute("upgrade") && shouldShowVersionNumber(this.mAddon))
            this._version.value = this.mManualUpdate.version;
        ]]></body>
      </method>
      
    </implementation>

  </binding>

  <!-- Addon - installing - an addon item that is currently being installed -->
  <binding id="addon-installing"
           extends="chrome://mozapps/content/extensions/extensions.xml#addon-installing">
    <content>
      <xul:hbox anonid="warning-container" class="warning">
        <xul:image class="warning-icon"/>
        <xul:label anonid="warning" flex="1"/>
        <xul:button anonid="warning-link" class="button-link"
                   oncommand="document.getBindingParent(this).retryInstall();"/>
        <xul:spacer flex="5000"/> <!-- Necessary to allow the message to wrap -->
      </xul:hbox>
      <xul:hbox class="content-container">
        <xul:vbox class="icon-outer-container">
          <xul:vbox class="icon-container">
            <xul:image anonid="icon" class="icon"/>
          </xul:vbox>
        </xul:vbox>
        <xul:vbox class="fade name-outer-container" flex="1">
          <xul:hbox class="name-container">
            <xul:label anonid="name" class="name" crop="end" tooltip="addonitem-tooltip"/>
            <xul:label anonid="version" class="version" hidden="true"/>
          </xul:hbox>
        </xul:vbox>
        <xul:vbox class="install-status-container">
          <xul:hbox anonid="install-status" class="install-status"/>
        </xul:vbox>
      </xul:hbox>
    </content>

    <implementation>

      <field name="_version">
        document.getAnonymousElementByAttribute(this, "anonid", "version");
      </field>

      <method name="refreshInfo">
        <body><![CDATA[
          this.mAddon = this.mAddon || this.mInstall.addon;
          if (this.mAddon) {
            this._icon.src = this.mAddon.iconURL ||
                             (this.mInstall ? this.mInstall.iconURL : "");
            this._name.value = this.mAddon.name;
            
            if (this.mAddon.version) {
              this._version.value = this.mAddon.version;
              this._version.hidden = false;
            } else {
              this._version.hidden = true;
            }

          } else {
            this._icon.src = this.mInstall.iconURL;
            // AddonInstall.name isn't always available - fallback to filename
            if (this.mInstall.name) {
              this._name.value = this.mInstall.name;
            } else if (this.mInstall.sourceURI) {
              var url = Components.classes["@mozilla.org/network/standard-url-mutator;1"]
                                  .createInstance(Components.interfaces.nsIStandardURLMutator)
                                  .init(Components.interfaces.nsIStandardURL.URLTYPE_STANDARD,
                                        80, this.mInstall.sourceURI.spec,
                                        null, null)
                                  .finalize()
                                  .QueryInterface(Components.interfaces.nsIURL);
              this._name.value = url.fileName;
            }
            
            if (this.mInstall.version) {
              this._version.value = this.mInstall.version;
              this._version.hidden = false;
            } else {
              this._version.hidden = true;
            }
          }

          if (this.mInstall.state == AddonManager.STATE_DOWNLOAD_FAILED) {
            this.setAttribute("notification", "warning");
            this._warning.textContent = gStrings.ext.formatStringFromName(
              "notification.downloadError",
              [this._name.value], 1
            );
            this._warningLink.label = gStrings.ext.GetStringFromName("notification.downloadError.retry");
            this._warningLink.tooltipText = gStrings.ext.GetStringFromName("notification.downloadError.retry.tooltip");
          } else if (this.mInstall.state == AddonManager.STATE_INSTALL_FAILED) {
            this.setAttribute("notification", "warning");
            this._warning.textContent = gStrings.ext.formatStringFromName(
              "notification.installError",
              [this._name.value], 1
            );
            this._warningLink.label = gStrings.ext.GetStringFromName("notification.installError.retry");
            this._warningLink.tooltipText = gStrings.ext.GetStringFromName("notification.downloadError.retry.tooltip");
          } else {
            this.removeAttribute("notification");
          }
        ]]></body>
      </method>

    </implementation>
  </binding>

</bindings>

Coroner пишет

прятать номера версий

Это уже давно. С 40х. Пока вытащить через яваскрипт не получается..

Coroner пишет

Пересохранил в utf-8 (почему то 1251 было, хотя вроде следил за этим).

У меня, за редким исключением, всё по-аглицки. УТФ8 - по боку.

f00fc7c8 пишет

Я его переименовал

Я на своём файле пробовал. Раньше ещё пытался.

f00fc7c8 пишет

У меня, за редким исключением, всё по-аглицки. УТФ8 - по боку.

Уже в привычку вошло. Но как оказалось — не до конца. :)
В основном тоже по-аглицки, да вот папка на панели закладок когда-то была с русским названием, а мне её подкрасить вздумалось.
А она toolbarbutton.bookmark-item[label="имя"]. С тех пор стараюсь UTF-8 сохранять.

Coroner пишет

Я на своём файле пробовал. Раньше ещё пытался.

Ммм. И не выходит? У меня такое содержимое файла c:\Users\...\AppData\Roaming\Mozilla\Firefox\Profiles\...\chrome\myAddOn57.xml
Я просто подсократил Арисовские заморочки. Нужное оставил как my****

Привет народ. Заметил что вчера само по себе добавилось дополнение TAAR Experiment v2 Shield Study 1.0.13, кому то известно чё там разрабы тестирую то? Или для чего это чудо)

скрытый текст
xKA2dB-6-_2hrAcHdDl3tqqSA67oXZ7vWslpvCi7VIUu_-X8R142Bcsp13HoCmtzDXQDiVccTm8wUwLtZCswpw%3D%3D?uid=76641723&filename=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%20%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9%202018-03-16%20%D0%B2%2007.26.30-fullpage.png&disposition=inline&hash=&limit=0&content_type=image%2Fpng&fsize=24923&hid=5f69128c40a590a22647ab93f5b3eec9&media_type=image&tknv=v2&etag=0a7f50f4f46e2bc4553af4a05f1eb445

Win7x32, 2Gb озу. Эта лиса стала жрать, на старом ноуте от 41 до 50% памяти. Если открыто от1 до 5 вкладок.
Ff57-58.02 жрали всего 20-25%, при открытии тех же вкладок, на тех же сайтах. Установка 59.0 была "чистая", дополнений никаких.
И че они там творят?

WLAD.WLAD2010 пишет

кому то известно чё там разрабы тестирую то?

Telemetry-Aware Add-on Recommender
Что-то кому-то зачем-то куда-то отправляется :) Может быть тут что-от написано будет: about:studies
Маловато информации, а из мозиллы много не вытащишь :) https://support.mozilla.org/ru/questions/1209425

crazynaginata пишет

И че они там творят?

На старом ноуте с 2 Гб памяти наверняка лучше уменьшить количество процессов для контента. А то и вообще оставить один.

Можно попробовать отключить extensions.webextensions.remote, layers.gpu-process.enabled и browser.tabs.remote.autostart
Все, или отдельные из параметров. У меня включен первый и выключены второй и третий, при установке числа процессов dom.ipc.processCount=1
Стало получше, но теряется многопроцессность. Попробуйте эти параметры попереключать, может поможет (будут нужны рестарты).

59.0.1 вышел :D
9882cd9a2e24.jpg

sandro79 пишет

59.0.1 вышел

Почему-то даже не удивительно :) http://ftp.mozilla.org/pub/firefox/releases/59.0.1/

16-03-2018 11:35:02
Что нового — пока не сообщается : https://www.mozilla.org/en-US/firefox/5 … asenotes/#

We’re still preparing the notes for this release, and will post them here when they are ready. Please check back later.

P. S. Ничего не отвалилось. :)

Подскажите пожалуйста ссылочку на стиль, дабы высоту вкладок уменьшить. В 59 почему-то они выше стали.

Coroner, а вы стилями от Aris не пользуетесь? Я давно высоту выставил --classic_squared_tabs_tab_height: 24px; в файле chrome\css\tabs\classic_squared_tabs.css. Высоту Aris подправлял, когда на 60 [nightly] кнопка всех вкладок(alltabs_button_always_visible) стала конского размера и за ней потянулись вкладки, он её уменьшил и стало нормально.


Начиная с 59 версии перестала работать эта настройка

sandro79 пишет

Начиная с 59 версии перестала работать эта настройка

У меня вроде работает. Правда не везде проверял и не по всякому, но скриншот на addons.mozilla.org даёт сделать, если true, а если false — уже нет.

скрытый текст
ab3aaxlaqgch45arceubqkopxws.png

sandro79 пишет

Coroner, а вы стилями от Aris не пользуетесь?

Пользуюсь, но у меня не classic_squared_tabs.css не включён, чем-то мешал моим стилям. За наводку — спасибо, попробую включить и с ним разобраться. :beer:

Coroner
У меня так:

скрытый текст

Выделить код

Код:

/*Высота вкладок*/

:root {
    --tab-min-height:  28px !important;
}

Coroner пишет

У меня вроде работает.

Да, видимо работает, но у меня перестали работать дополнения на addons.mozilla.org из моего сообщения по ссылке выше.

но у меня не classic_squared_tabs.css не включён

Если кнопка включена всегда, то вкладка имеет её высоту, если не всегда, то при заполнении панели вкладок она появляется и вкладки увеличиваются по высоте до высоты кнопки.
Кусок стиля из classic_squared_tabs.css выдернул: (fixed) Fx60: classic squared tabs > button size on tabs toolbar.

скрытый текст

Выделить код

Код:

#TabsToolbar > toolbarpaletteitem .toolbarbutton-icon,
#TabsToolbar > toolbarbutton .toolbarbutton-icon {
  min-width: 16px !important;
  width: unset !important;
  min-height: 16px !important;
  height: unset !important;
  padding: unset !important;
  margin: unset !important;
}

ofizer пишет

У меня так:

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

sandro79, я проблему решил перетаскиванием файла classic_squared_tabs_australized.css из 1.3.6 (вчера обновил стили до 1.7.7, а файлы оказались очень разными).
А classic_squared_tabs_australized.css использую вместо classic_squared_tabs.css, так как лишь в нём мне удалось более-менее "красиво" загнутые уголки сделать.
Привык я к ним. :blush: Отказываться неохота.

скрытый текст
_m0hj9rfw4p7xzysoj8d9yutgpq.png

16-03-2018 21:49:57

sandro79 пишет

59.0.1 вышел

Ага, вот оно чё...
На соревновании Pwn2Own 2018 продемонстрированы взломы Firefox, Edge и Safari

Завершился второй заключительный день соревнования Pwn2Own 2018, ежегодно проводимого в рамках конференции CanSecWest в Ванкувере. На соревновании были продемонстрированы рабочие техники эксплуатации ранее неизвестных уязвимостей в Firefox, Edge и Safari (две разные атаки), которые привели к успешному выполнению кода атакующего в системе. Также частично проведена атака на VirtualBox, которая не была доведена до конца. Суммарный размер выплат составил 267 тысяч долларов (общий призовой фонд составляет 2 млн долларов). Номинации за взлом Chrome, nginx, Apache httpd, OpenSSL, SMB-подсистемы Windows, vMware Workstation, Hyper-V Client, Adobe Reader, MS Office 365 ProPlus и MS Outlook остались невостребованными.

Разработчики Mozilla уже сформировали обновления Firefox 59.0.1 и 52.7.2, в которых устранены продемонстрированные в ходе соревнования уязвимости (CVE-2018-5146, CVE-2018-5147). Проблемы затрагивают входящие в базовую поставку библиотеки libvorbis и libtremor (замена libvorbis для ARM и Android) и позволяют организовать запись данных за границу буфера при обработке специально оформленного звукового контента в формате Vorbis.

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

Doe John пишет

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

Ограничение не на количество вкладок, а на их размер. То есть при изменении размера вкладки ниже определённого крестик исчезает.
Во всяком случае так было раньше. Можете попробовать настройку browser.tabs.tabClipWidth = 24

Не заработает — можно попробовать код применить (от Ариса)

скрытый текст

Выделить код

Код:

#TabsToolbar #tabbrowser-tabs .tabbrowser-tab:not([pinned]) .tab-close-button {
  visibility: visible !important;
  display: block !important;
}
#TabsToolbar #tabbrowser-tabs .tabbrowser-tab:not([pinned])[faviconized="true"] .tab-close-button {
  visibility: collapse !important;
  display: none !important;
}

17-03-2018 11:19:53
P. S. Попробовал на почти чистой 59 — параметр browser.tabs.tabClipWidth работает.
Заодно уж ещё параметр: browser.tabs.tabMinWidth = 40
Минимальная ширина вкладки. Начиная с этого значения (40) появляются стрелки прокрутки.

Поставил на днях новую Win10 + новый FF 59.0.1(х64) и что то, частенько прям зависания какие то в работе браузера наблюдаются. Вкладок открыто около 10, но не должно так быть, в хроме таких зависаний не наблюдаю.

AspireM3400
Какого рода зависания:
а) Скорость зарузки страниц ?
б) Подлагивания при прокрутке ?
в) Зависания процессора браузера ?

п.с звонок другу - телефон сломался. 50 на 50 - недоступно. Спросить у зала - вы один в комнате.

Вариант: б), в)
Естественно когда подлагивает сам браузер, то и прокрутка тоже лагает

AspireM3400
Индивидуальная проблема на самом деле.
Как вариант, перезапустить браузер без дополнений (есть опция такая в "справке").
Или отправить отчёт об ошибках в ту же поддержку (тоже в "справке" есть опция).

Я сегодня на бабочке уже писал мол если ставить новые драйвера от NVIDIA (последние 391.01 ), то в том-же PotPlayer допустим у меня наблюдаются подвисоны при банально промотке видео или загрузке другого видео (перемотке на другую серию\фильм).
Я откатился до предыдущих драйверов - проблема пропала.
Мб с этим связано.

Почему именно с 59 версии не всегда сохраняется сессия браузера? :| Вкладки в журнале остались, а сессия не восстанавливается никак, надоело уже постоянно вручную их возвращать.

Ultima2m пишет

Народ, чего делать-то? Если на 58 старые расширения еще как-то работали, то на 59 вообще мрак. А на 60 видимо все кончится

Какие есть варианты решения этой проблемы, кроме "не обновлять firefox ESR после версии 52.9.0" ?