Можно ли изменить жестко запрограммированное поведение панели Ctrl-Tab в Firefox JavaScript?
В исходном коде поведения Firefox Ctrl+Tab жестко задано ограничение в 6 вкладок:
/**
* Ctrl-Tab panel
*/
var ctrlTab = {
maxTabPreviews: 6,
//...
for (let i = 0; i < this.maxTabPreviews; i++) {
previewsContainer.appendChild(this.makePreview(false));
}
//...
Это не много. Есть ли какой-нибудь способ, кроме выполнения полной сборки из исходного кода, изменить это поведение?
Я не ищу обходной путь или надстройку, которая может представлять альтернативный список вкладок, например, я действительно хочу узнать, есть ли способ, который по сути имеет тот же эффект, что и установка
maxTabPreviews = 10
но без необходимости компилировать собственную версию Firefox. Например, userchrom.css, который может переопределить определенные элементы стиля, но затем кое-что, что позволяет переопределить этот фрагмент кода.
2 ответа
Насколько я могу судить, решение для предупреждения , представленное ниже, у меня работает без недостатков, но YMMV, поэтому пробуйте на свой страх и риск.
Спасибо, harrymc, что помог мне. Ваш комментарий о том, что этой строки нет в Firefox, заставил меня подумать, что действительно невозможно, чтобы все файлы .js из источника находились в firefox.exe, потому что для этого он слишком мал. Поэтому я поискал в каталоге приложения, где они находятся, и обнаружил, что они сжаты в один файл omni.ja.Разархивируем файл с помощью
unzip omni.ja -d omni
дает структуру каталогов со всем JavaScript/HTML/CSS и т. д., среди которых естьomni/chrome/browser/content/browser/browser-ctrlTab.js
. Ура! Поэтому я отредактировал файл, чтобы использовать 8 вместо 6, а затем снова заархивировал его, как указано, используя
cd omni
zip -qr9XD omni.ja *
Однако полученный файл примерно в 2,5 раза меньше исходного, поэтому я предполагаю, что Firefox не использует9
в качестве уровня сжатия в наши дни, но0
. Действительно
zip -qr0XD omni.ja *
создает файл почти такого же размера, как оригинал. При тестировании исходного файла omni.ja с помощью 7zip появляется сообщение «Предупреждения: после окончания данных полезной нагрузки есть некоторые данные», так что это может быть виновником.
Anwyay заменит исходный omni.ja на новый, используяfirefox -p
для запуска с новым профилем на всякий случай, я рад видеть, что теперь действительно 8 вкладок. Повторил то же самое еще раз, используя 12 вкладок, скриншот:
Недостаток очевиден: этот процесс, вероятно, придется повторять после каждого обновления. Но если надстройки не имеют доступа ко всем внутренним компонентам (что является следующим вопросом, который необходимо изучить), это, вероятно, единственный путь. Улучшением могло бы стать отображение нескольких строк вместо одной.
Об этом говорилось в отчете об ошибке 3 года назад:при использовании Ctrl+Tab требовалось более шести эскизов, а в последнее время был отнесен к низкому приоритету.
Вам нужно будет попробовать надстройку для решения. Ниже приведен список возможных дополнений. Я не пробовал их, поэтому не могу сказать, какой из них поможет решить проблему: