Версия: 0.3.3
Размер: 20 Кб
Автор расширения: Paolo "Kaosmos"
Совместимо с версиями Firefox: 2.0-3.0
Совместимо с версиями Thunderbird: 2.0-3.0
Домашняя страница: http://nic-nac-project.de/~kaosmos/prof … er-en.html
Описание: Это расширение упрощает использование множества профилей в Firefox и Thunderbird.В меню File добавляются два пункта Open Profile Manager и Launch another profile и создав два или более профилей с разными настройками, к примеру профиль для работы Work и профиль для игр Game, можно легко переключатся между ними.
P.S.Отличная работа Kaosmos

Страница установки

demetsuri

Э... а перевод где?

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

memini
Мне захотелось для этого расширения сделать нечто большое ,чем простое упоминание в теме
которая не прикреплена и о существование которой я и не подозревал.

demetsuri

низзя :)

demetsuri
Добавил в Расширения для Firefox и Thunderbird

кстати, отличная идея. но у меня уже есть кнопки запуска отдельно на все профили ;)

Подскажите, что надо сделать, чтобы это расширение работало в Portable версии?

Shutnik

кстати, отличная идея. но у меня уже есть кнопки запуска отдельно на все профили

То есть ничего кроме это расширение не делает?

А одновременную работу нескольких профилей он допускает?
Или все равно надо настраивать под это систему?

Есть ли аналоги с русским языком?Тоже юзаю несколько профилей и хотелось бы иметь возможность переключения,без перезапуска лисы.
Не поделитесь как создать такие кнопари?

Shutnik

чудо:lol: всё работает:beer:....ставил с АМО, в меню ничего не отображалось, как же сразу не догадался взять отсюда :angel:

Forest

А одновременную работу нескольких профилей он допускает?

Да ;)

Добавлено Tue May 20 04:16:14 2008 :
vv07

хотелось бы иметь возможность переключения,без перезапуска лисы.

с помощью Menu Editor перетянул пункты ProfileSwitcher из меню Файл в context menu
d2ir0ij3uj.jpg
достаточно удобная альтернатива кнопочкам :rock:
m45lmGV9aw.jpg

Неплохо,беру на вооружение.

vv07 единственно только вот это окошко с выбором перед запуском профиля :/
75Rlf5AjY7.jpg

Добавлено Tue May 20 12:03:05 2008 :
жаль вот ещё - нет (?) :whiteflag:расширения что бы можно было прямо из контекстного меню открывать ссылку в другом профиле на выбор :)

нююююююю:dumb:

Можно ли с помощью этого расширения переключаться на профиль рассположенный в другой папке, на другом диске? На флэшке, например.

Хмм....а  для чего тогда расширение - Profile Manager and Synchronizer 0.1.8  ( https://addons.mozilla.org/ru/firefox/addon/9452 )

Народ - как сделать чтобы это упоминание о том - какой профиль сейчас активирован - не показывалось вообще нигде? Ни иконками, не подсказками?

Leopold в строке состояния  справа же :) а помнится ещё в каком-то расширении можно было название пофиля на титульную панель выносить :)

Расширение обновилось до версии 1.1, добавьте сюда уведомление.

Крошка Ру пишет

Leopold в строке состояния  справа же :) а помнится ещё в каком-то расширении можно было название пофиля на титульную панель выносить :)

Читайте внимательнее мой вопрос: я спрашивал "как ВЫключить" (т.е. чтобы вообще нигде не отображалось, какой сейчас профиль).

Но уже нашел, как сделать так, чтобы уведомление о том, какой сейчас профиль - НЕ показывалось нигде.

Minor пишет

Можно ли с помощью этого расширения переключаться на профиль рассположенный в другой папке, на другом диске? На флэшке, например.

Да, без проблем. Даже - на профиль на виртуальном диске.

Мне интересно, почему его нет на AMO?

Tiger.711 пишет

Мне интересно, почему его нет на AMO?

Да, я тоже задавался этим вопросом и не знаю ответа. Возможно, он там был,

Z&N пишет

чудо:lol: всё работает:beer:....ставил с АМО

но по каким-то причинам (может, - личным?) был удален, а автор потом не захотел... снова размещать?...
Кстати, мне уже встречались другие хорошие расширения с подобным отсутствием на АМО или очень большой трудностью в отыскании их там - вписываю в строку поиска правильное название, которое качал оттуда, но не могу найти... и только вписав другое сокращение или имя автора, нахожу. Еще бывало, что найти удавалось только сменив локализацию...

Актуальная версия ProfileSwitcher совместима с Firefox 5.0 и Thunderbird 5 и имеет 17 локализаций, в т.ч. - русскую и украинскую, так что, думаю, ее отсутствие на АМО - не помеха. :)

А может, и не по личным. Я не смог открыть код этого расширения и посмотреть, там какая-то непонятная кодировка. Неизвестно, что это расширение делает, вполне может быть каким-нибудь троянцем.

Надуманное расширение. Убрали и правильно сделали, что бы не вводить людей в заблуждение.  Зачем оно вообще нужно? Что разве так трудно создать ярлык с –p?

А что оно делает-то?

Tiger.711 пишет

А что оно делает-то?

Я же написал, то же самое что и ярлык с –p?:)

26-07-2011 11:47:00
И пользоваться им неудобно, т.к. для  выбора нужного профиля сначала нужно запустить [firefox], а ярлык всегда под рукой.

Ясно. (:
А как реализовано интерфейсно?

Tiger.711 пишет

А как реализовано интерфейсно?

Да точно так же как и у ярлыка, один в один.biggrin.gif Во всяком случае, так было, когда я  пробовал, до его удаления с AMO.

Всё-таки интересно, почему его удалили... Утекают пароли? Куки?

...пользоваться им неудобно, т.к. для  выбора нужного профиля сначала нужно запустить [firefox], а ярлык всегда под рукой.

Можно отдельной программкой пользоваться > TrayLauncy :)

mserv , Tiger.711   оно не просто  запускать профиля , а для работы сразу с несколькими профилями :sick:

... и например там можно открыть страницу из активной вкладки в профиле, выбранном из выпадающего списка (значок ProfileSwitcher в панели дополнений ) , правда у Profile Manager and Synchronizer это реализованно на мой взгляд удобнее - через стандартное контекстное меню , но данное расширение к сожалению слишком навороченное :whistle:

Крошка Ру пишет

оно не просто  запускать профиля , а для работы сразу с несколькими профилями :sick:

Так и с помощью ярлыков можно запустить разные профили. Зачем для этого лишнее дополнение?dntknw.gif

Крошка Ру пишет

и например там можно открыть страницу из активной вкладки в профиле, выбранном из выпадающего списка (значок ProfileSwitcher в панели дополнений )

Не понял, чего где открывать?scratch_one-s_head.gif

Крошка Ру пишет

правда у Profile Manager and Synchronizer это реализованно на мой взгляд удобнее - через стандартное контекстное меню , но данное расширение к сожалению слишком навороченное :whistle:

И его тоже удалили с АМО Profile Manager and Synchronizer :: Дополнения Firefoxgrin.gif

26-07-2011 13:40:17

Крошка Ру пишет

Можно отдельной программкой пользоваться > TrayLauncy :)

А смысл захламлять ось, когда всё можно сделать подручными средствами?grin.gif

Tiger.711 пишет

А может, и не по личным. Я не смог открыть код этого расширения и посмотреть, там какая-то непонятная кодировка. Неизвестно, что это расширение делает, вполне может быть каким-нибудь троянцем.

Конечно, это очень опасТный троянец, замаскерованный и закодерованный!!!  :lol:


Код опасТного троянца, изучайте:

скрытый текст
// Global variables

var PS_appname_win;
var PS_appname_mac;
var PS_appname_linux;
var PS_appname_sh;
var PS_appname_debian;
var PS_appname_gnu;

var PS_firefox = "chrome://browser/content/browser.xul";
var PS_thunderbird = "chrome://messenger/content/messenger.xul";
var PS_addressbook = "chrome://messenger/content/addressbook/addressbook.xul";

var PS_isThunderbird;
var PS_windowName;

var profileLauncherPrefs =     Components.classes["@mozilla.org/preferences-service;1"].
    getService(Components.interfaces.nsIPrefBranch);
   
var PS_bundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
            .getService(Components.interfaces.nsIStringBundleService);
var PS_bundleFile = PS_bundleService.createBundle("chrome://profilelauncher/locale/profilelauncher.properties");

var PS_converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
                 .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
PS_converter.charset = "UTF-8";

var profileLauncher = {

    os : navigator.platform.toLowerCase(),

    init: function() {
        if (document.location.href == PS_firefox) {
            PS_appname_win = "firefox.exe";
            PS_appname_mac = "firefox-bin";
            PS_appname_linux = "firefox";
            PS_appname_sh = "firefox.sh";
            PS_appname_debian = "/usr/bin/iceweasel";
            PS_appname_gnu = "icecat";
            PS_isThunderbird = false;
            PS_windowName = "navigator:browser";
        }
        else {
            PS_appname_win = "thunderbird.exe";
            PS_appname_mac = "thunderbird-bin";
            PS_appname_linux = "thunderbird";
            PS_appname_sh = "thunderbird.sh";
            PS_appname_debian = "/usr/bin/icedove";
            PS_isThunderbird = true;
            PS_windowName = "mail:3pane";
            if (document.getElementById("folderTree"))
                document.getElementById("folderTree").addEventListener("select", profileLauncher.setTitle, true);
        }
        profileLauncher.saveprofileinuse();
    },       

    quitPrompt : function() {
        var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                    .getService(Components.interfaces.nsIPromptService);
        var flags=promptService.BUTTON_TITLE_YES * promptService.BUTTON_POS_1 +
              promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_2 +
              promptService.BUTTON_TITLE_NO * promptService.BUTTON_POS_0;
        var quit  = promptService.confirmEx(window,PS_bundleFile.GetStringFromName("quittitle"), PS_bundleFile.GetStringFromName("quityesno"), flags, null, null, null, null, {});
        return quit;
    },

    confirmSafeMode: function() {
        var go = confirm(PS_bundleFile.GetStringFromName("confirmSafeMode"));
        return go;
    },

    runScript: function(item) {
        // Program install directory as nsIFile
        var execFile = Components.classes["@mozilla.org/file/directory_service;1"]
                     .getService(Components.interfaces.nsIProperties)
                     .get("CurProcD", Components.interfaces.nsIFile);

        var option = profileLauncherPrefs.getIntPref("profileswitcher.close_before_launch");
        var loadCurrentPage = profileLauncherPrefs.getBoolPref("profileswitcher.load_current_page");
   
        var safemode = (item.getAttribute("id") == "profManagerSF" || item.getAttribute("id") == "profManagerSF2");
        if (safemode) {
            if (! profileLauncher.confirmSafeMode())
                return;
            var quit = true;
        }
        else if (option == 2) {
            var button = profileLauncher.quitPrompt();
            if (button == 2)
                return;
            else if (button == 1)
                var quit = true;
            else
                var quit = false;
        }
        else if (option == 1)
            var quit = true;
        else
            var quit = false;
           
        if (item.getAttribute("id").indexOf("profManager") == 0)
        // == "profManager" || item.getAttribute("id") == "profManager2" || item.getAttribute("id") == "profManager3" || item.getAttribute("id") == "profManagerSF" || item.getAttribute("id") == "profManagerSF2" || item.getAttribute("id") == "profManagerSF3")
            var prof = "";
       
        else {
            // Here it's used the native-charset profile's name,
            // because the Unicode one will not work
            var prof = item.getAttribute("profile");
            // Remove the "#. " part of the label
            prof = prof.replace(/\d+. /, "");
        }
        var args = new Array;
        var isWin = false;
        if (profileLauncher.os.indexOf("win") > -1) {
            execFile.append(PS_appname_win);
        }
        else if (profileLauncher.os.indexOf("linux") > -1) {
            execFile.append(PS_appname_linux);
            if (! execFile.exists()) {
                var found = false;
                if (! PS_isThunderbird) {
                    var tempFile = execFile.parent;
                    tempFile.append(PS_appname_gnu);
                    if (tempFile.exists()) {
                        execFile = tempFile;
                        found = true;
                    }
                }
                if (! found) {
                    // Some distros (for ex. OpenSuse) uses "firefox.sh" instead "firefox"
                    tempFile = execFile.parent;
                    tempFile.append(PS_appname_sh);
                    if (tempFile.exists()) {
                        execFile = tempFile;
                        found = true;
                    }
                }
                if (! found) {
                    // Debian uses "iceweasel", but it is located in /usr/bin
                    var debianFile = Components.classes["@mozilla.org/file/local;1"]
                                 .createInstance(Components.interfaces.nsILocalFile);
                    debianFile.initWithPath(PS_appname_debian);
                    if (debianFile.exists()) {
                        execFile = debianFile;
                        found = true;
                    }           
                }
            }
        }
        else if (profileLauncher.os.indexOf("mac") > -1) {
            execFile.append(PS_appname_mac);
        }
        else {
            alert(PS_bundleFile.GetStringFromName("unknownos"));
            return;
        }

        if (! execFile.exists()) {
            alert(PS_bundleFile.GetStringFromName("noexecfile"));
            return;
        }

       
        args.push("-P");
        args.push(prof);
        args.push("-no-remote");
        if (safemode)
            args.push("-safe-mode");
        if (prof != "" && loadCurrentPage)
            args.push(window.content.location.href);
       
        var process = Components.classes["@mozilla.org/process/util;1"]
            .createInstance(Components.interfaces.nsIProcess);
        process.init(execFile);
       

        if (quit) {
            var quitDelay = 1000;
            // I'm not sure at 100% that this will work also with very slow computer and
            // with very old Firefox/Thunderbird version, so there is a hidden preference
            // to allow the user to use the old (1.1 version and earlier) method
            if (profileLauncherPrefs.getBoolPref("profileswitcher.use_onbeforeunload") ) {
                quitDelay = 500;
                window.onbeforeunload = function (evt) {
                    process.run(false,args,args.length);
                };
            }
            else
                process.run(false,args,args.length);
            window.setTimeout(goQuitApplication, quitDelay);
        }
        else
            process.run(false,args,args.length);
    },

    saveprofileinuse : function() {
        var str = Components.classes["@mozilla.org/supports-string;1"]
            .createInstance(Components.interfaces.nsISupportsString);
        var str8;

        if (profileLauncherPrefs.getPrefType("profile.in_use") == 0) {
            var numProf = 0;
            var tempname = "";
            var ok = false;
            var isRelative = true;
            var profiles = new Array;
            var os = window.navigator.platform.toLowerCase();
            // This is the standard "root" directory where the profiles are
            var filex = Components.classes["@mozilla.org/file/directory_service;1"]
                         .getService(Components.interfaces.nsIProperties)
                         .get("DefProfRt", Components.interfaces.nsIFile);
            // This is the directory of the profile in use
            var profdir = Components.classes["@mozilla.org/file/directory_service;1"]
                         .getService(Components.interfaces.nsIProperties)
                         .get("ProfD", Components.interfaces.nsIFile);
            // Name of the profile in use
            var profdirname = profdir.leafName;
            var profdirfullpath = profdir.path;
            // This regexp is used to test if the line finishes with the profdirname
            var profRegExp = eval("/" + profdirname + "$/");
            // Clone of the root profiles directory
            var filex2 = filex.clone();
            // First attempt to find the profiles.ini, in the root profiles directory (Linux style)
            filex2.append("profiles.ini");
            // If the file doesn't exist, we try with the parent directory (Windows, Mac OSX style)
            if (! filex2.exists()) {
                var file = filex.parent;
                file.append("profiles.ini");
            }
            else
                var file = filex2;
            if (file) {
                // Reading the profiles.ini file, line by line
                var istream = Components.classes["@mozilla.org/network/file-input-stream;1"]
                                .createInstance(Components.interfaces.nsIFileInputStream);
                istream.init(file, 0x01, 0444, 0);
                istream.QueryInterface(Components.interfaces.nsILineInputStream);
                var line = {}, hasmore;
                do {
                    hasmore = istream.readLine(line);
                    var myline = line.value;
                    try {
                        // I need the line both in native-charset and in Unicode:
                        // the native-charset will be used to launch the command
                        // and the Unicode one to match "profdirfullpath" var
                        var mylineUNICODE = PS_converter.ConvertToUnicode(myline);
                    }
                    catch(e) {
                        var mylineUNICODE = myline;
                    }
                   
                    // If we find a line beginning with Name= , we store the profile's name in a temp variable
                    if (myline && myline.indexOf("Name=") == 0) {
                        numProf = numProf+1;
                        var tempname = myline.substring(5);
                        profiles.push(numProf+". "+tempname);
                    }
                    if (myline && myline.indexOf("IsRelative=0") > -1)
                        isRelative = false;
                    else if (myline && myline.indexOf("IsRelative=1") > -1)
                        isRelative = true;
                    // On Mac the absolute paths are not in plain text, but encoded in base64 with lots of control chars
                    // and other strange things ... why??? Who knows it!!!!
                    if (os.indexOf("mac")  >-1 && myline && myline.indexOf("Path=") == 0 && ! isRelative )  {
                        try {
                            var encodedpath = mylineUNICODE.substring(5);
                            // atob = base64 decoder function
                            var decodedpath = atob(encodedpath);
                            // To check in mac absoulte path, we create a regexp with the name of the
                            // profile's directory followed by a control char, in this way we shoul avoid "fake positives"
                            var regex = new RegExp(profdirname+"[\\x00-\\x1F]","gi");
                            if (decodedpath && regex.test(decodedpath)) {
                                ok = true;
                                str.data =  tempname;
                                profileLauncherPrefs.setComplexValue("profile.in_use",  Components.interfaces.nsISupportsString, str);
                            }
                        }
                        catch(e) {}
                    }
                    // Rule for absolute path on Win and Linux: note the here the match is with the full path
                    // because otherwise it could fail
                    else if (! isRelative && mylineUNICODE  == ("Path="+profdirfullpath) ) {
                        ok = true;
                        str.data =  tempname;
                        profileLauncherPrefs.setComplexValue("profile.in_use",  Components.interfaces.nsISupportsString, str);
                    }
                    // Normal case with relative path on every os
                    // If the profile's directory is at the end of the line beginning with Path=, we've found the right name
                    else if (isRelative && myline && myline.indexOf("Path=") == 0 && profRegExp.test(mylineUNICODE)) {
                        ok = true;
                        str.data = tempname;
                        profileLauncherPrefs.setComplexValue("profile.in_use",  Components.interfaces.nsISupportsString, str);
                    }
                } while(hasmore);
                istream.close();
            }
           
            if (! ok)
                // We haven't found the name, set the pref to null... :-(
                profileLauncherPrefs.setCharPref("profile.in_use", "");
           
            str.data = profiles.join(",,,");
            profileLauncherPrefs.setComplexValue("profiles.list",  Components.interfaces.nsISupportsString, str);
        }
        if (document.location.href == PS_firefox || document.location.href == PS_thunderbird)
            profileLauncher.setLabel();
        else
            PS_setABLabel();
    },
   
    setLabel : function() {
        var whereShow = profileLauncherPrefs.getIntPref("profileswitcher.where_show_name");
        var used_prof = profileLauncherPrefs.getComplexValue("profile.in_use", Components.interfaces.nsISupportsString).data;
        try {
            used_prof = PS_converter.ConvertToUnicode(used_prof);
        }
        catch(e) {}
        if (whereShow == 0) {
            document.getElementById("profileNameSBP").collapsed = true;
            if (! PS_isThunderbird) {
                var text = PS_bundleFile.GetStringFromName("profileinuse")+": "+used_prof;
                document.getElementById("statusbar-display").setAttribute("tooltiptext", text);
            }
            else if (document.title.indexOf("["+ used_prof +"] ") < 0){
                document.title = "["+ used_prof +"] " + document.title;
            }
        }
        else {
            document.getElementById("profileNameLabel").value =  used_prof;
            document.getElementById("profileNameSBP").collapsed = false;
            if (! PS_isThunderbird)
                document.getElementById("statusbar-display").removeAttribute("tooltiptext");
            if (whereShow == 2)
                document.getElementById("status-bar").insertBefore(document.getElementById("profileNameSBP"), document.getElementById("status-bar").firstChild);
            else
                document.getElementById("status-bar").appendChild(document.getElementById("profileNameSBP"));
        }
        profileLauncher.fillPopup();
    },
   
    fillPopup : function() {
        var profilesListPref = profileLauncherPrefs.getComplexValue("profiles.list", Components.interfaces.nsISupportsString).data;
        var profilesList = profilesListPref.split(",,,");
        var popup = document.getElementById("profList");
        var popup2 = document.getElementById("profList2");
        var popup3 = document.getElementById("profList3");
        var used_prof = profileLauncherPrefs.getComplexValue("profile.in_use", Components.interfaces.nsISupportsString).data;
        var regtest = new RegExp("\\d. "+used_prof+"$");
        for (i=0;i<profilesList.length;i++) {
            var item = document.createElement("menuitem");
            try  {
                var labelUTF8 = PS_converter.ConvertToUnicode(profilesList[i]);
            }
            catch(e) {
                var labelUTF8 = profilesList[i];
            }
            item.setAttribute("profile", profilesList[i]);
            item.setAttribute("oncommand", "profileLauncher.runScript(this)");
            if (profilesList[i].match(regtest)) {
                item.setAttribute("disabled", "true");
                item.setAttribute("label", labelUTF8 + " (" + PS_bundleFile.GetStringFromName("profileinuse") + ")");
            }
            else
                item.setAttribute("label", labelUTF8);
            popup.appendChild(item);
            var item2 = item.cloneNode(true);
            popup2.appendChild(item2);
            if (popup3) {
                var item3 = item.cloneNode(true);
                popup3.appendChild(item3);
            }
        }
        var sep = document.createElement("menuseparator");
        popup.appendChild(sep);
        sep = document.createElement("menuseparator");
        popup2.appendChild(sep);
        var last  = document.createElement("menuitem");
        last.setAttribute("label", PS_bundleFile.GetStringFromName("refresh"));           
        last.setAttribute("oncommand", "profileLauncher.refreshList()");
        popup.appendChild(last);
        var last2 = last.cloneNode(true);
        popup2.appendChild(last2);
        if (popup3) {
            sep = document.createElement("menuseparator");
            popup3.appendChild(sep);
            var last3 = last.cloneNode(true);
            popup3.appendChild(last3);
        }
    },

    refreshList : function() {
        profileLauncherPrefs.deleteBranch("profile.in_use");
        profileLauncherPrefs.deleteBranch("profiles.list");
        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                   .getService(Components.interfaces.nsIWindowMediator);
        var enumerator = wm.getEnumerator(PS_windowName);
        while(enumerator.hasMoreElements()) {
            var win = enumerator.getNext();
            var popup= win.document.getElementById("profList");
            var items = popup.childNodes;
            for (i=items.length;i>0;i--)
                popup.removeChild(items[i-1]);
            popup= win.document.getElementById("profList2");
            items = popup.childNodes;
            for (i=items.length;i>0;i--)
                popup.removeChild(items[i-1]);
            win.profileLauncher.saveprofileinuse();
        }
    },

    cleanpref : function() {
        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
                   .getService(Components.interfaces.nsIWindowMediator);
        var enumerator = wm.getEnumerator(PS_windowName);
        if (! enumerator.hasMoreElements()) {
            profileLauncherPrefs.deleteBranch("profile.in_use");
            profileLauncherPrefs.deleteBranch("profiles.list");
        }
    },
   
    openOptions : function() {
        open("chrome://profilelauncher/content/profilelauncherOptions.xul","","chrome=yes,modal=yes,centerscreen=yes");
    },

    setTitle : function() {
        try {
            var profilename = profileLauncherPrefs.getComplexValue("profile.in_use", Components.interfaces.nsISupportsString).data;
            try {
                profilename = PS_converter.ConvertToUnicode(profilename);
            }
            catch(e) {}
            if (profilename != "" && profileLauncherPrefs.getIntPref("profileswitcher.where_show_name") == 0) {
                var titleappend = "["+ profilename +"] ";
                document.title =  titleappend + document.title;
            }
        }
        catch(e) {}
    }
}



