Index: components/autofill/ios/browser/autofill_driver_ios.h |
diff --git a/components/autofill/ios/browser/autofill_driver_ios.h b/components/autofill/ios/browser/autofill_driver_ios.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1b670f7e60560e4652d4fd7f74cf8e44a4dcb6db |
--- /dev/null |
+++ b/components/autofill/ios/browser/autofill_driver_ios.h |
@@ -0,0 +1,87 @@ |
+// 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_IOS_H_ |
+#define COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_IOS_H_ |
+ |
+#include <string> |
+ |
+#include "components/autofill/core/browser/autofill_client.h" |
+#include "components/autofill/core/browser/autofill_driver.h" |
+#include "components/autofill/core/browser/autofill_external_delegate.h" |
+#include "components/autofill/core/browser/autofill_manager.h" |
+#include "ios/web/public/web_state/web_state_user_data.h" |
+ |
+namespace web { |
+class WebState; |
+} |
+ |
+@protocol AutofillDriverIOSBridge; |
+ |
+namespace autofill { |
+ |
+class AutofillManagerDelegate; |
+ |
+// Class that drives autofill flow on iOS. There is one instance per |
+// WebContents. |
+class AutofillDriverIOS : public AutofillDriver, |
+ public web::WebStateUserData<AutofillDriverIOS> { |
+ public: |
+ static void CreateForWebStateAndDelegate( |
+ web::WebState* web_state, |
+ AutofillClient* client, |
+ id<AutofillDriverIOSBridge> bridge, |
+ const std::string& app_locale, |
+ AutofillManager::AutofillDownloadManagerState enable_download_manager); |
+ |
+ // AutofillDriver: |
+ bool IsOffTheRecord() const override; |
+ net::URLRequestContextGetter* GetURLRequestContext() override; |
+ bool RendererIsAvailable() override; |
+ void SendFormDataToRenderer(int query_id, |
+ RendererFormDataAction action, |
+ const FormData& data) override; |
+ void PingRenderer() override; |
+ void DetectAccountCreationForms( |
+ const std::vector<autofill::FormStructure*>& forms) override; |
+ void SendAutofillTypePredictionsToRenderer( |
+ const std::vector<FormStructure*>& forms) override; |
+ void RendererShouldClearFilledForm() override; |
+ void RendererShouldClearPreviewedForm() override; |
+ void RendererShouldAcceptDataListSuggestion( |
+ const base::string16& value) override; |
+ base::SequencedWorkerPool* GetBlockingPool() override; |
+ |
+ AutofillManager* autofill_manager() { return &autofill_manager_; } |
+ |
+ void RendererShouldFillFieldWithValue(const base::string16& value) override; |
+ void RendererShouldPreviewFieldWithValue( |
+ const base::string16& value) override; |
+ void PopupHidden() override; |
+ |
+ private: |
+ AutofillDriverIOS( |
+ web::WebState* web_state, |
+ AutofillClient* client, |
+ id<AutofillDriverIOSBridge> bridge, |
+ const std::string& app_locale, |
+ AutofillManager::AutofillDownloadManagerState enable_download_manager); |
+ ~AutofillDriverIOS() override; |
+ |
+ // The WebState with which this object is associated. |
+ web::WebState* web_state_; |
+ |
+ // AutofillDriverIOSBridge instance that is passed in. |
+ id<AutofillDriverIOSBridge> bridge_; |
+ |
+ // AutofillManager instance via which this object drives the shared Autofill |
+ // code. |
+ AutofillManager autofill_manager_; |
+ // AutofillExternalDelegate instance that is passed to the AutofillManager. |
+ AutofillExternalDelegate autofill_external_delegate_; |
+}; |
+ |
+} // namespace autofill |
+ |
+#endif // COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_IOS_H_ |