Как отображать название профиля Firefox в 57 версии в окне этого приложения? Какие для этого существуют дополнения (или иные способы)?

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

через юзерхром или стайлиш можно попробовать
селектор элемента перед которым будет вставлен текст выбираем на своё усмотрение
селекторэлемента:before {content:"название профиля" !important;}

lehaskell пишет

(или иные способы)?

0_15bf5b_fbc21b12_orig.png

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

Выделить код

Код:

#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;
}

Vitaliy V.
Можно без перебора профилей:

Выделить код

Код:

Components.classes["@mozilla.org/toolkit/profile-service;1"]
    .createInstance(Components.interfaces.nsIToolkitProfileService)
    .selectedProfile
    .name;
Infocatcher пишет

Можно без перебора профилей:
Components.classes["@mozilla.org/toolkit/profile-service;1"] .createInstance(Components.interfaces.nsIToolkitProfileService) .selectedProfile .name;

Увы но похоже нельзя, если запустить браузер с параметром например  -p "Test5"
то

скрытый текст
0_15bf6a_a77beac2_orig.png

Vitaliy V. пишет

Увы но похоже нельзя, если запустить браузер с параметром например  -p "Test5"

Хм, да, печально. То есть это не 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;
  }
}

не понимаю зачем столько извращений со скриптами то?
всё равно ж в каждом созданном профиле нужно это пихать. так не проще ли стилем ?
скопировать юзерхром да изменить текст
плюс расположить можно где угодно и текст любой

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

Выделить код

Код:

#new-tab-button:before {
content:"Test Profile" !important;
-moz-appearance: none !important;
color: ffffff !important;
font-size: 150% !important;
}

okkamas_knife пишет

всё равно ж в каждом созданном профиле нужно это пихать.

Можно и не пихать в каждый профиль, а сделать как там https://forum.mozilla-russia.org/viewtopic.php?id=70326
но config.js заменить/добавить

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

Выделить код

Код:

//
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) {}

А без подключения к Интернету (и доступного сервера mozilla.org) эти способы работать будут?

lehaskell
Конечно будут, а с чего взяли что нет? Если из-за того что типа http: есть <bindings xmlns='http://www.mozilla.org/xbl'...
так это mozilla namespace (пространство имен)

Vitaliy V., да действительно этот момент смутил, тем более, что по тем источникам информации по XBL, что я читал, это было названо "URL-адресом сервера". Поэтому спасибо за прояснение ситуации.

Остался только вопрос, в какой файл всё это записать и как заставить Firefox понять его содержимое?