Closed Bug 423322 Opened 16 years ago Closed 16 years ago

Passwords not migrated correctly from Firefox 2 -> 3

Categories

(Toolkit :: Password Manager, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED INVALID

People

(Reporter: mimecuvalo, Unassigned)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b4) Gecko/2008030714 Firefox/3.0b4
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b4) Gecko/2008030714 Firefox/3.0b4

In my extension FireFTP, I was saving passwords in the format ftp.hostname.com, without a preceding ftp:// or http://
Now in Firefox 3, these hostnames are automatically prepended with http://
This causes FireFTP to not find the passwords anymore.  I can change my code to do a failsafe check if it doesn't find the hostname to try it with the http:// prepended but I think maybe this could be a bug in general with the password manager.  If this just a new responsibility for extension devs to do a double check then feel free to close the bug.

I'll attach a screenshot shortly of before/after of the password manager.

Reproducible: Always
On the right pane you can see in Firefox 3 the http:// is automatically added.
The hostname format was changed in bug 396316, existing logins are migrated to the new format. You should update your extension to use the new format.

http://developer.mozilla.org/en/docs/Using_nsILoginManager may als obe of use.
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → INVALID
Ugh, the screenshot indicates you've got a bit of a mess here. :(

FF2 stored logins itself in two formats, depending on context (site.com:123 and scheme://site.com). FF3 always uses scheme://site.com. It looks like you introduces another format for FF2, by prepending "ftp.", leading to such entries as "ftp.ftp://ftp.hsn.hu" and "ftp.127.0.0.1".

The upgrade code (http://mxr.mozilla.org/seamonkey/source/toolkit/components/passwordmgr/src/storage-Legacy.js) uses _upgrade_entry_to_2E() to migrate logins to the new format. Your "ftp.xxx" format logins end up looking like HTTP logins, and so they're upgraded to "http://ftp.xxx". Although as a fun twist, the upgrade won't modify logins it can't parse, so I'm not sure what things like "ftp.ftp://ftp.hsn.hu" will end up as.

You'll probably need to make a list of all the possible variations your extension was creating, see how those get converted in FF3, and then see which ones (if any?) you can unambiguously modify back to a normal format.

Also, note that "http://ftp.site.com" isn't always an incorrectly upgraded login from a FF2 version of your extension... It could be a real login for a site names "ftp.site.com" accessed via HTTP. [eg, see http://ftp.mozilla.org]
(In reply to comment #3)
> The upgrade code
> (http://mxr.mozilla.org/seamonkey/source/toolkit/components/passwordmgr/src/storage-Legacy.js)
> uses _upgrade_entry_to_2E() to migrate logins to the new format. Your "ftp.xxx"
> format logins end up looking like HTTP logins, and so they're upgraded to
> "http://ftp.xxx". Although as a fun twist, the upgrade won't modify logins it
> can't parse, so I'm not sure what things like "ftp.ftp://ftp.hsn.hu" will end
> up as.

Turns out they're still there.  The parser left them alone.  I'll just have my code check the possible permutations.  Blah, the original logic was to add 'ftp.'  to it so that it wouldn't collide with possible HTTP authentication passwords (e.g. hostname.com vs. ftp.hostname.com).  
Product: Firefox → Toolkit
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: