WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
83259
[BlackBerry] Networking - Assertion failed when it store FTP credentials
https://bugs.webkit.org/show_bug.cgi?id=83259
Summary
[BlackBerry] Networking - Assertion failed when it store FTP credentials
Sean Wang
Reported
2012-04-05 02:21:33 PDT
For blackberry porting, When access a FTP site with basic authentication, after input credential and click the OK button, it assertion fails at CredentialStorage::set(). It is asserting that ASSERT(protectionSpace.isProxy() || url.protocolInHTTPFamily()). But blackberry porting is saving FTP credential using this function. We should support for FTP to store its credentials.
Attachments
Patch
(3.67 KB, patch)
2012-04-05 20:21 PDT
,
Sean Wang
rwlbuis
: review-
Details
Formatted Diff
Diff
Patch 2
(3.29 KB, patch)
2012-04-11 04:02 PDT
,
Sean Wang
ap
: review-
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Sean Wang
Comment 1
2012-04-05 20:21:17 PDT
Created
attachment 135975
[details]
Patch
Rob Buis
Comment 2
2012-04-10 11:13:31 PDT
Comment on
attachment 135975
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=135975&action=review
> Source/WebCore/ChangeLog:13 > + passed else it is failed.
You should not give the steps to reproduce in the ChangeLog, the bug report itself should contain this information. Is it possible to add an auto/manual test for this?
Alexey Proskuryakov
Comment 3
2012-04-10 11:25:35 PDT
Comment on
attachment 135975
[details]
Patch I think that the correct answer is to not use HTTP credential storage code for ftp. It's specifically tailored for HTTP credential semantics.
Sean Wang
Comment 4
2012-04-11 03:33:53 PDT
(In reply to
comment #3
)
> (From update of
attachment 135975
[details]
) > I think that the correct answer is to not use HTTP credential storage code for ftp. It's specifically tailored for HTTP credential semantics.
Currently, only the CF and BlackBerry porting are using the CredentialStorage as I grepped CredentialStorage::set. There are 3 type browsers which support FTP credential storage. They are Firefox 11.0, Chromium 18.0 and IE 8 as I tested. So I think storing the FTP credentials makes sense. As the credentials are stored in class ProtectionSpace, and it supports many protocols in its ProtectionSpaceServerType and it supports ServerType comparing in its "operator ==", So storing other protocol's credentials should work with the current implementations. What is your concern?
Sean Wang
Comment 5
2012-04-11 04:02:30 PDT
Created
attachment 136655
[details]
Patch 2 I changed the comments of "No new test" section. It can't write a auto-test case, since it needs a FTP server to setup the test case.
Alexey Proskuryakov
Comment 6
2012-04-11 09:08:27 PDT
Comment on
attachment 136655
[details]
Patch 2 Again, this class is not designed to keep ftp credentials. You should find a different place for those.
Brady Eidson
Comment 7
2012-04-11 09:19:01 PDT
(In reply to
comment #4
)
>There are 3 type browsers which support FTP credential storage. They are Firefox 11.0, Chromium 18.0 and IE 8 as I tested. So I think storing the FTP credentials makes sense.
Why do you think only those 3 browsers support FTP credential storage? All Mac WebKit browsers do, for example, by virtue of using the keychain for persistent credential storage and having the networking layer and/or the browser itself try that keychain. Also it's not clear to me based on your statement but it seems possible that you think the credential store is persistent, while it is not.
> (In reply to
comment #3
) > > (From update of
attachment 135975
[details]
[details]) > > I think that the correct answer is to not use HTTP credential storage code for ftp. It's specifically tailored for HTTP credential semantics. > > Currently, only the CF and BlackBerry porting are using the CredentialStorage as I grepped CredentialStorage::set. > ... > What is your concern?
Our concern - that Alexey explicitly stated - is that the CredentialStorage class is used solely for HTTP(S) credentials and has the semantics of that usage. You're also mistaken about how "limited" the use is: `grep -r "CredentialStorage::set" . | grep -v ChangeLog` ./WebCore/platform/network/blackberry/NetworkJob.cpp: CredentialStorage::set(challenge.proposedCredential(), challenge.protectionSpace(), m_response.url()); ./WebCore/platform/network/cf/ResourceHandleCFNet.cpp: CredentialStorage::set(Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); ./WebCore/platform/network/cf/ResourceHandleCFNet.cpp: CredentialStorage::set(core(credential.get()), challenge.protectionSpace(), urlToStore); ./WebCore/platform/network/cf/ResourceHandleCFNet.cpp: CredentialStorage::set(credential, challenge.protectionSpace(), challenge.failureResponse().url()); ./WebCore/platform/network/cf/ResourceHandleCFNet.cpp: CredentialStorage::set(webCredential, challenge.protectionSpace(), urlToStore); ./WebCore/platform/network/CredentialStorage.cpp:void CredentialStorage::set(const Credential& credential, const ProtectionSpace& protectionSpace, const KURL& url) ./WebCore/platform/network/CredentialStorage.cpp:bool CredentialStorage::set(const Credential& credential, const KURL& url) ./WebCore/platform/network/mac/ResourceHandleMac.mm: CredentialStorage::set(Credential(d->m_user, d->m_pass, CredentialPersistenceNone), firstRequest().url()); ./WebCore/platform/network/mac/ResourceHandleMac.mm: CredentialStorage::set(credential, challenge.protectionSpace(), challenge.failureResponse().url()); ./WebCore/platform/network/mac/ResourceHandleMac.mm: CredentialStorage::set(webCredential, core([d->m_currentMacChallenge protectionSpace]), urlToStore); In addition to BlackBerry it is used by Windows, Mac, and iOS ports.. In fact it was added for the mainline Apple ports. We apologize for the confusion that this is a generic credential store when - as stated a few times - it is explicitly about HTTP credentials. I've filed
https://bugs.webkit.org/show_bug.cgi?id=83695
to correct that so no one makes the same mistake again.
Brady Eidson
Comment 8
2012-04-11 09:21:16 PDT
Since this bug was premised on the BlackBerry port incorrectly using CredentialStorage for FTP credentials, it seems it is invalid. I would recommend filing a new bug about adding an FTP credential store for BlackBerry's sole use.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug