Добрый день. Подскажите, у меня установлен firefox на всех компьютерах сотрудников. Я единожды ввел все необходимые для них пароли и браузер их запомнил. Мне бы нужно что бы мои сотрудники не могли посмотреть их в настройках и я не очень хочу вводить им каждый раз заново пароли когда они приходят в офис с утра. Сейчас установил себе мастер паролей, протестирую пару дней, но мне кажется что это не мой вариант так как за два часа мастер паролей спросил меня несколько раз пароли. Помогите пожалуйста. Заранее спасибо.

Использовать поиск по форуму.

Друзья, проблема до сих пор актуальна. Пользовался поиском, нашел решение что бы убрать кнопку "сохраненные логины" с помощью userChrome.css. Конечно такого файла я не нашел, но некоторые люди советуют искать userChrome-example.css - этого файла у меня тоже не оказалось. Тогда я спокойно создал userChrome.css в папке chrome в профилях мозиллы и вставил туда по очереди разные коды что советуют в этих форумах (последний код от середины 2015 года, я не знаю, но может он уже не актуален) Результата не последовало к сожалению. Ребята, подскажите как мне убрать эту кнопку и в firefox и в thunderbird. Буду очень благодарен. windows 10, firefox 46, thunderbird 45

ial1408
Для новых версий FF вам нужен такой код для userContent.css

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

Выделить код

Код:

@namespace url("http://www.w3.org/1999/xhtml");
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

@-moz-document url("chrome://passwordmgr/content/passwordManager.xul") {
    xul|*#togglePasswords {
        display: none !important;
    }
}


И такой для userChrome.css
скрытый текст

Выделить код

Код:

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

@-moz-document url("chrome://passwordmgr/content/passwordManager.xul") {
    #togglePasswords {
        display: none !important;
    }
}


Код для userChrome.css тоже нужен, потому-что менеджер паролей может быть показан в отдельном окне с помощью расширений...

31-05-2016 11:27:31
Для Thunderbird должен подойти код userChrome.css.

P.S. забыл написать что это скроет кнопку отобразить/скрыть пароли в менеджере.

А так скрыть кнопку "сохраненные логины" для userContent.css

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

Выделить код

Код:

@namespace url("http://www.w3.org/1999/xhtml");
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

@-moz-document url-prefix("about:preferences"), url-prefix("chrome://browser/content/preferences/in-content/preferences.xul") {
    xul|*#showPasswords {
        display: none !important;
    }
}


И скрыть содержимое окна менеджера паролей (на случай открытия с помощью расширений) в userChrome.css
скрытый текст

Выделить код

Код:

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

@-moz-document url("chrome://passwordmgr/content/passwordManager.xul") {
    #SignonViewerDialog > * {
        display: none !important;
    }
}

Vitaliy V. пишет

(на случай открытия с помощью расширений)

Если уж заботиться о возможности наличия расширений, то стоит позаботиться и о случае запуска с отключёнными расширениями: при этом ведь не только расширения игнорируются, но и user*.css.
Так что стоит заодно и этот пункт меню убрать (смирившись с невозможностью полного отключения безопасного запуска).

yup пишет

Так что стоит заодно и этот пункт меню убрать (смирившись с невозможностью полного отключения безопасного запуска).

По сути он никому не интересен, поскольку ключ командной строки safe-mode никто не отменял и никаким способом вы его не отключите :)

yup
Да это всё конечно легко обойти, если скрыть пункт можно перезапустить в безопасном режиме например кнопкой CB - safeModeRestart();
Скрыть пункт так в userChrome.css

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

Выделить код

Код:

toolbarbutton.subviewbutton[oncommand^="safeModeRestart"] {
    display: none !important;
}


И userContent.css
скрытый текст

Выделить код

Код:

@-moz-document url("about:support") {
    #restart-in-safe-mode-button {
        display: none !important;
    }
}

Vitaliy V. пишет

Да это всё конечно легко обойти, если скрыть пункт можно перезапустить в безопасном режиме например кнопкой CB - safeModeRestart();

Так я ж и говорю, что полностью отменить возможность безопасного запуска невозможно. Но чем сильнее она спрятана, тем лучше.

А более-менее разбирающийся пользователь пароли вытащит в любом случае, общедоступные методы и средства для этого есть.

Вот ещё вариант
1. Создать C:\Program Files\Firefox\defaults\pref\local-settings.js

Выделить код

Код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "ial1408.cfg");

2. Создать C:\Program Files\Firefox\ial1408.cfg

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

Выделить код

Код:

//
lockPref("xpinstall.enabled", false);   // чтобы CB не установили


const Cc = Components.classes;
const Ci = Components.interfaces;
Components.utils.import("resource://gre/modules/Services.jsm");
var profileDir = Services.dirsvc.get("ProfD", Ci.nsILocalFile);
profileDir.append("chrome");
if( !profileDir.exists() || !profileDir.isDirectory() ) {
  profileDir.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
}
profileDir.append("userContent.css");
var fos = 
Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
fos.init(profileDir, -1, -1, false);
var css = "#showPasswords { display: none;}";
fos.write(css, css.length);
fos.close();


У всех пользователей будут созданы папки chrome с файлом userContent.css.
Если у пользователей уже были такие файлы, то они будут жестоко снесены.
Если пользователи их удалят, то при перезапуске папки с файлами создадутся снова.
https://mike.kaply.com/2012/03/22/custo … fig-files/
Или использовать расширение CCK2 https://github.com/mkaply/cck2wizard/releases

Насчёт safeMode. Раньше, когда вкладки были прямоугольными, работало такое:
Firefox\distribution\bundles\disablesafemode\chrome\content\safeMode.xul

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

Выделить код

Код:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/"?>
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        id="safeModeDialog"
        buttons="accept"
        ondialogcancel="closeFirefox();"
        ondialogaccept="closeFirefox();">
  <script type="application/x-javascript;version=1.7">
  <![CDATA[
  function closeFirefox() {
    Components.utils.import("resource://gre/modules/Services.jsm");
    Services.startup.quit(Services.startup.eForceQuit);
  }
  ]]>
  </script>
  <description>
  Safe Mode has been disabled.
  </description>
</dialog>


Firefox\distribution\bundles\disablesafemode\chrome.manifest

Выделить код

Код:

content disablesafemode chrome/content/
override chrome://browser/content/safeMode.xul chrome://disablesafemode/content/safeMode.xul

Работало в т.ч. с ярлыком  -safe-mode, не знаю как с командной строкой. Сейчас не работает, может можно что-то изменить.

negodnik
А с переустановкой [firefox] как быть? Скорее всего пользователи снесут и папку установки с оставшимися файлами

Переустановкой, поди, администрантор занимается, а не бесправные пользователи.
Вы лучше скажите, можно ли в *.cfg что-то добавить, чтобы создавался ещё и userChrome, а не только userContent?
И как safeMode.xul переделать под современные версии?

negodnik
Не знаю я и не пробовал работает-ли вообще у меня. А на портабле будет работать?

Vitaliy V.
Да, я на портабле Fx 46 и пробовал, кнопка скрывается. safeMode на портабле Fx 24 работает, а на 46 не хочет.

ial1408
Наверное, имеет смысл добавить в ial1408.cfg
lockPref("services.sync.engine.passwords", false);

ial1408
negodnik
Может так с ial1408.cfg

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

Выделить код

Код:

//
lockPref("xpinstall.enabled", false);   // чтобы CB не установили
lockPref("services.sync.engine.passwords", false);
const Cc = Components.classes;
const Ci = Components.interfaces;
Components.utils.import("resource://gre/modules/Services.jsm");

var chrome = {
    userContent: function() {
        var profileDir = Services.dirsvc.get("ProfD", Ci.nsILocalFile);    
        profileDir.append("chrome");
        if( !profileDir.exists() || !profileDir.isDirectory() )  profileDir.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
        profileDir.append("userContent.css");
        var fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
        fos.init(profileDir, -1, -1, false);
        var css = "#showPasswords { display: none !important;}";
        fos.write(css, css.length);
        fos.close();
    },
    userChrome: function() {
        var profileDir = Services.dirsvc.get("ProfD", Ci.nsILocalFile);    
        profileDir.append("chrome");
        if( !profileDir.exists() || !profileDir.isDirectory() )  profileDir.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
        profileDir.append("userChrome.css");
        var fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
        fos.init(profileDir, -1, -1, false);
        var css = "#SignonViewerDialog > * {display: none !important;}";
        fos.write(css, css.length);
        fos.close();
    }
}
chrome.userContent();
chrome.userChrome();

Vitaliy V.
Спасибо большое, создались оба файла. Оба действуют (где менеджер паролей я не знаю, если честно, поэтому добавил ненажимаемось кнопки закладок — работает).

UPD:
ial1408
Чтобы не лезли в about:config, добавить в Firefox\browser\chrome.manifest

Выделить код

Код:

override chrome://global/content/config.xul data:text/html,Disabled
negodnik пишет

