Index: chrome/browser/sync/util/user_settings-win32.cc |
=================================================================== |
--- chrome/browser/sync/util/user_settings-win32.cc (revision 0) |
+++ chrome/browser/sync/util/user_settings-win32.cc (revision 0) |
@@ -0,0 +1,67 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE entry. |
+ |
+#include "chrome/browser/sync/util/user_settings.h" |
+ |
+#include <string> |
+ |
+#include "chrome/browser/sync/util/crypto_helpers.h" |
+#include "chrome/browser/sync/util/data_encryption.h" |
+#include "chrome/browser/sync/util/query_helpers.h" |
+ |
+using std::string; |
+ |
+namespace browser_sync { |
+ |
+bool UserSettings::GetLastUser(string* username) { |
+ ScopedDBHandle dbhandle(this); |
+ ScopedStatement query(PrepareQuery(dbhandle.get(), |
+ "SELECT email FROM cookies")); |
+ if (SQLITE_ROW == sqlite3_step(query.get())) { |
+ GetColumn(query.get(), 0, username); |
+ return true; |
+ } else { |
+ return false; |
+ } |
+} |
+ |
+void UserSettings::ClearAllServiceTokens() { |
+ ScopedDBHandle dbhandle(this); |
+ ExecOrDie(dbhandle.get(), "DELETE FROM cookies"); |
+} |
+ |
+void UserSettings::SetAuthTokenForService(const string& email, |
+ const string& service_name, const string& long_lived_service_token) { |
+ ScopedDBHandle dbhandle(this); |
+ ExecOrDie(dbhandle.get(), "INSERT INTO cookies " |
+ "(email, service_name, service_token) " |
+ "values (?, ?, ?)", email, service_name, |
+ EncryptData(long_lived_service_token)); |
+} |
+ |
+// Returns the username whose credentials have been persisted as well as |
+// a service token for the named service. |
+bool UserSettings::GetLastUserAndServiceToken(const string& service_name, |
+ string* username, |
+ string* service_token) { |
+ ScopedDBHandle dbhandle(this); |
+ ScopedStatement query(PrepareQuery( |
+ dbhandle.get(), |
+ "SELECT email, service_token FROM cookies WHERE service_name = ?", |
+ service_name)); |
+ |
+ if (SQLITE_ROW == sqlite3_step(query.get())) { |
+ GetColumn(query.get(), 0, username); |
+ |
+ std::vector<uint8> encrypted_service_token; |
+ GetColumn(query.get(), 1, &encrypted_service_token); |
+ DecryptData(encrypted_service_token, service_token); |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
+} // namespace browser_sync |
+ |
Property changes on: chrome\browser\sync\util\user_settings-win32.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |