Index: chrome/browser/sync/token_migrator.cc |
=================================================================== |
--- chrome/browser/sync/token_migrator.cc (revision 0) |
+++ chrome/browser/sync/token_migrator.cc (revision 0) |
@@ -0,0 +1,53 @@ |
+// Copyright (c) 2010 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 file. |
+ |
+#include "chrome/browser/sync/token_migrator.h" |
+ |
+#include "chrome/browser/sync/profile_sync_service.h" |
+#include "chrome/browser/sync/util/user_settings.h" |
+#include "chrome/common/net/gaia/gaia_constants.h" |
+ |
+const FilePath::CharType kSyncDataFolderName[] = |
+ FILE_PATH_LITERAL("Sync Data"); |
+ |
+const FilePath::CharType kBookmarkSyncUserSettingsDatabase[] = |
+ FILE_PATH_LITERAL("BookmarkSyncSettings.sqlite3"); |
+ |
+using browser_sync::UserSettings; |
+ |
+TokenMigrator::TokenMigrator(ProfileSyncService* service, |
+ const FilePath& profile_path) |
+ : service_(service), |
+ database_location_(profile_path.Append(kSyncDataFolderName)) { |
+} |
+ |
+TokenMigrator::~TokenMigrator() { |
+} |
+ |
+void TokenMigrator::TryMigration() { |
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); |
+ ChromeThread::PostTask(ChromeThread::DB, FROM_HERE, |
+ NewRunnableMethod(this, &TokenMigrator::LoadTokens)); |
+} |
+ |
+void TokenMigrator::LoadTokens() { |
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::DB)); |
+ scoped_ptr<UserSettings> user_settings(new UserSettings()); |
+ FilePath settings_db_file = |
+ database_location_.Append(FilePath(kBookmarkSyncUserSettingsDatabase)); |
+ if (!user_settings->Init(settings_db_file)) |
+ return; |
+ |
+ if (!user_settings->GetLastUserAndServiceToken(GaiaConstants::kSyncService, |
+ &username_, &token_)) |
+ return; |
+ |
+ ChromeThread::PostTask(ChromeThread::UI, FROM_HERE, |
+ NewRunnableMethod(this, &TokenMigrator::PostTokensBack)); |
+} |
+ |
+void TokenMigrator::PostTokensBack() { |
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); |
+ service_->LoadMigratedCredentials(username_, token_); |
+} |