if (document.location.href != PS_addressbook) {
    window.addEventListener("unload", profileLauncher.cleanpref, false);
    window.addEventListener("load", profileLauncher.init, false);
}

[mozilla]

Если не секрет, чем выдернули код?

Не понял, чего где открывать?scratch_one-s_head.gif

mserv Например Вам надо открыть станицу в другом профиле - по аналогии с расширением Open With , только там страница откроется в выбранном стороннем браузере :angel:

А смысл захламлять ось, когда всё можно сделать подручными средствами?grin.gif

у меня ярлычки :)

mserv пишет

Надуманное расширение. Убрали и правильно сделали, что бы не вводить людей в заблуждение.  Зачем оно вообще нужно? Что разве так трудно создать ярлык с –p?

mserv пишет

И пользоваться им неудобно, т.к. для  выбора нужного профиля сначала нужно запустить , а ярлык всегда под рукой.

mserv пишет

Tiger.711 пишет: А как реализовано интерфейсно?Да точно так же как и у ярлыка, один в один. Во всяком случае, так было, когда я  пробовал, до его удаления с AMO.

mserv пишет

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

Мдя. Видать тот Паоло так же точно нарвался когда-то на подобных уникальных «гуру». И решил не портить себе нервы... итальянцы, они, люди горячие, могут и искалечить ...  :rolleyes:

26-07-2011 14:23:44

Tiger.711 пишет

Если не секрет, чем выдернули код?

А у меня специальная дергалка есть, секретная. ;)
Но Тебе скажу, полосатый, я люблю кошек...   по секрету - Тотал Коммандер называется. :lol:

slbgz пишет

Мдя. Видать тот Паоло так же точно нарвался когда-то на подобных уникальных «гуру». И решил не портить себе нервы... итальянцы, они, люди горячие, могут и покалечить ...  :rolleyes:

Ну, когда сказать нечего, то конечно, как вариант можно и потролить. А потом ещё и тему создать, почему обижают злобного карлика.  Смотрю и до минуса дотянулись, или табуретку  подставили, смотрите не п…lol.gif

26-07-2011 14:48:45

Крошка Ру пишет

у меня ярлычки :)

А чего тогда рекламируешь всякую…?acute.gif

slbgz пишет

Тотал Коммандер называется.

А в тотале какой текстовый редактор? Скажу по секрету - там разные могут быть.

А чего тогда рекламируешь всякую…?acute.gif

mserv
одно другому не мешает :angel: .... вот сейчас установил - сидит себе в трее .... надоест - удалю :)

26-07-2011 15:52:45
slbgz,Tiger.711  всё секретничаете ? :lol: :angel:

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

