Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / credentialmanager / Credential.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef Credential_h
6 #define Credential_h
7
8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "platform/credentialmanager/PlatformCredential.h"
10 #include "platform/heap/Handle.h"
11 #include "platform/weborigin/KURL.h"
12
13 namespace blink {
14
15 class ExceptionState;
16
17 class Credential : public GarbageCollectedFinalized<Credential>, public ScriptWrappable {
18     DEFINE_WRAPPERTYPEINFO();
19 public:
20     static Credential* create(const String& id, const String& name, const KURL& avatar);
21     static Credential* create(const String& id, const String& name, const String& avatar, ExceptionState&);
22
23     // Credential.idl
24     const String& id() const { return m_platformCredential->id(); }
25     const String& name() const { return m_platformCredential->name(); }
26     const KURL& avatarURL() const { return m_platformCredential->avatarURL(); }
27
28     virtual void trace(Visitor*);
29
30     PlatformCredential* platformCredential() const { return m_platformCredential; }
31
32 protected:
33     Credential(PlatformCredential*);
34     Credential(const String& id, const String& name, const KURL& avatar);
35
36     // Parses a string as a KURL. Throws an exception via |exceptionState| if an invalid URL is produced.
37     static KURL parseStringAsURL(const String&, ExceptionState&);
38
39     Member<PlatformCredential> m_platformCredential;
40 };
41
42 } // namespace blink
43
44 #endif // Credential_h