>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Firefox http://forum.mozilla-russia.org/viewforum.php?id=4 >Отображение названия профиля в Firefox 57 http://forum.mozilla-russia.org/viewtopic.php?id=73056 |
lehaskell > 19-01-2018 21:16:14 |
Как отображать название профиля Firefox в 57 версии в окне этого приложения? Какие для этого существуют дополнения (или иные способы)? |
Coroner > 19-01-2018 21:23:09 |
Такого вроде не встречалось. |
okkamas_knife > 19-01-2018 21:38:10 |
через юзерхром или стайлиш можно попробовать |
Vitaliy V. > 20-01-2018 10:38:25 |
lehaskell пишет
скрытый текст Выделить код Код:#PanelUI-menu-button > stack > .toolbarbutton-icon, #PanelUI-menu-button > .toolbarbutton-icon { -moz-binding: url("data:text/xml,<bindings 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'><binding id='name'><implementation><field name='button'>document.getElementById('PanelUI-menu-button');</field><constructor><![CDATA[ var Cc = Components.classes, Ci = Components.interfaces, cpd; try { cpd = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('ProfD', Ci.nsIFile); } catch (e) {} if (!cpd) return; var itr = Cc['@mozilla.org/toolkit/profile-service;1'].createInstance(Ci.nsIToolkitProfileService).profiles; while (itr.hasMoreElements()) { var profile = itr.getNext().QueryInterface(Ci.nsIToolkitProfile); if (profile.rootDir.path == cpd.path) { this.button.label = profile.name; break; } } ]]></constructor></implementation></binding></bindings>#name") !important; } #PanelUI-menu-button > .toolbarbutton-text { display: -moz-box !important; -moz-box-ordinal-group: 0 !important; } |
Infocatcher > 20-01-2018 12:30:24 |
Vitaliy V. Выделить код Код:Components.classes["@mozilla.org/toolkit/profile-service;1"] .createInstance(Components.interfaces.nsIToolkitProfileService) .selectedProfile .name; |
Vitaliy V. > 20-01-2018 12:57:25 |
Infocatcher пишет
Увы но похоже нельзя, если запустить браузер с параметром например -p "Test5" скрытый текст |
Infocatcher > 20-01-2018 13:43:05 |
Vitaliy V. пишет
Хм, да, печально. То есть это не selected profile, а default profile. about:profiles -> chrome://global/content/aboutProfiles.js Выделить код Код:// nsIToolkitProfileService.selectProfile can be used only during the selection // of the profile in the ProfileManager. If we are showing about:profiles in a // tab, the selectedProfile returns the default profile. // In this function we use the ProfD to find the current profile. function findCurrentProfile() { let cpd; try { cpd = Cc["@mozilla.org/file/directory_service;1"] .getService(Ci.nsIProperties) .get("ProfD", Ci.nsIFile); } catch (e) {} if (cpd) { let itr = ProfileService.profiles; while (itr.hasMoreElements()) { let profile = itr.getNext().QueryInterface(Ci.nsIToolkitProfile); if (profile.rootDir.path == cpd.path) { return profile; } } } // selectedProfile can trow if nothing is selected or if the selected profile // has been deleted. try { return ProfileService.selectedProfile; } catch (e) { return null; } } |
okkamas_knife > 20-01-2018 14:41:04 |
не понимаю зачем столько извращений со скриптами то? скрытый текст Выделить код Код:#new-tab-button:before { content:"Test Profile" !important; -moz-appearance: none !important; color: ffffff !important; font-size: 150% !important; } |
Vitaliy V. > 20-01-2018 18:48:22 |
okkamas_knife пишет
Можно и не пихать в каждый профиль, а сделать как там https://forum.mozilla-russia.org/viewtopic.php?id=70326 скрытый текст Выделить код Код:// try { var Cc = Components.classes, Ci = Components.interfaces; var text = `@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @-moz-document url("chrome://browser/content/browser.xul") { #PanelUI-menu-button > stack > .toolbarbutton-icon, #PanelUI-menu-button > .toolbarbutton-icon { -moz-binding: url("data:text/xml,<bindings 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'><binding id='name'><implementation><field name='button'>document.getElementById('PanelUI-menu-button');</field><constructor><![CDATA[ var Cc = Components.classes, Ci = Components.interfaces, cpd; try { cpd = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('ProfD', Ci.nsIFile); } catch (e) {} if (!cpd) return; var itr = Cc['@mozilla.org/toolkit/profile-service;1'].createInstance(Ci.nsIToolkitProfileService).profiles; while (itr.hasMoreElements()) { var profile = itr.getNext().QueryInterface(Ci.nsIToolkitProfile); if (profile.rootDir.path == cpd.path) { this.button.label = profile.name; break; } } ]]></constructor></implementation></binding></bindings>#name") !important; } #PanelUI-menu-button > .toolbarbutton-text { display: -moz-box !important; -moz-box-ordinal-group: 0 !important; } }`; var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var nis = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); var uri = nis.newURI("data:text/css;charset=utf-8," + encodeURIComponent(text), null, null); if (!sss.sheetRegistered(uri, sss.AGENT_SHEET)) sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); } catch(e) {} |
lehaskell > 20-01-2018 23:55:59 |
А без подключения к Интернету (и доступного сервера mozilla.org) эти способы работать будут? |
Vitaliy V. > 21-01-2018 00:05:50 |
lehaskell |
lehaskell > 21-01-2018 01:49:23 |
Vitaliy V., да действительно этот момент смутил, тем более, что по тем источникам информации по XBL, что я читал, это было названо "URL-адресом сервера". Поэтому спасибо за прояснение ситуации. Остался только вопрос, в какой файл всё это записать и как заставить Firefox понять его содержимое? |