Tiger.711 пишет
slbgz пишет

Тотал Коммандер называется.

А в тотале какой текстовый редактор? Скажу по секрету - там разные могут быть.

Спасибо за «информацию». Вы захламлять темы флеймом когда прекратите? И хамить?
Поиском умеете пользоваться, «гуру» доморощенные?
У меня нет желания вам отвечать. А тому маменькину сынку,врунишке mserv- тем более. Выпороть бы его хорошенько, да вот некому. :rolleyes:

slbgz пишет

Спасибо за «информацию». Вы захламлять темы флеймом когда прекратите? И хамить?
Поиском умеете пользоваться, «гуру» доморощенные?
У меня нет желания вам отвечать. А тому маменькину сынку, врунишке mserv - тем более. Выпороть бы его хорошенько, да вот некому. :rolleyes:

Что-то карлик опять разбушевался и на кнопку жмёт, как сумасшедший. За табуретку хоть держитесь, а то и правда костей не соберёте.  Но его понять можно, скопипостил где-то кнопку, для бесполезного расширения и возомнил себя «гуру». А умишком понять не может, что это расширение никому ненужно, как и кнопочка к нему. Они ещё эту хрень и в подпись добавили.biggrin.gif

slbgz пишет

•• Как легко и быстро создать/удалить/добавить профиль Firefox? Расширение и •• Кнопка к нему

