token_web_data.h revision effb81e5f8246d0db0270817048dc992db66e9fb
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// 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.
8
9#ifndef COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__
10#define COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__
11
12#include <map>
13#include <string>
14#include <vector>
15
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"
24
25namespace base {
26class MessageLoopProxy;
27}
28
29class TokenWebDataBackend;
30class WebDatabaseService;
31class WebDataServiceConsumer;
32
33// TokenWebData is a data repository for storage of authentication tokens.
34
35class TokenWebData : public WebDataServiceBase {
36 public:
37  TokenWebData(scoped_refptr<WebDatabaseService> wdbs,
38               scoped_refptr<base::MessageLoopProxy> ui_thread,
39               scoped_refptr<base::MessageLoopProxy> db_thread,
40               const ProfileErrorCallback& callback);
41
42  TokenWebData(scoped_refptr<base::MessageLoopProxy> ui_thread,
43               scoped_refptr<base::MessageLoopProxy> db_thread);
44
45  // Set a token to use for a specified service.
46  void SetTokenForService(const std::string& service,
47                          const std::string& token);
48
49  // Remove all tokens stored in the web database.
50  void RemoveAllTokens();
51
52  // Removes a token related to |service| from the web database.
53  void RemoveTokenForService(const std::string& service);
54
55  // Null on failure. Success is WDResult<std::vector<std::string> >
56  virtual Handle GetAllTokens(WebDataServiceConsumer* consumer);
57
58 protected:
59  // For unit tests, passes a null callback.
60  TokenWebData();
61
62  virtual ~TokenWebData();
63
64 private:
65  scoped_refptr<TokenWebDataBackend> token_backend_;
66
67  DISALLOW_COPY_AND_ASSIGN(TokenWebData);
68};
69
70#endif  // COMPONENTS_SIGNIN_CORE_BROWSER_WEBDATA_TOKEN_WEB_DATA_H__
71