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() {
var credential = new LocalCredential('id', 'pencil', 'name', 'https://example.com/avatar.png');
verifyInterface('LocalCredential', credential, {
formData: 'object',
id: 'string',
name: 'string',
avatarURL: 'string',
password: 'string'
});
assert_true(credential.formData instanceof FormData);
assert_equals(credential.id, 'id');
assert_equals(credential.name, 'name');
assert_equals(credential.avatarURL, 'https://example.com/avatar.png');
......@@ -44,5 +46,5 @@ test(function() {
assert_equals(credential.avatarURL, '');
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>
......@@ -14,7 +14,7 @@ namespace blink {
class ExceptionState;
class Credential : public GarbageCollected<Credential>, public ScriptWrappable {
class Credential : public GarbageCollectedFinalized<Credential>, public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
static Credential* create(const String& id, const String& name, const KURL& avatar);
......
......@@ -6,6 +6,7 @@
#include "modules/credentialmanager/LocalCredential.h"
#include "bindings/core/v8/ExceptionState.h"
#include "core/html/DOMFormData.h"
#include "platform/credentialmanager/PlatformLocalCredential.h"
#include "public/platform/WebCredential.h"
#include "public/platform/WebLocalCredential.h"
......@@ -32,7 +33,10 @@ LocalCredential::LocalCredential(WebLocalCredential* webLocalCredential)
LocalCredential::LocalCredential(const String& id, const String& password, const String& name, const KURL& 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
......@@ -40,4 +44,10 @@ const String& LocalCredential::password() const
return static_cast<PlatformLocalCredential*>(m_platformCredential.get())->password();
}
void LocalCredential::trace(Visitor* visitor)
{
visitor->trace(m_formData);
Credential::trace(visitor);
}
} // namespace blink
......@@ -13,6 +13,7 @@
namespace blink {
class DOMFormData;
class WebLocalCredential;
class LocalCredential final : public Credential {
......@@ -33,12 +34,18 @@ public:
// LocalCredential.idl
const String& password() const;
DOMFormData* formData() const { return m_formData.get(); };
virtual void trace(Visitor*) override;
private:
LocalCredential(WebLocalCredential*);
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
#endif // Credential_h
#endif // LocalCredential_h
......@@ -8,4 +8,5 @@
Constructor(DOMString id, DOMString password, optional DOMString name, optional DOMString avatarURL)
] interface LocalCredential : Credential {
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