А вчера, как назло ещё его  любимую тему(Как посмотреть который карлик тебе все время «минусы» лепит? ;) | Форум Mozilla Россия) закрыли, всё один к одному. Вот и рассерчал наш малыш.lol.gif

Проблема, вылетает надпись: Ошибка: исполнимый файл не найден, что делать?

подскажите аналог ProfileSwitcher только рабочий!

Версия 1.4 вполне себе рабочая. Даже на ночнушках.

Tiger.711 пишет

вполне себе рабочая. Даже на ночнушках.

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

Видимо только с ночнушками не глючит. Ибо у меня всё работает.

Добрый день!

Раньше при выборе в Свитчере другого профиля - тот просто открывался.
А теперь вместо открытия профиля выкидывает в менеджер профилей.. - т.е. на какой профиль ни нажмешь, все-равно надо его опять в менеджере выбирать. :/

Галочка "Не спрашивать при запуске" в менеджере - никак не влияет на работу Свитчера.

Кто-нибудь сталкивался с такой проблемой? Как можно исправить?

:D Разобрался - менеджер профилей открывается для тех профилей, которые поименованы русскими буквами. Если писать имя латиницей, то открываются профили нормально.

Такая проблема.
Возможно ли изменить дополнение, чтобы оно при открытии определённой страницы меняло профиль на следующий из списка?
Объясню:
Grace Monkey на странице что-то делает, в результате открывается следующая, после которой я вручную лезу менять профиль. Существуют варианты автоматизации или подпиливания расширения и где это можно прочесть? Спасибо.

А русская локализация существует в природе?

Вышла версия 1.7.4 Выпущено November 1, 2015
изменения:
[- fixed a bug with options]
[- new feature: now you can see the name of profile in use also as tooltip in tabs bar (on Firefox)]
googlo-перевод:
- Исправлена ошибка с параметрами
- Новая функция: теперь вы можете видеть имя профиля в использовании и как подсказки на вкладках бар (на Firefox)

Вопрос: Как и где можно отключить эту "Новую функцию":angry: