Commit 5a17564b authored by mkwst@chromium.org's avatar mkwst@chromium.org

Credential Manager: Add a 'formData' property to LocalCredential.

As specced at http://mikewest.github.io/credentialmanagement/spec/#interfaces-credential-types-localcredential

BUG=400674

Review URL: https://codereview.chromium.org/645023005

git-svn-id: svn://svn.chromium.org/blink/trunk@184280 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 40a3c089
...@@ -8,12 +8,14 @@ test(function() { ...@@ -8,12 +8,14 @@ test(function() {
var credential = new LocalCredential('id', 'pencil', 'name', 'https://example.com/avatar.png'); var credential = new LocalCredential('id', 'pencil', 'name', 'https://example.com/avatar.png');
verifyInterface('LocalCredential', credential, { verifyInterface('LocalCredential', credential, {
formData: 'object',
id: 'string', id: 'string',
name: 'string', name: 'string',
avatarURL: 'string', avatarURL: 'string',
password: 'string' password: 'string'
}); });
assert_true(credential.formData instanceof FormData);
assert_equals(credential.id, 'id'); assert_equals(credential.id, 'id');
assert_equals(credential.name, 'name'); assert_equals(credential.name, 'name');
assert_equals(credential.avatarURL, 'https://example.com/avatar.png'); assert_equals(credential.avatarURL, 'https://example.com/avatar.png');
...@@ -44,5 +46,5 @@ test(function() { ...@@ -44,5 +46,5 @@ test(function() {
assert_equals(credential.avatarURL, ''); assert_equals(credential.avatarURL, '');
assert_equals(credential.password, 'pencil'); assert_equals(credential.password, 'pencil');
}, 'Construct a LocalCredential with an empty namd and avatar URL.'); }, 'Construct a LocalCredential with an empty name and avatar URL.');
</script> </script>
...@@ -14,7 +14,7 @@ namespace blink { ...@@ -14,7 +14,7 @@ namespace blink {
class ExceptionState; class ExceptionState;
class Credential : public GarbageCollected<Credential>, public ScriptWrappable { class Credential : public GarbageCollectedFinalized<Credential>, public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO(); DEFINE_WRAPPERTYPEINFO();
public: public:
static Credential* create(const String& id, const String& name, const KURL& avatar); static Credential* create(const String& id, const String& name, const KURL& avatar);
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include "modules/credentialmanager/LocalCredential.h" #include "modules/credentialmanager/LocalCredential.h"
#include "bindings/core/v8/ExceptionState.h" #include "bindings/core/v8/ExceptionState.h"
#include "core/html/DOMFormData.h"
#include "platform/credentialmanager/PlatformLocalCredential.h" #include "platform/credentialmanager/PlatformLocalCredential.h"
#include "public/platform/WebCredential.h" #include "public/platform/WebCredential.h"
#include "public/platform/WebLocalCredential.h" #include "public/platform/WebLocalCredential.h"
...@@ -32,7 +33,10 @@ LocalCredential::LocalCredential(WebLocalCredential* webLocalCredential) ...@@ -32,7 +33,10 @@ LocalCredential::LocalCredential(WebLocalCredential* webLocalCredential)
LocalCredential::LocalCredential(const String& id, const String& password, const String& name, const KURL& avatar) LocalCredential::LocalCredential(const String& id, const String& password, const String& name, const KURL& avatar)
: Credential(PlatformLocalCredential::create(id, password, name, avatar)) : Credential(PlatformLocalCredential::create(id, password, name, avatar))
, m_formData(DOMFormData::create())
{ {
m_formData->append("username", id);
m_formData->append("password", password);
} }
const String& LocalCredential::password() const const String& LocalCredential::password() const
...@@ -40,4 +44,10 @@ const String& LocalCredential::password() const ...@@ -40,4 +44,10 @@ const String& LocalCredential::password() const
return static_cast<PlatformLocalCredential*>(m_platformCredential.get())->password(); return static_cast<PlatformLocalCredential*>(m_platformCredential.get())->password();
} }
void LocalCredential::trace(Visitor* visitor)
{
visitor->trace(m_formData);
Credential::trace(visitor);
}
} // namespace blink } // namespace blink
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
namespace blink { namespace blink {
class DOMFormData;
class WebLocalCredential; class WebLocalCredential;
class LocalCredential final : public Credential { class LocalCredential final : public Credential {
...@@ -33,12 +34,18 @@ public: ...@@ -33,12 +34,18 @@ public:
// LocalCredential.idl // LocalCredential.idl
const String& password() const; const String& password() const;
DOMFormData* formData() const { return m_formData.get(); };
virtual void trace(Visitor*) override;
private: private:
LocalCredential(WebLocalCredential*); LocalCredential(WebLocalCredential*);
LocalCredential(const String& id, const String& password, const String& name, const KURL& avatar); LocalCredential(const String& id, const String& password, const String& name, const KURL& avatar);
// FIXME: Reconsider use of GarbageCollectedFinalized once this can be a Member.
RefPtrWillBeMember<DOMFormData> m_formData;
}; };
} // namespace blink } // namespace blink
#endif // Credential_h #endif // LocalCredential_h
...@@ -8,4 +8,5 @@ ...@@ -8,4 +8,5 @@
Constructor(DOMString id, DOMString password, optional DOMString name, optional DOMString avatarURL) Constructor(DOMString id, DOMString password, optional DOMString name, optional DOMString avatarURL)
] interface LocalCredential : Credential { ] interface LocalCredential : Credential {
readonly attribute DOMString password; readonly attribute DOMString password;
readonly attribute FormData formData;
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment