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 WebCredentialManagerClient_h
6#define WebCredentialManagerClient_h
7
8#include "public/platform/WebCallbacks.h"
9#include "public/platform/WebCredentialManagerError.h"
10#include "public/platform/WebVector.h"
11
12namespace blink {
13
14class WebCredential;
15class WebURL;
16
17// WebCredentialManagerClient is an interface which allows an embedder to
18// implement 'navigator.credential.*' calls which are defined in the
19// 'credentialmanager' module.
20class WebCredentialManagerClient {
21public:
22    typedef WebCallbacks<WebCredential, WebCredentialManagerError> RequestCallbacks;
23    typedef WebCallbacks<void, WebCredentialManagerError> NotificationCallbacks;
24
25    // Ownership of the callback is transferred to the callee for each of
26    // the following methods.
27    virtual void dispatchFailedSignIn(const WebCredential&, NotificationCallbacks*) { }
28    virtual void dispatchSignedIn(const WebCredential&, NotificationCallbacks*) { }
29    virtual void dispatchSignedOut(NotificationCallbacks*) { }
30    virtual void dispatchRequest(bool zeroClickOnly, const WebVector<WebURL>& federations, RequestCallbacks*) { }
31};
32
33} // namespace blink
34
35#endif // WebCredentialManager_h
36