1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_WEBDATA_TOKEN_SERVICE_TABLE_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_WEBDATA_TOKEN_SERVICE_TABLE_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/webdata/web_database_table.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass TokenServiceTable : public WebDatabaseTable { 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TokenServiceTable(sql::Connection* db, sql::MetaTable* meta_table) 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen : WebDatabaseTable(db, meta_table) {} 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~TokenServiceTable() {} 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool Init(); 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual bool IsSyncable(); 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Remove all tokens previously set with SetTokenForService. 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool RemoveAllTokens(); 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Retrieves all tokens previously set with SetTokenForService. 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns true if there were tokens and we decrypted them, 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // false if there was a failure somehow 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool GetAllTokens(std::map<std::string, std::string>* tokens); 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Store a token in the token_service table. Stored encrypted. May cause 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // a mac keychain popup. 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // True if we encrypted a token and stored it, false otherwise. 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen bool SetTokenForService(const std::string& service, 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const std::string& token); 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen DISALLOW_COPY_AND_ASSIGN(TokenServiceTable); 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_WEBDATA_TOKEN_SERVICE_TABLE_H_ 39