• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #include "chrome/browser/webdata/web_data_service.h"
6 
7 #include "base/bind.h"
8 #include "chrome/browser/webdata/logins_table.h"
9 #include "components/os_crypt/ie7_password_win.h"
10 #include "components/webdata/common/web_database_service.h"
11 
12 using base::Bind;
13 
AddIE7Login(const IE7PasswordInfo & info)14 void WebDataService::AddIE7Login(const IE7PasswordInfo& info) {
15   wdbs_->ScheduleDBTask(
16       FROM_HERE, Bind(&WebDataService::AddIE7LoginImpl, this, info));
17 }
18 
RemoveIE7Login(const IE7PasswordInfo & info)19 void WebDataService::RemoveIE7Login(const IE7PasswordInfo& info) {
20   wdbs_->ScheduleDBTask(
21       FROM_HERE, Bind(&WebDataService::RemoveIE7LoginImpl, this, info));
22 }
23 
GetIE7Login(const IE7PasswordInfo & info,WebDataServiceConsumer * consumer)24 WebDataService::Handle WebDataService::GetIE7Login(
25     const IE7PasswordInfo& info,
26     WebDataServiceConsumer* consumer) {
27   return wdbs_->ScheduleDBTaskWithResult(
28       FROM_HERE, Bind(&WebDataService::GetIE7LoginImpl, this, info), consumer);
29 }
30 
AddIE7LoginImpl(const IE7PasswordInfo & info,WebDatabase * db)31 WebDatabase::State WebDataService::AddIE7LoginImpl(
32     const IE7PasswordInfo& info, WebDatabase* db) {
33   if (LoginsTable::FromWebDatabase(db)->AddIE7Login(info))
34     return WebDatabase::COMMIT_NEEDED;
35   return WebDatabase::COMMIT_NOT_NEEDED;
36 }
37 
RemoveIE7LoginImpl(const IE7PasswordInfo & info,WebDatabase * db)38 WebDatabase::State WebDataService::RemoveIE7LoginImpl(
39     const IE7PasswordInfo& info, WebDatabase* db) {
40   if (LoginsTable::FromWebDatabase(db)->RemoveIE7Login(info))
41     return WebDatabase::COMMIT_NEEDED;
42   return WebDatabase::COMMIT_NOT_NEEDED;
43 }
44 
GetIE7LoginImpl(const IE7PasswordInfo & info,WebDatabase * db)45 scoped_ptr<WDTypedResult> WebDataService::GetIE7LoginImpl(
46     const IE7PasswordInfo& info, WebDatabase* db) {
47     IE7PasswordInfo result;
48     LoginsTable::FromWebDatabase(db)->GetIE7Login(info, &result);
49     return scoped_ptr<WDTypedResult>(
50         new WDResult<IE7PasswordInfo>(PASSWORD_IE7_RESULT, result));
51 }
52