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