где менеджер паролей я не знаю

Вот так можно открыть с CB

Выделить код

Код:

window.openDialog("chrome://passwordmgr/content/passwordManager.xul", "Toolkit:PasswordManager", "chrome,titlebar,toolbar,centerscreen,resizable=yes,dialog=no").focus();

Спасибо. Пустое окошко открывается. Кстати, всё работает и без important.

Vitaliy V.
negodnik
Ребята огромное спасибо за содействие и участие но походу у меня руки не из того места растут. Сделал все что вы сказали. Все равно могу посмотреть свои пароли. Может есть у кого нибудь возможность уделить мне 5 минут в скайпе, я бы отблагодарил на сок с шоколадкой.

ial1408
Скайпом не пользуюсь, если устроит пишите в Л.С.

ial1408
negodnik
Получилось сделать без файлов userChrome.css, userContent.css и ярлык с -safe-mode теперь не проблема

скрытый текст
Создать C:\Program Files\Mozilla Firefox
ial1408.cfg

Выделить код

Код:

//
lockPref("services.sync.engine.passwords", false);

var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
var fileurl = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("PrfDef", Components.interfaces.nsIFile).QueryInterface(Components.interfaces.nsILocalFile);
fileurl.append("style.css");
var uri = ios.newFileURI(fileurl);
if (!sss.sheetRegistered(uri, sss.AGENT_SHEET)) sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);


скрытый текст
Создать C:\Program Files\Mozilla Firefox\defaults\pref
local-settings.js

Выделить код

Код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "ial1408.cfg");

style.css

Выделить код

Код:

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");

@-moz-document url-prefix("about:preferences"), url-prefix("chrome://browser/content/preferences/in-content/preferences.xul") {
    #showPasswords {
        display: none !important;
    }
}

@-moz-document url("chrome://passwordmgr/content/passwordManager.xul") {
    #SignonViewerDialog > * {
        display: none !important;
    }
    
    #SignonViewerDialog {
        min-width: 25em !important;
    }
}

@-moz-document url("about:support") {
    html|*#safe-mode-box {
        display: none !important;
    }
}

@-moz-document url("chrome://browser/content/browser.xul") {
    toolbarbutton.subviewbutton[oncommand^="safeModeRestart"] {
        display: none !important;
    }
}

@-moz-document url("chrome://browser/content/safeMode.xul") {    
    #safeModeDialog > * {
        display: none !important;
    }
    
    #safeModeDialog::after {
        content: "Safe Mode has been disabled." !important;
    }
}

Vitaliy V.
Спасибо большое, работает. Пользовательские файлы .css не влияют на отображение кнопки.
Но в первой строке .cfg всё-таки нужно //. А то не блокируются параметры config’а.

Vitaliy V.
Ура, спасибо, заработало в firefox. С меня сок и шоколадка, скидывайте данные. Не поможете еще решить антологичную проблему с thunderbird.
Я так понимаю что при обновлении браузера это все может слететь?

negodnik
Ага, спасибо поправил

Vitaliy V.
negodnik
Извиняюсь, это был не конечный вариант? Надо что то поправить?

UPD
Добавил в cfg "//" в самое начало

ial1408 пишет

Я так понимаю что при обновлении браузера это все может слететь?

Не думаю (разве что когда xul xpcom удалят) но скорее при переустановке

ial1408 пишет

Не поможете еще решить антологичную проблему с thunderbird.

thunderbird не пользую, но посмотрю...


01-06-2016 18:41:46
ial1408
Посмотрел в thunderbird, там нужно заменить файл style.css

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

Выделить код

Код:

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

@-moz-document url("chrome://messenger/content/preferences/preferences.xul") {
    #securityPrefsPanels  button[oncommand*="showPasswords"] {
        display: none !important;
    }
}

@-moz-document url("chrome://passwordmgr/content/passwordManager.xul") {
    #SignonViewerDialog > * {
        display: none !important;
    }
    
    #SignonViewerDialog {
        min-width: 25em !important;
    }
}

@-moz-document url("chrome://messenger/content/safeMode.xul") {    
    #safeModeDialog > * {
        display: none !important;
    }
    
    #safeModeDialog {
        min-width: 25em !important;
    }

    #safeModeDialog::after {
        content: "Safe Mode has been disabled." !important;
    }
}

Vitaliy V.
Огонь! Как отблагодарить?

ial1408
Да все нормально, спасибо вполне достаточно. И ещё благодаря наводке negodnik иначе я вряд ли стал это делать

Vitaliy V.
Троектратное спасибо тебе и negodnikу!