• 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 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_WIN_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_WIN_H_
7 #pragma once
8 
9 #include "base/scoped_ptr.h"
10 #include "chrome/browser/password_manager/password_store_default.h"
11 
12 class LoginDatabase;
13 class Profile;
14 class WebDataService;
15 
16 namespace webkit_glue {
17 struct PasswordForm;
18 }
19 
20 // Windows PasswordStore implementation that uses the default implementation,
21 // but also uses IE7 passwords if no others found.
22 class PasswordStoreWin : public PasswordStoreDefault {
23  public:
24   // FilePath specifies path to WebDatabase.
25   PasswordStoreWin(LoginDatabase* login_database,
26                    Profile* profile,
27                    WebDataService* web_data_service);
28 
29  private:
30   class DBHandler;
31 
32   virtual ~PasswordStoreWin();
33 
34   // Invoked from Shutdown, but run on the DB thread.
35   void ShutdownOnDBThread();
36 
37   virtual GetLoginsRequest* NewGetLoginsRequest(
38       GetLoginsCallback* callback) OVERRIDE;
39 
40   // See PasswordStoreDefault.
41   virtual void Shutdown() OVERRIDE;
42   virtual void ForwardLoginsResult(GetLoginsRequest* request) OVERRIDE;
43 
44   // Overridden so that we can save the form for later use.
45   virtual void GetLoginsImpl(GetLoginsRequest* request,
46                              const webkit_glue::PasswordForm& form) OVERRIDE;
47 
48   scoped_ptr<DBHandler> db_handler_;
49 
50   DISALLOW_COPY_AND_ASSIGN(PasswordStoreWin);
51 };
52 
53 #endif  // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_WIN_H_
54