Объявление

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

Administrator

№14451Вчера 20:17:37

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1190
UA: Seamonkey 2.49

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

sss.loadAndRegisterSheet(UriPath, sss.USER_SHEET);

О-о, с этой функцией (и несколькими другими ей подобными) есть одна интересная проблема, над которой я совсем недавно бился, но так ответа и не нашёл.


Для файлов .css важен порядок, в котором они загружаются.
А у каждого окна Chrome есть свойство styleSheets - массив, в котором находятся все используемые стили, причём именно в порядке их загрузки в документ.


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


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


(В той моей ситуации я выкрутился с помощью конструкций вида:

Выделить код

Код:

document.lastChild.before(document.createProcessingInstruction(
  "xml-stylesheet", 'href="' + css + '"'
));

- после них .css-ы в массив попадали, причём именно в том порядке, в котором я их указывал.)

Отредактировано yup (Вчера 21:51:43)

Отсутствует

 

№14452Вчера 23:56:29

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1851
UA: Firefox 140.0

Re: Настройка внешнего вида Firefox в userChrome.css

yup
Я в chrome_debugger_profile никаких новых стилей не жду. :) Мне бы свой нормально загрузить.

Отсутствует

 

№14453Сегодня 01:14:37

dinn
Участник
 
Группа: Members
Зарегистрирован: 28-09-2024
Сообщений: 94
UA: Firefox 138.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt как будет доступна 140 бета для скачки, тогда посмотрим, что там изменили

Отсутствует

 

№14454Сегодня 01:36:07

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1190
UA: Seamonkey 2.49

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

Я в chrome_debugger_profile никаких новых стилей не жду.

Это может оказаться неосмотрительным. То, что выглядит как единое окно отладчика (в смысле - Инструменты разработки и Инструменты браузера), на самом деле - куча отдельных компонентов, это можно легко увидеть с помощью самого этого отладчика. Каждый из этих компонентов загружается из своего собственного файла при первом переходе на соответствующую вкладку, и этот файл вполне может тянуть за собой какие-то стилевые файлы. (На предмет этого я отладчик не изучал.)


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


(Там ещё, конечно, идёт градация по AUTHOR_SHEET, AGENT_SHEET, USER_SHEET, но смотреть, в какую категорию попадают стили из userChrome, у меня как-то повода никогда не было.)

Отредактировано yup (Сегодня 04:17:06)

Отсутствует

 

№14455Сегодня 18:22:17

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1851
UA: Firefox 140.0

Re: Настройка внешнего вида Firefox в userChrome.css

yup
Вроде как AGENT_SHEET должен быть. Но как видим у меня с ним проблемы. У меня стили это:
1. цвета заголовков правил, а то когда портянки мотаешь часто пролистываешь,
2. цвет scrollbar-ов, как в основном окне,
3. размер, прозрачность, цвета и значки в меню, как в основном окне,
4. прозрачность и цвета тултипов, как в основном окне.
Так что я думаю "Вы кладете это на немного толстого". :)

Отредактировано _zt (Сегодня 18:22:50)

Отсутствует

 

№14456Сегодня 18:36:31

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1190
UA: Seamonkey 2.49

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

Вроде как AGENT_SHEET должен быть

Где-то здесь на форуме Dumby писал, что стили из userChrome.css проходят как USER_SHEET.
Впрочем, сейчас это не сильно важно - ведь при втором открытии окна стили применяются.


Для окон Инструменты разработки и Инструменты браузера используются одни и те же файлы - и .xhtml, и .css. Поэтому интересно, наблюдается ли та же проблема с окном Инструменты разработки.


Добавлено Сегодня 18:49:28
И ещё: у меня, конечно, версия Firefox другая, но есть к ней серьёзнейшие претензии именно по части Инструментов: то в дереве DOM не показывает элемент, который вот он, перед глазами, то в Отладчике не показывает скрипты, используемые документом. Я уже вычислил, что самый надёжный способ увидеть скрипты это перейти на вкладку Консоль, закрыть окно Инструментов, открыть его заново (при этом Консоль будет текущей) и только потом перейти в Отладчик. Хотя казалось бы - какая разница?

Отредактировано yup (Сегодня 18:52:04)

Отсутствует

 

№14457Сегодня 19:42:01

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1851
UA: Firefox 140.0

Re: Настройка внешнего вида Firefox в userChrome.css

yup пишет

Поэтому интересно, наблюдается ли та же проблема с окном Инструменты разработки.

Конечно нет, там стили из ucf работают. А здесь отдельный файл с @-moz-document url-prefix("chrome://devtools") {
И те стили сюда не подключить, так как в тех внешние файлы иконок и переменные (т.е., --выап-ывап), которые тут не работают.

Отсутствует

 

№14458Сегодня 21:06:56

dinn
Участник
 
Группа: Members
Зарегистрирован: 28-09-2024
Сообщений: 94
UA: Firefox 138.0

Re: Настройка внешнего вида Firefox в userChrome.css

yup пишет

стили из userChrome.css проходят как USER_SHEET

как и стили из userContent.css


_zt
проблема со стилями с первым заходом в инстр разраба будет наблюдаться в релизе 139 или лучше сразу качать 141 альфа?

Отсутствует

 

№14459Сегодня 21:20:08

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1851
UA: Firefox 140.0

Re: Настройка внешнего вида Firefox в userChrome.css

dinn
Мне тут подсказали, проблема в @-moz-documen, так как @-moz-document не работает нормально с AGENT_SHEET. И вот тут я не знаю что лучше, оставить @-moz-document и sss.USER_SHEET, чтобы  быть уверенным, что стили никуда больше не применятся или убрать @-moz-document и вернуть 0, без всяких гарантий.
   
Альфы вроде нет еще 141, я отсюда качаю - https://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-central-l10n/
Бывает, при смене циферок, что в основном репозитории - https://archive.mozilla.org/pub/firefox/nightly/2025/ более свежии версии, но не сегодня.
   
140 вышла 250428, в день нашего с вами разговора, так что можно считать, что на 139 я этот код не гонял.
https://archive.mozilla.org/pub/firefox/nightly/2025/04/2025-04-28-21-16-01-mozilla-central/

Отредактировано _zt (Сегодня 21:25:25)

Отсутствует

 

№14460Сегодня 22:22:57

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1851
UA: Firefox 140.0

Re: Настройка внешнего вида Firefox в userChrome.css

В общем вот и @-moz-document можно отбросить. Скрипт работает только в chrome_debugger_profile. Напомню, тем кто весь тред не читал, это для config.js - применение внешнего файла стилей из заданного файла в profile\chrome к profile\chrome_debugger_profile, т.е. к "chrome://devtools".

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

Выделить код

Код:

(async () => {
    var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
    if (file.leafName !== "chrome_debugger_profile") return;
    file = file.parent;
    file.append("chrome");
    file.append("userChrome_Agent.css");
    if (!file.exists() || !file.isFile()) return;
    Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService)
    .loadAndRegisterSheet(Services.io.newFileURI(file), 0);
})();


В данном случае не лишним будет использовать в начале стиля
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");
для всего и + html| (например, html|div....) для элементов списков и scrollbar-ов.

Отредактировано _zt (Сегодня 23:00:36)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]