Home | History | Annotate | Download | only in password_manager
      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