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.
5 // Chromium settings and storage represent user-selected preferences and
6 // information and MUST not be extracted, overwritten or modified except
7 // through Chromium defined APIs.
9 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__
10 #define COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__
16 #include "base/callback_forward.h"
17 #include "base/files/file_path.h"
18 #include "base/location.h"
19 #include "base/memory/ref_counted.h"
20 #include "components/webdata/common/web_data_results.h"
21 #include "components/webdata/common/web_data_service_base.h"
22 #include "components/webdata/common/web_data_service_consumer.h"
23 #include "components/webdata/common/web_database.h"
26 class MessageLoopProxy
;
29 class TokenWebDataBackend
;
30 class WebDatabaseService
;
31 class WebDataServiceConsumer
;
33 // TokenWebData is a data repository for storage of authentication tokens.
35 class TokenWebData
: public WebDataServiceBase
{
37 TokenWebData(scoped_refptr
<WebDatabaseService
> wdbs
,
38 scoped_refptr
<base::MessageLoopProxy
> ui_thread
,
39 scoped_refptr
<base::MessageLoopProxy
> db_thread
,
40 const ProfileErrorCallback
& callback
);
42 TokenWebData(scoped_refptr
<base::MessageLoopProxy
> ui_thread
,
43 scoped_refptr
<base::MessageLoopProxy
> db_thread
);
45 // Set a token to use for a specified service.
46 void SetTokenForService(const std::string
& service
,
47 const std::string
& token
);
49 // Remove all tokens stored in the web database.
50 void RemoveAllTokens();
52 // Removes a token related to |service| from the web database.
53 void RemoveTokenForService(const std::string
& service
);
55 // Null on failure. Success is WDResult<std::vector<std::string> >
56 virtual Handle
GetAllTokens(WebDataServiceConsumer
* consumer
);
59 // For unit tests, passes a null callback.
62 ~TokenWebData() override
;
65 scoped_refptr
<TokenWebDataBackend
> token_backend_
;
67 DISALLOW_COPY_AND_ASSIGN(TokenWebData
);
70 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__