Поиск текущего пользователя в системе из расширения Firefox - PullRequest
6 голосов
/ 30 декабря 2008

Я пишу расширение Firefox, которое должно знать, какое имя пользователя в данный момент вошел в систему в Windows, Mac или Linux. Так что, если я вошел в мою машину как "brh", он вернет "brh". Любая идея, как это сделать из расширения JavaScript?

Ответы [ 4 ]

11 голосов
/ 30 декабря 2008

Расширения Firefox воспроизводятся по другим правилам, чем обычный JavaScript, запущенный на странице: поиск текущего пользователя абсолютно возможен.

Откройте консоль ошибок (в разделе Инструменты) и введите:

Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USER')

Переменные окружения, с которых Firefox был запущен, доступны через этот NsIEnvironment XPCOM компонент .

Возможно, вам придется настроить это для каждой платформы. Если ничего не помогает, вы можете создать NsIFile в ~, а затем посмотреть на .path; Хотя я не уверен, что в этом случае соблюдаются выражения оболочки ...

1 голос
/ 16 сентября 2015

Отмеченный правильный ответ работает нормально. Я использую это в нашем расширении в Firefox 38. Я также использую события, чтобы страница могла взаимодействовать с расширением и получать свойства окон из расширения.

getWindowsProperty: function (prop) { return Components.classes ["@ mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get(prop); },

0 голосов
/ 30 декабря 2008

Да, не возможно ... Javascript работает в защищенной среде, и все расширения FF - это javascript, поэтому вы не сможете много взаимодействовать с ОС ... но я не смогу найти способ узнать (это было бы ОЧЕНЬ круто ...)

0 голосов
/ 30 декабря 2008

Не думаю, что это возможно, похоже, это была бы дыра в безопасности, если бы это было.

...