| Index: components/autofill/content/browser/autofill_driver.h | 
| diff --git a/components/autofill/content/browser/autofill_driver.h b/components/autofill/content/browser/autofill_driver.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..67addbf7e30ff368466672c3e69dde757818984f | 
| --- /dev/null | 
| +++ b/components/autofill/content/browser/autofill_driver.h | 
| @@ -0,0 +1,63 @@ | 
| +// Copyright 2013 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. | 
| + | 
| +#ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_H_ | 
| +#define COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_H_ | 
| + | 
| +#include <string> | 
| + | 
| +#include "base/supports_user_data.h" | 
| +#include "components/autofill/browser/autofill_manager.h" | 
| +#include "content/public/browser/web_contents_observer.h" | 
| + | 
| +namespace content { | 
| +class WebContents; | 
| +} | 
| + | 
| +namespace IPC { | 
| +class Message; | 
| +} | 
| + | 
| +namespace autofill { | 
| + | 
| +class AutofillExternalDelegate; | 
| +class AutofillManager; | 
| +class AutofillManagerDelegate; | 
| + | 
| +// Class that drives autofill flow in the browser process based on | 
| +// communication from the renderer and from the external world. There is one | 
| +// instance per WebContents. | 
| +class AutofillDriver : public content::WebContentsObserver, | 
| +                       public base::SupportsUserData::Data { | 
| + public: | 
| +  static void CreateForWebContentsAndDelegate( | 
| +      content::WebContents* contents, | 
| +      autofill::AutofillManagerDelegate* delegate, | 
| +      const std::string& app_locale, | 
| +      AutofillManager::AutofillDownloadManagerState enable_download_manager, | 
| +      bool enable_native_UI); | 
| +  static AutofillDriver* FromWebContents(content::WebContents* contents); | 
| + | 
| + private: | 
| +  AutofillDriver( | 
| +      content::WebContents* web_contents, | 
| +      autofill::AutofillManagerDelegate* delegate, | 
| +      const std::string& app_locale, | 
| +      AutofillManager::AutofillDownloadManagerState enable_download_manager, | 
| +      bool enable_native_UI); | 
| +  virtual ~AutofillDriver(); | 
| + | 
| +  // content::WebContentsObserver: | 
| +  virtual void DidNavigateMainFrame( | 
| +      const content::LoadCommittedDetails& details, | 
| +      const content::FrameNavigateParams& params) OVERRIDE; | 
| +  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 
| + | 
| +  AutofillManager* autofill_manager_; | 
| +  AutofillExternalDelegate* autofill_external_delegate_; | 
| +}; | 
| + | 
| +}  // namespace autofill | 
| + | 
| +#endif  // COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_H_ | 
|  |