Passwords not migrated correctly from Firefox 2 -> 3

RESOLVED INVALID

Status

()

--
critical
RESOLVED INVALID
11 years ago
11 years ago

People

(Reporter: mimecuvalo, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

11 years ago
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
(Reporter)

Comment 1

11 years ago
Created attachment 309827 [details]
Before and after view of the hostnames

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
Last Resolved: 11 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]
(Reporter)

Comment 4

11 years ago
(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).  
(Assignee)

Updated

11 years ago
Product: Firefox → Toolkit
You need to log in before you can comment on or make changes to this bug.