Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№257620-11-2017 00:35:58

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2123
UA: Firefox 52.0

Re: Stylish

Coroner пишет

Сам userChrome.css перезагружается, но на правила @import url(file.css); действие не распространяется.

Понятно, спасибо.
Вот эта должна перезагружать и файлы из @import, наверно.

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EReload%20user%7BChrome%2C%20Content%7D.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28obj%20%3D%3E%20%7B%0A%09this.onclick%20%3D%20obj.click.bind%28obj%29%3B%0A%09this.oncontextmenu%20%3D%20obj.contextmenu.bind%28obj%29%3B%0A%09this.tooltipText%20%3D%20%22L%3A%20Reload%20userChrome.css%5CnM%3A%20CB%20Menu%5CnR%3A%20Reload%20userContent.css%22%3B%0A%7D%29%28%7B%0A%09click%28e%29%20%7B%0A%09%09if%20%28e.button%20%3D%3D%201%29%20return%20gShowPopup%28self%29%3B%0A%09%09if%20%28e.button%20%7C%7C%20%21this.chromeSheet%29%20return%3B%0A%09%09this.reload%28this.chromeSheet%29%3B%0A%09%09this.restyle%280%29%3B%0A%09%7D%2C%0A%09async%20contextmenu%28e%29%20%7B%0A%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.detail%20%21%3D%201%20%7C%7C%20%21this.contentSheetURL%29%20return%3B%0A%09%09e.preventDefault%28%29%3B%0A%0A%09%09var%20count%20%3D%20Services.ppmm.childCount%2C%20one%20%3D%20count%20%3D%3D%201%3B%0A%09%09var%20data%20%3D%20await%20this.reloadTab%28%22about%3Aconfig%22%2C%20one%20%3F%20false%20%3A%20%7B%7D%29%3B%0A%09%09if%20%28one%29%20this.reloadTab%28%29%3B%0A%09%09else%20if%20%28data%29%20%7B%0A%09%09%09var%20url%20%3D%20%22data%3A%2C%22%20+%20encodeURIComponent%28%0A%09%09%09%09self.Help%20+%20this.contentSheetURL%20+%20%27%22%2C%20%27%20+%20JSON.stringify%28data%29%20+%20%22%29%3B%22%0A%09%09%09%29%3B%0A%09%09%09var%20types%20%3D%20%5B%22web%22%2C%20%22file%22%2C%20%22extension%22%5D%3B%0A%09%09%09for%28var%20ind%20%3D%200%3B%20ind%20%3C%20count%3B%20ind++%29%20%7B%0A%09%09%09%09var%20child%20%3D%20Services.ppmm.getChildAt%28ind%29%3B%0A%09%09%09%09types.includes%28child.remoteType%29%20%26%26%20child.loadProcessScript%28url%2C%20false%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09this.restyle%28250%29%3B%0A%09%7D%2C%0A%09reload%28sheet%2C%20obj%29%20%7B%0A%09%09var%20style%20%3D%20Cu.readURI%28Services.io.newURI%28sheet.href%29%29%3B%0A%09%09this.inIDOMUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09if%20%28obj%29%20obj%5Bsheet.href%5D%20%3D%20style%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20this.reload%28rule.styleSheet%2C%20obj%29%3B%0A%09%09%7D%0A%09%09return%20obj%3B%0A%09%7D%2C%0A%09reloadTab%28url%2C%20obj%29%20%7B%0A%09%09var%20tab%20%3D%20gBrowser.addTab%28url%29%3B%0A%09%09return%20new%20Promise%28resolve%20%3D%3E%20%7B%0A%09%09%09var%20result%2C%20stop%2C%20destroy%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09%09%09if%20%28%21stop%29%20resolve%28result%29%2C%20gBrowser.removeTab%28tab%29%2C%20stop%20%3D%20true%3B%0A%09%09%09%7D%0A%09%09%09setTimeout%28destroy%2C%20500%29%3B%0A%09%09%09try%20%7B%0A%09%09%09%09gBrowser.hideTab%28tab%29%3B%0A%09%09%09%09tab.linkedBrowser.addEventListener%28%22DOMContentLoaded%22%2C%20e%20%3D%3E%20%7B%0A%09%09%09%09%09var%20sheet%20%3D%20this.getSheet%28e.target%2C%20this.contentSheetURL%29%3B%0A%09%09%09%09%09if%20%28sheet%29%20result%20%3D%20this.reload%28sheet%2C%20obj%29%3B%0A%09%09%09%09%09destroy%28%29%3B%0A%09%09%09%09%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%09%09%09%7D%20catch%28ex%29%20%7B%0A%09%09%09%09destroy%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%2C%0A%09getSheet%28doc%2C%20href%29%20%7B%0A%09%09var%20sheets%20%3D%20this.inIDOMUtils.getAllStyleSheets%28doc%29%3B%0A%09%09return%20sheets.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09%7D%2C%0A%09get%20contentSheetURL%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userContent.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%09%09delete%20this.contentSheetURL%3B%0A%09%09return%20this.contentSheetURL%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%7D%2C%0A%09get%20inIDOMUtils%28%29%20%7B%0A%09%09delete%20this.inIDOMUtils%3B%0A%09%09return%20this.inIDOMUtils%20%3D%20Cc%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D.getService%28Ci.inIDOMUtils%29%3B%0A%09%7D%2C%0A%09get%20restyle%28%29%20%7B%0A%09%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%09%09var%20uri%20%3D%20Services.io.newURI%28%22data%3Atext/css%2C%3Aroot%7B%7D%22%29%2C%20type%20%3D%20sss.USER_SHEET%3B%0A%09%09delete%20this.restyle%3B%20return%20this.restyle%20%3D%20delay%20%3D%3E%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sss.loadAndRegisterSheet%28uri%2C%20type%29%3B%0A%09%09%09sss.unregisterSheet%28uri%2C%20type%29%3B%0A%09%09%7D%2C%20delay%29%3B%0A%09%7D%2C%0A%09get%20chromeSheet%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userChrome.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%0A%09%09var%20href%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%09var%20sheet%20%3D%20this.getSheet%28document%2C%20href%29%3B%0A%09%09if%20%28%21sheet%29%20return%20null%3B%0A%0A%09%09delete%20this.chromeSheet%3B%20return%20this.chromeSheet%20%3D%20sheet%3B%0A%09%7D%0A%7D%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%28%28href%2C%20data%29%20%3D%3E%20%7B%0A%09var%20en%20%3D%20Services.ww.getWindowEnumerator%28null%29%3B%0A%09if%20%28%21en.hasMoreElements%28%29%29%20return%3B%0A%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%0A%09var%20du%20%3D%20Components.classes%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D%0A%09%09.getService%28Components.interfaces.inIDOMUtils%29%3B%0A%09var%20reload%20%3D%20sheet%20%3D%3E%20%7B%0A%09%09var%20style%20%3D%20data%5Bsheet.href%5D%3B%20if%20%28%21style%29%20return%3B%0A%0A%09%09du.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20reload%28rule.styleSheet%29%3B%0A%09%09%7D%0A%09%7D%0A%09var%20sheet%20%3D%20du.getAllStyleSheets%28doc%29.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09if%20%28sheet%29%20reload%28sheet%29%3B%0A%7D%29%28%22%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№257720-11-2017 02:31:39

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 57.0

