Noitidart / Profilist

ff-addon: Profile manager for Australis
https://addons.mozilla.org/en-US/firefox/addon/profilist/?src=github
34 stars 1 forks source link

Hangs on 'Loading profiles...' when using temporary profile AND when using custom path profile (non-relative profile) #1

Closed ghost closed 10 years ago

ghost commented 10 years ago

Didn't work on my main profile, thought it might be because I have CTR add-on installed, so tested on fresh (Edit: temporary) profile, with just Profilist installed. Win 7, Firefox 29.0 and 30.0a2. (I don't have a profile named 'default', if that matters) I get this message in console:

A promise chain failed to handle a rejection. bootstrap.js:740

Date: Sun Apr 27 2014 08:19:15 GMT-0400 (Eastern Standard Time) Full Message: TypeError: ini[profToolkit.selectedProfile.name] is undefined Full Stack: updateStackDOMJson_basedOnToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398600999311/kuui88pl.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:740 updateProfToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398600999311/kuui88pl.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:727 updateProfToolkit/<@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398600999311/kuui88pl.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:657 Handler.prototype.process@resource://gre/modules/Promise.jsm:767 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm:531

Noitidart commented 10 years ago

Much thanks for this report and all the console details Ill look into this, so just to be clear, it just shows the "Loading Profiles" forever?

can you please post your profiles.ini contents for me, it should be located here: OS.Path.join(OS.Constants.Path.userApplicationDataDir, 'profiles.ini');

something like for me its: C:\Documents and Settings\SONY VAIO\Application Data\Mozilla\Firefox\

the name of default and classic theme restorer is no big, its interesting this happend, much thx for the report ill fix this

jeanblanchard commented 10 years ago

I have the same issue on Windows at work, while my personal Linux PC works fine.

Contents of %APPDATA%\Mozilla\Firefox\profiles.ini :

[General]
StartWithLastProfile=1

[Profile0]
Name=Jean
IsRelative=0
Path=C:\Jean\FirefoxProfile
Default=1

[Profile1]
Name=ZAP
IsRelative=1
Path=Profiles/0zbfghju.ZAP

A few notes :

Noitidart commented 10 years ago

Thank you to both of you so much! Your bug reports are so detailed I seriously appreciate it. That admin rights thing is also a key piece of info. Thanks very much. Hopefully we'll resolve this today. :)

Noitidart commented 10 years ago

Thanks to you both I fixed this. The bug affected all users trying to use a profile at a custom path. It was a typo. Please try out the fixed version. Please install addon GitHub Extension Installer then go to the Profilist Repository then click on "Add to Firefox". This will install the addon. Let me know how it works out please.

jeanblanchard commented 10 years ago

Confirmed working here :) Thanks !

Noitidart commented 10 years ago

Thanks for confirmation but most importantly all thanks to you man! I sincerely appreciate your bug report and effort to get me all the info. :)

Your Linux test is also very much appreciated, I wasn't able to test on there and so glad to hear it's working great.

ghost commented 10 years ago

Hi, Still not working for me. Tested on fresh profile with only Profilist and the Github addon installed. I have attached the console log and my profiles.ini file.

Regards, George

On Wed, Apr 30, 2014 at 3:36 AM, Noitidart notifications@github.com wrote:

All thanks to you man! :)

— Reply to this email directly or view it on GitHubhttps://github.com/Noitidart/Profilist/issues/1#issuecomment-41768573 .

"e on panel showing = " MouseEvent {isTrusted: Getter, isTrusted: true, screenX: 10, screenY: 4, clientX: 0, clientY: 0, ctrlKey: false, shiftKey: false, altKey: false, metaKey: false} bootstrap.js:614 "e.view == e.target.ownerDocument.defaultView == " true bootstrap.js:615 "PUIsync_height updated == 39" bootstrap.js:628 "setting stack height to collapsedheight which = 39" bootstrap.js:638 "in read" bootstrap.js:48 "decoder not inited" bootstrap.js:50 "decoder got" bootstrap.js:53 "starting read" bootstrap.js:54 "read promise started" bootstrap.js:56 "successfully read ini = " {General: Object, ST + Clocks: Object, Simple Clocks: Object, Simple Timer: Object, WTP: Object, default2: Object, locales testing: Object, startup: Object, Canadian Weather: Object} bootstrap.js:93 "initing prof toolkit" bootstrap.js:668 "initing prof toolkit" bootstrap.js:672 "in initProfToolkit" bootstrap.js:545 "initProfToolkit 1" bootstrap.js:562 "initProfToolkit 2" bootstrap.js:564 "initProfToolkit DONE" bootstrap.js:572 "init done" bootstrap.js:674 "looking for selectedProfile name" bootstrap.js:693 "ini[p] is absolute" {props: Object} bootstrap.js:709 "ini[p] is relative" {num: "0", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "1", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "2", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "3", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "4", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "5", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "6", props: Object} bootstrap.js:696 "ini[p] is relative" {num: "7", props: Object} bootstrap.js:696 "selectedProfile searching proc done" bootstrap.js:723 "updating stackDOMJson based on profToolkit AND ini" bootstrap.js:734 "stackDOMJson is 0 length" [] bootstrap.js:737 "profToolkit=" {rootPathDefault: "C:\Users\GeoNotebook\AppData\Roaming\Mozilla\Firefox\Profiles", localPathDefault: "C:\Users\GeoNotebook\AppData\Local\Mozilla\Firefox\Profiles", profileCount: 8, selectedProfile: Object, profiles: Object, pathsInIni: Array[8]} bootstrap.js:738 A promise chain failed to handle a rejection.

Date: Wed Apr 30 2014 10:01:40 GMT-0400 (Eastern Standard Time) Full Message: TypeError: ini[profToolkit.selectedProfile.name] is undefined Full Stack: updateStackDOMJson_basedOnToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398866277584/4gwz6bzt.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:741 updateProfToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398866277584/4gwz6bzt.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:728 updateProfToolkit/<@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398866277584/4gwz6bzt.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:658 Handler.prototype.process@resource://gre/modules/Promise.jsm:767 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm:531 bootstrap.js:741

Noitidart commented 10 years ago

Hi grbradt, that copy paste really helps but can you please copy paste your profiles.ini file.

ghost commented 10 years ago

Hi, I had attached it, but here it is:

[General] StartWithLastProfile=1

[Profile0] Name=ST + Clocks IsRelative=1 Path=Profiles/44s2wtzd.ST + Clocks

[Profile1] Name=Simple Clocks IsRelative=1 Path=Profiles/tgmfof1m.Simple Clocks

[Profile2] Name=Simple Timer IsRelative=1 Path=Profiles/0qb75jkh.Simple Timer

[Profile3] Name=WTP IsRelative=1 Path=Profiles/kl0g7kxc.WTP

[Profile4] Name=default2 IsRelative=1 Path=Profiles/uahcoq9j.default2 Default=1

[Profile5] Name=locales testing IsRelative=1 Path=Profiles/qcw1at8t.locales testing

[Profile6] Name=startup IsRelative=1 Path=Profiles/sxu19ryi.startup

[Profile7] Name=Canadian Weather IsRelative=1 Path=Profiles/xv3ifjmf.Canadian Weather

Regards, George

On Wed, Apr 30, 2014 at 11:27 AM, Noitidart notifications@github.comwrote:

Hi grbradt, that copy paste really helps but can you please copy paste your profiles.ini file.

— Reply to this email directly or view it on GitHubhttps://github.com/Noitidart/Profilist/issues/1#issuecomment-41810690 .

Noitidart commented 10 years ago

Oh wow that's so cool you can do that via email I didn't know that. Thanks for the taking time to double paste here though. I'm new to GitHub issues system, I don't know how it all works yet haha.

ghost commented 10 years ago

Oh, I had been replying thru gmail. I attached both files, but when I just now come to github I see the message only shows the first attachment. Huh. Also, I never received your reply to my original post asking for more details, sorry!

Noitidart commented 10 years ago

Nooo problem thanks man I appreciate your note :)

yajd commented 10 years ago

hey man, this is noit on my other account, can you please go to this patch repo: https://github.com/yajd/Profilist/tree/patch-1

And install that patch and then open menu and then paste here the browser console messages please. Please try not to mouse over the "Loading Profiles..." it will put extra messages in there which are not needed.

ghost commented 10 years ago

Hi, Here is the log for the lastest test, attached. Win 7, Firefox 29, using a temp profile created from the standalone Profile Manager.

Regards, George

On Wed, Apr 30, 2014 at 2:30 PM, yajd notifications@github.com wrote:

hey man, this is noit on my other account, can you please go to this patch repo: https://github.com/yajd/Profilist/tree/patch-1

And install that addon (using the GitHub Ext Installer ofcourse) and then open menu and then paste here the browser console messages please. Please try not to mouse over the "Loading Profiles..." it will put extra messages in there which are not needed.

— Reply to this email directly or view it on GitHubhttps://github.com/Noitidart/Profilist/issues/1#issuecomment-41832055 .

"e on panel showing = " MouseEvent {isTrusted: Getter, isTrusted: true, screenX: 0, screenY: -8, clientX: 0, clientY: 0, ctrlKey: false, shiftKey: false, altKey: false, metaKey: false} bootstrap.js:614 "e.view == e.target.ownerDocument.defaultView == " true bootstrap.js:615 "PUIsync_height updated == 39" bootstrap.js:628 "setting stack height to collapsedheight which = 39" bootstrap.js:638 "in read" bootstrap.js:48 "decoder not inited" bootstrap.js:50 "decoder got" bootstrap.js:53 "starting read" bootstrap.js:54 "read promise started" bootstrap.js:56 "successfully read ini = " {General: Object, ST + Clocks: Object, Simple Clocks: Object, Simple Timer: Object, WTP: Object, default2: Object, locales testing: Object, startup: Object, Canadian Weather: Object} bootstrap.js:93 "initing prof toolkit" bootstrap.js:668 "initing prof toolkit" bootstrap.js:672 "in initProfToolkit" bootstrap.js:545 "initProfToolkit 1" bootstrap.js:562 "initProfToolkit 2" bootstrap.js:564 "initProfToolkit DONE" bootstrap.js:572 "init done" bootstrap.js:674 "profToolkit.selectedProfile.name = " 0 bootstrap.js:692 "selectedProfileNameFound = " false bootstrap.js:693 "selectedProfile info for rel profToolkit.selectedProfile.rootDirName=" "f5a1m0n9.null" bootstrap.js:695 "selectedProfile info for rel profToolkit.selectedProfile.localDirName=" "f5a1m0n9.null" bootstrap.js:696 "selectedProfile info for abs profToolkit.selectedProfile.rootDirPath=" "C:\Users\GEONOT~1\AppData\Local\Temp\profilemanager\1398882955456\f5a1m0n9.null" bootstrap.js:698 "selectedProfile info for abs profToolkit.selectedProfile.localDirPath=" "C:\Users\GEONOT~1\AppData\Local\Temp\profilemanager\1398882955456\f5a1m0n9.null" bootstrap.js:699 "looking for selectedProfile name" bootstrap.js:702 "skipping ini[p] because no IsRelative prop" "ini[p]=" {props: Object} "p=" "General" bootstrap.js:705 "ini[p] is relative" {num: "0", props: Object} bootstrap.js:709 "rel iniDirName=" "44s2wtzd.ST + Clocks" bootstrap.js:712 "ini[p] is relative" {num: "1", props: Object} bootstrap.js:709 "rel iniDirName=" "tgmfof1m.Simple Clocks" bootstrap.js:712 "ini[p] is relative" {num: "2", props: Object} bootstrap.js:709 "rel iniDirName=" "0qb75jkh.Simple Timer" bootstrap.js:712 "ini[p] is relative" {num: "3", props: Object} bootstrap.js:709 "rel iniDirName=" "kl0g7kxc.WTP" bootstrap.js:712 "ini[p] is relative" {num: "4", props: Object} bootstrap.js:709 "rel iniDirName=" "uahcoq9j.default2" bootstrap.js:712 "ini[p] is relative" {num: "5", props: Object} bootstrap.js:709 "rel iniDirName=" "qcw1at8t.locales testing" bootstrap.js:712 "ini[p] is relative" {num: "6", props: Object} bootstrap.js:709 "rel iniDirName=" "sxu19ryi.startup" bootstrap.js:712 "ini[p] is relative" {num: "7", props: Object} bootstrap.js:709 "rel iniDirName=" "xv3ifjmf.Canadian Weather" bootstrap.js:712 "selectedProfile searching proc done" bootstrap.js:742 "updating stackDOMJson based on profToolkit AND ini" bootstrap.js:753 "stackDOMJson is 0 length" [] bootstrap.js:756 "profToolkit=" {rootPathDefault: "C:\Users\GeoNotebook\AppData\Roaming\Mozilla\Firefox\Profiles", localPathDefault: "C:\Users\GeoNotebook\AppData\Local\Mozilla\Firefox\Profiles", profileCount: 8, selectedProfile: Object, profiles: Object, pathsInIni: Array[8]} bootstrap.js:757 A promise chain failed to handle a rejection.

Date: Wed Apr 30 2014 14:38:19 GMT-0400 (Eastern Standard Time) Full Message: TypeError: ini[profToolkit.selectedProfile.name] is undefined Full Stack: updateStackDOMJson_basedOnToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398882955456/f5a1m0n9.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:760 updateProfToolkit@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398882955456/f5a1m0n9.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:747 updateProfToolkit/<@resource://gre/modules/XPIProvider.jsm -> jar:file:///C:/Users/GEONOT~1/AppData/Local/Temp/profilemanager/1398882955456/f5a1m0n9.null/extensions/Profilist@jetpack.xpi!/bootstrap.js:658 Handler.prototype.process@resource://gre/modules/Promise.jsm:767 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm:531 bootstrap.js:760

yajd commented 10 years ago

Thanks so much for the fast response!

yajd commented 10 years ago

Hey man what's the name of the profile you are currently using? Extra info that would help me out (if you know it, so plz don't struggle to find it): The folder name to your root profile directory you are currently using. (should be located at C:\Users\GeoNotebook\AppData\Roaming\Mozilla\Firefox\Profiles) and the folder name to your local profile dir should be located at C:\Users\GeoNotebook\AppData\Local\Mozilla\Firefox\Profiles

ghost commented 10 years ago

Hi, OK, I think this is one problem. When I found it was not working on my default2 profile, I began testing using the standalone Mozilla Profile Manager. When I do this, I use the option to create a temporary profile. So it does not use any of my existing profiles. I think it creates the new profile in the Windows temp folder (I could check that). But your patched addon still is not working in my default2 profile. I will create a new (but not temporary!) profile and test with that. Perhaps it is a conflict with one of my other addons. I will get back to you.

Regards, George

On Wed, Apr 30, 2014 at 3:28 PM, yajd notifications@github.com wrote:

Hey man what's the name of the profile you are currently using? Extra info that would help me out (if you know it, so plz don't struggle to find it): The path to your root profile directory you are currently using. (should be located at C:\Users\GeoNotebook\AppData\Roaming\Mozilla\Firefox\Profiles) and the path to your local profile dir should be located at C:\Users\GeoNotebook\AppData\Local\Mozilla\Firefox\Profiles

— Reply to this email directly or view it on GitHubhttps://github.com/Noitidart/Profilist/issues/1#issuecomment-41839143 .

ghost commented 10 years ago

Hi, OK, I tested your release version on a new, permanent profile and it is working. So it must be a conflict with another addon. I will find which one and let you know.

yajd commented 10 years ago

The issue is it's not finding your current profile folder name in the profiles.ini

Accodring to Profilist the folder to your profile in use is this: Root Directory Name = "f5a1m0n9.null" Local Directory Name = "f5a1m0n9.null" Root Directory Path = "C:\Users\GEONOT~1\AppData\Local\Temp\profilemanager\1398882955456\f5a1m0n9.null" Local Directory Path "C:\Users\GEONOT~1\AppData\Local\Temp\profilemanager\1398882955456\f5a1m0n9.null"

So it runs into a problem, it's not finding f5a1m0n9.null anywhere in Profiles.ini, which is true it's not in there. I'm baffled.

I get the root and local paths/directory names of the profile currently in use with this code:

    profToolkit.selectedProfile.rootDirName = OS.Path.basename(OS.Constants.Path.profileDir);
    profToolkit.selectedProfile.localDirName = OS.Path.basename(OS.Constants.Path.localProfileDir);

    profToolkit.selectedProfile.rootDirPath = OS.Constants.Path.profileDir;
    profToolkit.selectedProfile.localDirPath = OS.Constants.Path.localProfileDir;

the default2 profile is definitely in profiles.ini but it expects its folder name to be uahcoq9j.default2. Further it expects to find this folder in root path of C:\Users\GeoNotebook\AppData\Roaming\Mozilla\Firefox\Profiles and local path of C:\Users\GeoNotebook\AppData\Local\Mozilla\Firefox\Profiles

I'm baffled haha but we'll figure this out, thanks for your patience and perseverance man.

The issue is definitely the profile manager not creating the proper entry in the Profiles.ini file, do you know how your Profiles.ini file got the Path=Profiles/uahcoq9j.default2 for the default2 path name? So in other words: If default2 was made as temporary profile do you think profile manager didn't update profiles.ini? Do you know if something else made default2?

yajd commented 10 years ago

Ah yes! I was finally able to recreate the issue. I understand the answers to my questions in last post.

So you have to make a new profile which sets the Profiles.ini file normally. And then when you launch the profile, its an option to launch it as temporary. If you do this it launches from a different folder.

Yep man if you launch from profile manager with temporary it won't work at all, Profilist is based on the profiles.ini file. Do you think its worthwhile to make it support temp profiles? I'm open to discussion on that.

This issue is not a conflict with another addon, its totally due to using "User profile:" option of "A temporary file" from Mozilla Profile Manager.

If you launch default2 profile without the temporary profile setting it will work fine, can you test this please. So "User Profile" should be set to "The profile selected in the table above".

ghost commented 10 years ago

Hi, Yes that's right. I don't think it is worthwhile, since temp profiles are usually just for testing. You might just make a note of that in your addon description. I think I resolved my original problem as well. As part of my customizing the browser, I removed the hamburger menu button from the nav bar. I enter the Customize Toolbar menu by right-clicking the toolbar and selecting Customize. When you do this, the overlay created by your addon is greyed out, and doesn't work. Using the hamburger menu and it works. You can try that yourself. Possibly you could open a new issue for that.

Regards, George

On Wed, Apr 30, 2014 at 4:24 PM, yajd notifications@github.com wrote:

Ah yes! I was finally able to recreate the issue. I understand the answers to my questions in last post.

So you have to make a new profile which sets the Profiles.ini file normally. And then when you launch the profile, its an option to launch it as temporary. If you do this it launches from a different folder.

Yep man if you launch from profile manager with temporary it won't work at all, Profilist is based on the profiles.ini file. Do you think its worthwhile to make it support temp profiles? I'm open to discussion on that.

— Reply to this email directly or view it on GitHubhttps://github.com/Noitidart/Profilist/issues/1#issuecomment-41845759 .

yajd commented 10 years ago

Thanks George for all this, it was really good.

So for temp profiles I should make it at least say "you are using a temp profile and profilist will not work" instead of hanging at "Loading Profiles" what do you think? Really the only borken part is it can't figure out the name of the current profile. So I'll make that one read "Temporary Profile", then users can still manipulate other profiles from there what do you think? If you agree I'll create a patch for this. This was a very very good discussion you brought up, thanks for it!

I'll make a separate topic for that right now, but I don't understand it totally can you please help me understand it in that topic: https://github.com/Noitidart/Profilist/issues/5

Noitidart commented 10 years ago

For now, for temp profiles, i put in a quick fix. I make it not error, and just make the label read "Temporary Profile" but I keep it disabled.

In future I might add functionality for the menu to expand and be able to rename/delete/launch other profiles, if the demand is there. Of course the first label, the active profile label, will still just read "Temporary Profile" and clicking it will do nothing, as you can't rename a temp profile. I might add to this label the name of the profile it was based on.