Home | History | Annotate | Download | only in credentialmanager
      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 "bindings/core/v8/SerializedScriptValue.h"
     10 #include "platform/credentialmanager/PlatformCredential.h"
     11 #include "platform/heap/Handle.h"
     12 #include "platform/weborigin/KURL.h"
     13 
     14 namespace blink {
     15 
     16 class WebCredential;
     17 class ExceptionState;
     18 
     19 class Credential : public GarbageCollected<Credential>, public ScriptWrappable {
     20     DEFINE_WRAPPERTYPEINFO();
     21 public:
     22     static Credential* create(const String& id, const String& name, const KURL& avatar);
     23     static Credential* create(const String& id, const String& name, const String& avatar, ExceptionState&);
     24 
     25     // Credential.idl
     26     const String& id() const { return m_platformCredential->id(); }
     27     const String& name() const { return m_platformCredential->name(); }
     28     const KURL& avatarURL() const { return m_platformCredential->avatarURL(); }
     29 
     30     virtual void trace(Visitor*);
     31 
     32     PlatformCredential* platformCredential() const { return m_platformCredential; }
     33 
     34 protected:
     35     Credential(PlatformCredential*);
     36     Credential(const String& id, const String& name, const KURL& avatar);
     37 
     38     // Parses a string as a KURL. Throws an exception via |exceptionState| if an invalid URL is produced.
     39     static KURL parseStringAsURL(const String&, ExceptionState&);
     40 
     41     Member<PlatformCredential> m_platformCredential;
     42 };
     43 
     44 } // namespace blink
     45 
     46 #endif // Credential_h
     47