// Copyright (c) 2011 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/webdata/web_data_service.h" #include "base/task.h" #include "chrome/browser/password_manager/ie7_password.h" #include "chrome/browser/webdata/web_database.h" void WebDataService::AddIE7Login(const IE7PasswordInfo& info) { GenericRequest<IE7PasswordInfo>* request = new GenericRequest<IE7PasswordInfo>(this, GetNextRequestHandle(), NULL, info); RegisterRequest(request); ScheduleTask(NewRunnableMethod(this, &WebDataService::AddIE7LoginImpl, request)); } void WebDataService::RemoveIE7Login(const IE7PasswordInfo& info) { GenericRequest<IE7PasswordInfo>* request = new GenericRequest<IE7PasswordInfo>(this, GetNextRequestHandle(), NULL, info); RegisterRequest(request); ScheduleTask(NewRunnableMethod(this, &WebDataService::RemoveIE7LoginImpl, request)); } WebDataService::Handle WebDataService::GetIE7Login( const IE7PasswordInfo& info, WebDataServiceConsumer* consumer) { GenericRequest<IE7PasswordInfo>* request = new GenericRequest<IE7PasswordInfo>(this, GetNextRequestHandle(), consumer, info); RegisterRequest(request); ScheduleTask(NewRunnableMethod(this, &WebDataService::GetIE7LoginImpl, request)); return request->GetHandle(); } void WebDataService::AddIE7LoginImpl(GenericRequest<IE7PasswordInfo>* request) { if (db_ && !request->IsCancelled()) { if (db_->GetLoginsTable()->AddIE7Login(request->GetArgument())) ScheduleCommit(); } request->RequestComplete(); } void WebDataService::RemoveIE7LoginImpl( GenericRequest<IE7PasswordInfo>* request) { if (db_ && !request->IsCancelled()) { if (db_->GetLoginsTable()->RemoveIE7Login(request->GetArgument())) ScheduleCommit(); } request->RequestComplete(); } void WebDataService::GetIE7LoginImpl( GenericRequest<IE7PasswordInfo>* request) { if (db_ && !request->IsCancelled()) { IE7PasswordInfo result; db_->GetLoginsTable()->GetIE7Login(request->GetArgument(), &result); request->SetResult( new WDResult<IE7PasswordInfo>(PASSWORD_IE7_RESULT, result)); } request->RequestComplete(); }