Re: Stylish

Dumby пишет

Вот эта должна перезагружать и файлы из @import, наверно.

Перезагружает. :) Отличная кнопища.

Единственный вопрос: встречал где-то утверждение, что для этой кнопки нужен псевдокласс :root {} в начале userChrome.css
Но и без него всё работает.

Отсутствует

 

№257827-11-2017 15:53:53

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 310
UA: Firefox 57.0

Re: Stylish

Dumby пишет

Понятно, спасибо.Вот эта должна перезагружать и файлы из @import, наверно.

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EReload%20user%7BChrome%2C%20Content%7D.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28obj%20%3D%3E%20%7B%0A%09this.onclick%20%3D%20obj.click.bind%28obj%29%3B%0A%09this.oncontextmenu%20%3D%20obj.contextmenu.bind%28obj%29%3B%0A%09this.tooltipText%20%3D%20%22L%3A%20Reload%20userChrome.css%5CnM%3A%20CB%20Menu%5CnR%3A%20Reload%20userContent.css%22%3B%0A%7D%29%28%7B%0A%09click%28e%29%20%7B%0A%09%09if%20%28e.button%20%3D%3D%201%29%20return%20gShowPopup%28self%29%3B%0A%09%09if%20%28e.button%20%7C%7C%20%21this.chromeSheet%29%20return%3B%0A%09%09this.reload%28this.chromeSheet%29%3B%0A%09%09this.restyle%280%29%3B%0A%09%7D%2C%0A%09async%20contextmenu%28e%29%20%7B%0A%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.detail%20%21%3D%201%20%7C%7C%20%21this.contentSheetURL%29%20return%3B%0A%09%09e.preventDefault%28%29%3B%0A%0A%09%09var%20count%20%3D%20Services.ppmm.childCount%2C%20one%20%3D%20count%20%3D%3D%201%3B%0A%09%09var%20data%20%3D%20await%20this.reloadTab%28%22about%3Aconfig%22%2C%20one%20%3F%20false%20%3A%20%7B%7D%29%3B%0A%09%09if%20%28one%29%20this.reloadTab%28%29%3B%0A%09%09else%20if%20%28data%29%20%7B%0A%09%09%09var%20url%20%3D%20%22data%3A%2C%22%20+%20encodeURIComponent%28%0A%09%09%09%09self.Help%20+%20this.contentSheetURL%20+%20%27%22%2C%20%27%20+%20JSON.stringify%28data%29%20+%20%22%29%3B%22%0A%09%09%09%29%3B%0A%09%09%09var%20types%20%3D%20%5B%22web%22%2C%20%22file%22%2C%20%22extension%22%5D%3B%0A%09%09%09for%28var%20ind%20%3D%200%3B%20ind%20%3C%20count%3B%20ind++%29%20%7B%0A%09%09%09%09var%20child%20%3D%20Services.ppmm.getChildAt%28ind%29%3B%0A%09%09%09%09types.includes%28child.remoteType%29%20%26%26%20child.loadProcessScript%28url%2C%20false%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09this.restyle%28250%29%3B%0A%09%7D%2C%0A%09reload%28sheet%2C%20obj%29%20%7B%0A%09%09var%20style%20%3D%20Cu.readURI%28Services.io.newURI%28sheet.href%29%29%3B%0A%09%09this.inIDOMUtils.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09if%20%28obj%29%20obj%5Bsheet.href%5D%20%3D%20style%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20this.reload%28rule.styleSheet%2C%20obj%29%3B%0A%09%09%7D%0A%09%09return%20obj%3B%0A%09%7D%2C%0A%09reloadTab%28url%2C%20obj%29%20%7B%0A%09%09var%20tab%20%3D%20gBrowser.addTab%28url%29%3B%0A%09%09return%20new%20Promise%28resolve%20%3D%3E%20%7B%0A%09%09%09var%20result%2C%20stop%2C%20destroy%20%3D%20%28%29%20%3D%3E%20%7B%0A%09%09%09%09if%20%28%21stop%29%20resolve%28result%29%2C%20gBrowser.removeTab%28tab%29%2C%20stop%20%3D%20true%3B%0A%09%09%09%7D%0A%09%09%09setTimeout%28destroy%2C%20500%29%3B%0A%09%09%09try%20%7B%0A%09%09%09%09gBrowser.hideTab%28tab%29%3B%0A%09%09%09%09tab.linkedBrowser.addEventListener%28%22DOMContentLoaded%22%2C%20e%20%3D%3E%20%7B%0A%09%09%09%09%09var%20sheet%20%3D%20this.getSheet%28e.target%2C%20this.contentSheetURL%29%3B%0A%09%09%09%09%09if%20%28sheet%29%20result%20%3D%20this.reload%28sheet%2C%20obj%29%3B%0A%09%09%09%09%09destroy%28%29%3B%0A%09%09%09%09%7D%2C%20%7Bonce%3A%20true%7D%29%3B%0A%09%09%09%7D%20catch%28ex%29%20%7B%0A%09%09%09%09destroy%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29%3B%0A%09%7D%2C%0A%09getSheet%28doc%2C%20href%29%20%7B%0A%09%09var%20sheets%20%3D%20this.inIDOMUtils.getAllStyleSheets%28doc%29%3B%0A%09%09return%20sheets.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09%7D%2C%0A%09get%20contentSheetURL%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userContent.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%09%09delete%20this.contentSheetURL%3B%0A%09%09return%20this.contentSheetURL%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%7D%2C%0A%09get%20inIDOMUtils%28%29%20%7B%0A%09%09delete%20this.inIDOMUtils%3B%0A%09%09return%20this.inIDOMUtils%20%3D%20Cc%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D.getService%28Ci.inIDOMUtils%29%3B%0A%09%7D%2C%0A%09get%20restyle%28%29%20%7B%0A%09%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%09%09var%20uri%20%3D%20Services.io.newURI%28%22data%3Atext/css%2C%3Aroot%7B%7D%22%29%2C%20type%20%3D%20sss.USER_SHEET%3B%0A%09%09delete%20this.restyle%3B%20return%20this.restyle%20%3D%20delay%20%3D%3E%20setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sss.loadAndRegisterSheet%28uri%2C%20type%29%3B%0A%09%09%09sss.unregisterSheet%28uri%2C%20type%29%3B%0A%09%09%7D%2C%20delay%29%3B%0A%09%7D%2C%0A%09get%20chromeSheet%28%29%20%7B%0A%09%09var%20file%20%3D%20Services.dirsvc.get%28%22UChrm%22%2C%20Ci.nsIFile%29%3B%0A%09%09file.append%28%22userChrome.css%22%29%3B%0A%09%09if%20%28%21file.exists%28%29%29%20return%20null%3B%0A%0A%09%09var%20href%20%3D%20Services.io.newFileURI%28file%29.spec%3B%0A%09%09var%20sheet%20%3D%20this.getSheet%28document%2C%20href%29%3B%0A%09%09if%20%28%21sheet%29%20return%20null%3B%0A%0A%09%09delete%20this.chromeSheet%3B%20return%20this.chromeSheet%20%3D%20sheet%3B%0A%09%7D%0A%7D%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%28%28href%2C%20data%29%20%3D%3E%20%7B%0A%09var%20en%20%3D%20Services.ww.getWindowEnumerator%28null%29%3B%0A%09if%20%28%21en.hasMoreElements%28%29%29%20return%3B%0A%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%0A%09var%20du%20%3D%20Components.classes%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D%0A%09%09.getService%28Components.interfaces.inIDOMUtils%29%3B%0A%09var%20reload%20%3D%20sheet%20%3D%3E%20%7B%0A%09%09var%20style%20%3D%20data%5Bsheet.href%5D%3B%20if%20%28%21style%29%20return%3B%0A%0A%09%09du.parseStyleSheet%28sheet%2C%20style%29%3B%0A%09%09for%28var%20ind%20%3D%200%2C%20len%20%3D%20sheet.cssRules.length%3B%20ind%20%3C%20len%3B%20ind++%29%20%7B%0A%09%09%09var%20rule%20%3D%20sheet.cssRules.item%28ind%29%3B%0A%0A%09%09%09rule.type%20%3D%3D%20rule.IMPORT_RULE%0A%09%09%09%26%26%20rule.styleSheet.href.startsWith%28%22file%3A///%22%29%0A%09%09%09%26%26%20reload%28rule.styleSheet%29%3B%0A%09%09%7D%0A%09%7D%0A%09var%20sheet%20%3D%20du.getAllStyleSheets%28doc%29.find%28sheet%20%3D%3E%20sheet.href%20%3D%3D%20href%29%3B%0A%09if%20%28sheet%29%20reload%28sheet%29%3B%0A%7D%29%28%22%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Я прошу прощение за глупый вопрос :blush: Чтобы создать кнопку для перезапуска userChrome.css, код, который под спойлером, где нужно сохранить - тоже в нём (userChrome.css)? Спасибо

Разобрался, однако :) Custom Buttons для етого нужон :sick:

Отредактировано Viatcheslav (27-11-2017 20:04:39)

Отсутствует

 

№257927-11-2017 21:36:10

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2123
UA: Firefox 52.0

Re: Stylish

Viatcheslav пишет

Разобрался, однако :) Custom Buttons для етого нужон :sick:

Да, это адрес кнопки, которая создаётся посредством расширения Custom Buttons.

Ну а насчёт userChrome.css, пока XBL ещё с нами сделать можно многое.
Могу рассказать байку про что-то простое

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

В жертву была выбрана кнопка в виде конвертика «Отправить ссылку» (#email-link-button).
Вот, думаю, она то и будет у меня перезагружать userChrome.css

Перерисовал код как стиль, добавил в userChrome.css
Перетащил кнопку в нужное расположение.
Рестарт.

Кнопка, вроде, вполне себе рабочая получилась

Выделить код

Код:

@-moz-document url(chrome://browser/content/browser.xul) {
    toolbarbutton#email-link-button > image.toolbarbutton-icon {
        list-style-image: url("data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/DAAj/wwAM/8MADP/DAAz/wwAM/8MADP/DAAz/wwAM/8MADP/DAAz/wwAM/8MADP/DAAz/wwAM/8MACwAAAAA/5JWwP+aXv//mFz//5hc//+XW///l1v//5hc//+YXP//mFz//5hc//+YXP//mFz//5hc//+ZXf//mV3hAAAAAP+aXv///8/////P////z////8/////P////z////8/////P////z////8/////P////z////8///5ld/wAAAAD/mFz////P//9rL///q2///6hs////z///ai7//6xw//+rb///qm7//6pu//+qbv//qGz////P//+YXP8AAAAA/5hc////z////8/////P////z////8/////P////z////8/////P////z////8/////P////z///l1v/AAAAAP+YXP///8///2ww//+tcf//q2///6hs////z///ay///6xw//+pbf///8///2sv//+qbv///8///5hc/wAAAAD/mFz////P////z////8/////O////zP///8v////M////zP///83////M////zv///8z////P//+YXP8AAAAA/5hc////z///bzP//3A1//+vc///rXH//6xw//+rb////8f//2ww//+ucv//rXH//6tv////z///mFz/AAAAAP+ZXf///8/////J////yv///8n////H////yv///8n////G////xv///8n///u/////yP///8///5hc/wAAAAD/mV3////P//9TF////87//1QY////yv//Vhr//1cb//+XW////8f//5db//9UGP//TxP////P//+ZXf8AAAAA/5pe////z///Wh7//10h//9cIP///8z//1wg////z///WR3////J//9WGv///8b///q+////zv//mFz/AAAAAP+ZXf///8///1cb////y///WR3////I//9eIv//YCT//3I3////x///Vxv///q////ytv///8z//5hc/wAAAAD/mV3////P//+SVv///8L//5VZ///9wP//XCD////K//9aHv///sH//1cb///6vf//8rX////O//+YXP8AAAAA/5ld////z///jlH//1QY//+QU///9bj//1cb//9ZHf//klX///S3//+RVP//VBn//08U////z///mV3/AAAAAP+bX////8/////I////y////8n////I////y////8z////J////x////8n////L////yv///8///5tf/wAAAAD/nmLv/5tf//+ZXf//ml7//5pe//+ZXf//ml7//5pe//+aXv//mV3//5pe//+aXv//ml7//5tf//+eYu8AAAAAAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQ==") !important;
        --code:((obj, btn) => {
                btn.onclick = btn.oncontextmenu = e => {
                    if (e.detail == 1) obj[e.type](e);
                }
                btn.setAttribute("label", "Reload user{Chrome, Content}.css");
                btn.setAttribute("tooltiptext", "L: Reload userChrome.css\nR: Reload userContent.css");
            })({
                click(e) {
                    if (e.button || !this.chromeSheet) return;
                    e.preventDefault();
                    this.reload(this.chromeSheet);
                    this.restyle(0);
                },
                async contextmenu(e) {
                    if (e.ctrlKey || e.shiftKey || !this.contentSheetURL) return;
                    e.preventDefault();
                    var count = Services.ppmm.childCount, one = count == 1;
                    var data = await this.reloadTab("about:config", one ? false : {});
                    if (one) this.reloadTab();
                    else if (data) {
                        var url = "data:," + encodeURIComponent(
                            this.processScript + '("' + this.contentSheetURL + '", ' + JSON.stringify(data) + ")"
                        );
                        var types = ["web", "file", "extension"];
                        for(var ind = 0; ind < count; ind++) {
                            var child = Services.ppmm.getChildAt(ind);
                            types.includes(child.remoteType) && child.loadProcessScript(url, false);
                        }
                    }
                    this.restyle(250);
                },
                processScript: `((href, data) => {
                    var en = Services.ww.getWindowEnumerator(null);
                    if (!en.hasMoreElements()) return;
                    var doc = en.getNext().document;

                    var du = Components.classes["@mozilla.org/inspector/dom-utils;1"]
                        .getService(Components.interfaces.inIDOMUtils);
                    var reload = sheet => {
                        var style = data[sheet.href]; if (!style) return;

                        du.parseStyleSheet(sheet, style);
                        for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) {
                            var rule = sheet.cssRules.item(ind);

                            rule.type == rule.IMPORT_RULE
                            && rule.styleSheet.href.startsWith("file:///")
                            && reload(rule.styleSheet);
                        }
                    }
                    var sheet = du.getAllStyleSheets(doc).find(sheet => sheet.href == href);
                    if (sheet) reload(sheet);
                })`,

                reload(sheet, obj) {
                    var style = Cu.readURI(Services.io.newURI(sheet.href));
                    this.inIDOMUtils.parseStyleSheet(sheet, style);
                    if (obj) obj[sheet.href] = style;
                    for(var ind = 0, len = sheet.cssRules.length; ind < len; ind++) {
                        var rule = sheet.cssRules.item(ind);

                        rule.type == rule.IMPORT_RULE
                        && rule.styleSheet.href.startsWith("file:///")
                        && this.reload(rule.styleSheet, obj);
                    }
                    return obj;
                },
                reloadTab(url, obj) {
                    var tab = gBrowser.addTab(url);
                    return new Promise(resolve => {
                        var result, stop, destroy = () => {
                            if (!stop) resolve(result), gBrowser.removeTab(tab), stop = true;
                        }
                        setTimeout(destroy, 500);
                        try {
                            tab.style.setProperty("display", "none", "important");
                            tab.linkedBrowser.addEventListener("DOMContentLoaded", e => {
                                var sheet = this.getSheet(e.target, this.contentSheetURL);
                                if (sheet) result = this.reload(sheet, obj);
                                destroy();
                            }, {once: true});
                        } catch(ex) {
                            destroy();
                        }
                    });
                },
                getSheet(doc, href) {
                    var sheets = this.inIDOMUtils.getAllStyleSheets(doc);
                    return sheets.find(sheet => sheet.href == href);
                },
                get contentSheetURL() {
                    var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
                    file.append("userContent.css");
                    if (!file.exists()) return null;
                    delete this.contentSheetURL;
                    return this.contentSheetURL = Services.io.newFileURI(file).spec;
                },
                get inIDOMUtils() {
                    delete this.inIDOMUtils;
                    return this.inIDOMUtils = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils);
                },
                get restyle() {
                    var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
                    var uri = Services.io.newURI("data:text/css,:root{}"), type = sss.USER_SHEET;
                    delete this.restyle; return this.restyle = delay => setTimeout(() => {
                        sss.loadAndRegisterSheet(uri, type);
                        sss.unregisterSheet(uri, type);
                    }, delay);
                },
                get chromeSheet() {
                    var file = Services.dirsvc.get("UChrm", Ci.nsIFile);
                    file.append("userChrome.css");
                    if (!file.exists()) return null;

                    var href = Services.io.newFileURI(file).spec;
                    var sheet = this.getSheet(document, href);
                    if (!sheet) return null;

                    delete this.chromeSheet; return this.chromeSheet = sheet;
                }
            }, this.parentNode) !important;
        -moz-binding: url('data:text/xml,\
            <bindings xmlns="http://www.mozilla.org/xbl"><binding id="user{Chrome,Content}.css_Reloader"><implementation>\%0A\
                <constructor>eval(getComputedStyle(this).getPropertyValue("--code"));</constructor>\%0A\
            </implementation></binding></bindings>\
        ') !important;
    }
}

Отсутствует

 

№258027-11-2017 21:52:31

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 57.0

Re: Stylish

Dumby пишет

Могу рассказать байку про что-то простое

Круто! :) Работает как должна.
А этот Ваш XBL будет и дальше существовать?

P. S. И правильно ли я понимаю, что даже несмотря на мизерное (околонулевое?) потребление ресурсов одной-единственной кнопкой CB, вот эта Ваша... хм... Кнопка(?) вообще никак не сказывается на ресурсопотреблении? Ну кроме момента старта браузера, может быть.

Отредактировано Coroner (27-11-2017 21:55:00)

Отсутствует

 

№258128-11-2017 01:42:59

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: Stylish

Помогите скрыть иконки в урлбаре
2a4599f28b0020a380acc65e3b65b291.png

Отредактировано broker (28-11-2017 01:47:21)

Отсутствует

 

№258228-11-2017 03:08:47

wrong
Участник
 
Группа: Members
Зарегистрирован: 16-09-2015
Сообщений: 36
UA: Chrome 62.0

Re: Stylish

broker
Какую? Разноцветный который?

Добавлено 28-11-2017 03:09:48
уточни название или от какого расширения

Отредактировано wrong (28-11-2017 03:09:48)

Отсутствует

 

№258328-11-2017 03:16:07

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: Stylish

wrong

Какую? Разноцветный который?

FVD Speed Dial и вид для чтения.

Отсутствует

 

№258428-11-2017 03:18:34

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2123
UA: Firefox 52.0

Re: Stylish

Coroner пишет

этот Ваш XBL

Забавная работа со Словом. Улыбнулся, спасибо :).
Introduction to XBL
XBL Removal

эта Ваша... хм... Кнопка(?) вообще никак не сказывается на ресурсопотреблении? Ну кроме момента старта браузера

Ну прям чтоб вообще никак, так быть не может.
Когда сама кнопка будет подвешена на DOM-дерево,
и обретёт собственных XBL-потомков, то для них стили будут пересчитаны,
и вот тут-то, для первого из них, и подключится этот биндинг, и код конструктора будет исполнен.

Таким обазом какие-то ресурсы будут задействованы.
Уж не знаю как по сравнению с CB-кнопкой, но для тех, кому такое надо,
сама возможность этого бесценна, пусть даже и откушает немного сколько-то.

Отсутствует

 

№258528-11-2017 03:35:56

wrong
Участник
 
Группа: Members
Зарегистрирован: 16-09-2015
Сообщений: 36
UA: Chrome 62.0

Re: Stylish

broker
ридер если не нужен совсем: about:config
reader.parse-on-load.enabled ; false
reader.parse-on-load.force-enabled ; false

или просто спрятать

Выделить код

Код:

#reader-mode-button {display: none !important}

FVD Speed Dial

Выделить код

Код:

#pavel_sherbakov_gmail_com-page-action {display: none !important}

Отсутствует

 

№258628-11-2017 03:49:36

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: Stylish

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

Отсутствует

 

№258728-11-2017 16:30:45

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 526
UA: Firefox 48.0

Re: Stylish

Подскажите пожалуйста, как убрать замыливание последних букв названий вкладок, и вернуть многоточие?


«The Truth Is Out There»

Отсутствует

 

№258828-11-2017 16:42:56

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 55.0

Re: Stylish

unter_officer, насчёт замыливания было в теме выше. https://forum.mozilla-russia.org/viewto … 88#p735788

Выделить код

Код:

.tabbrowser-tab .tab-label-container[textoverflow]:not([pinned]) {
    mask-image: none !important;
}

А вот про многоточие — не подскажу.

Отсутствует

 

№258928-11-2017 16:53:15

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 526
UA: Firefox 48.0

Re: Stylish

Coroner
Про замыливание видел. Это не совсем то. Хотелось бы вернуть вариант с точками в конце, как было в ранних версиях FF.


«The Truth Is Out There»

Отсутствует

 

№259029-11-2017 03:42:08

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: Stylish

Помогите убрать серый фон, хочу чтоб было как слева только белые цифры.
https://s8.hostingkartinok.com/uploads/thumbs/2017/11/b4eff6e2bab503525b3b3fb8ba8ac868.png
и здесь
c356bc471769effe7854d31ca86170e1.png
Хочу добиться чтоб выглядело так
0dff01906be94a2f62eb49e8068cf70f.png

Отредактировано broker (29-11-2017 03:47:19)

Отсутствует

 

№259124-12-2017 10:57:54

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: Firefox 52.0

Re: Stylish

У меня есть стиль, который запускается из кнопки

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

Выделить код

Код:

/*AGENT_SHEET*/

/* Не работает на сайтах */
@-moz-document regexp("https?://(?!www.pcradio.ru|ria.ru|pipec.ru|www.redtube.com|www.portableappz.ru|hi-news.ru).*") 
{
a, a span {text-decoration: none !important; color: blue !important;}
  
a:visited, a:visited span {color: red !important;}

a:hover, a:hover span {text-shadow: 0px 0px 8px green !important; transition: text-shadow .2s  linear !important;}

a:active, a:active span  {color: Silver !important;}
}

/* Работает на сайтах */
@-moz-document domain("hi-news.ru"), domain("pcradio.ru"), domain("ria.ru"), domain("pipec.ru"), domain("www.redtube.com"), 
 domain("www.portableappz.ru")
{
a:visited, a:visited span {color: #FF0000 !important;}

a:hover, a:hover span {text-shadow: 0px 0px 8px green !important; transition: text-shadow .2s  linear !important;}
  
a:active, a:active span  {color: Silver !important;}
}


При внедрении его в Stylus работает нормально, а из кнопки - как бог положит:
может включиться после десятка кликов, а может и нет.
Я так понимаю, проблема со строками типа
@-moz-document regexp
@-moz-document domain

Но что делать не знаю.
Подскажите, плз. :blush:

Отсутствует

 

№259224-12-2017 12:34:56

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2063
UA: unknown 0.0

Re: Stylish

Может поправить регулярку
regexp("https?\:\/\/(?!www.pcradio.ru|ria.ru|pipec.ru|www.redtube.com|www.portableappz.ru|hi-news.ru).+")

если нет значит кнопка глючит

Отредактировано Vitaliy V. (28-12-2017 13:52:14)

Отсутствует

 

№259324-12-2017 13:41:30

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: Firefox 52.0

Re: Stylish

Возможно, это баг ФФ57 ?

Gecko reuses the same mechanism used when parsing a url-token when parsing the domain() or url-prefix() URL matching functions for a @-moz-document rule.

Firefox's new parallel CSS engine (also known as Quantum CSS or Stylo, planned for release in Firefox 57) does not use the same mechanism and it does not consider tokens invalid when they contain brackets or quotes (bug 1362333).

Этот стиль включается нормально

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

Выделить код

Код:

/*AGENT_SHEET*/

  a, a span 
{
  text-decoration: none !important; 
  color: blue !important;
}
a:visited, a:visited span {color: red !important;}

a:hover, a:hover span 
{
  text-shadow: 0px 0px 8px green !important; 
  transition: text-shadow .2s  linear !important;
}
a:active, a:active span  {color: Silver !important;}

Отредактировано Ultima2m (24-12-2017 13:44:42)

Отсутствует

 

№259424-12-2017 14:49:36

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2063
UA: unknown 0.0

Re: Stylish

Да возможно баги Stylo благо я не пользую [firefox] Quantum

Отредактировано Vitaliy V. (28-12-2017 13:52:27)

Отсутствует

 

№259525-12-2017 19:28:52

leshiy_odessa
Участник
 
Группа: Members
Зарегистрирован: 13-02-2009
Сообщений: 288
UA: Firefox 56.0

Re: Stylish

После долгой и долгой долбежки получилось заставить изменить цвет уже просмотренных видео в плей листе youtube. Всё решилось этим — h3.ytd-compact-video-renderer {color: inherit}

Выделить код

Код:

/*  --- ЗАГОЛОВКИ ПОСЕЩЕННЫЕ «ВИДЕО»--- */
h3.style-scope.ytd-grid-video-renderer #video-title:visited,
h3.title-and-badge.style-scope.ytd-video-renderer #video-title:visited
{color: #999 !important;}

/*  --- ЗАГОЛОВКИ ПОСЕЩЕННЫЕ ПЛЕЙ ЛИСТ --- */
h3.ytd-compact-video-renderer
{color: inherit}
a.yt-simple-endpoint.ytd-compact-video-renderer:visited
{color: #999 !important;}

Отсутствует

 

№259602-01-2018 15:52:21

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1699
UA: Firefox 51.0

Re: Stylish

Помогите пожалуйста доработать стиль, который на ютубе автоматически расскрывает описание видео и комментарии (кнопка "Читать дальше").
Можно ли добавить, чтобы он так же авоматически расскрывал ответы (кнопка "Показать ответы")? (Я использую старый интерфейс ютуба)
https://userstyles.org/styles/137943/al … escription

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

Выделить код

Код:

@-moz-document domain("www.youtube.com") {
  /* Expand comments */
.comment-renderer-text-content, /* old UI */
ytd-comment-renderer ytd-expander[collapsed] > #content.ytd-expander /* Material UI */
{
    max-height: none;
}

/* Remove "Read more" link in comments */
.comment-text-toggle-link.read-more, /* old UI */
ytd-comment-renderer #more /* Material UI */
{
    display: none;
}

  /* Expand description (old UI) */
#watch-description #watch-description-text {
    max-height: none;
    padding-top: 4px;
}

/* Expand metadata (old UI) */
#watch-description  #watch-description-extras li {
    display: block;
}

/* Hide "Show more" button in description (old UI only) */
#action-panel-details button.yt-uix-button-expander {
    display: none;
}

/* Expand description (Material UI) */
#meta .ytd-watch #container .ytd-video-secondary-info-renderer #content {
    max-height: none;
}
}



РЕШЕНО

https://forum.mozilla-russia.org/viewto … 55#p751455

Отредактировано Stkvsky (02-01-2018 19:04:25)

Отсутствует

 

№259703-01-2018 14:19:37

Wondrous
Участник
 
Группа: Members
Зарегистрирован: 12-11-2006
Сообщений: 97
UA: Firefox 53.0

Re: Stylish

Кто может подсказать, можно ли как-то сделать, чтобы на кнопке загрузки показывалось количество загрузок, а не время?

Отсутствует

 

№259803-01-2018 16:54:49

leshiy_odessa
Участник
 
Группа: Members
Зарегистрирован: 13-02-2009
Сообщений: 288
UA: Firefox 56.0

Re: Stylish

Wondrous пишет

Кто может подсказать, можно ли как-то сделать, чтобы на кнопке загрузки показывалось количество загрузок, а не время?

Я подозреваю что вам сюда — «Настройка внешнего вида Firefox в userChrome.css».

Отсутствует

 

№259903-01-2018 17:15:11

Wondrous
Участник
 
Группа: Members
Зарегистрирован: 12-11-2006
Сообщений: 97
UA: Firefox 53.0

Re: Stylish

leshiy_odessa, спасибо, спросил и в той теме.

Отсутствует

 

№260007-01-2018 01:54:08

Faers
Участник
 
Группа: Members
Зарегистрирован: 09-11-2017
Сообщений: 6
UA: Firefox 57.0

Re: Stylish

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

Отсутствует

 

Board footer

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