Index: components/autofill/core/browser/autofill_cc_infobar_delegate.h |
diff --git a/chrome/browser/autofill/autofill_cc_infobar_delegate.h b/components/autofill/core/browser/autofill_cc_infobar_delegate.h |
similarity index 70% |
rename from chrome/browser/autofill/autofill_cc_infobar_delegate.h |
rename to components/autofill/core/browser/autofill_cc_infobar_delegate.h |
index 717cd900f5b8f054431e7d15c75e535b5d64b55b..b492fb752b0fb3be88a12bc41c2f09c97be48002 100644 |
--- a/chrome/browser/autofill/autofill_cc_infobar_delegate.h |
+++ b/components/autofill/core/browser/autofill_cc_infobar_delegate.h |
@@ -2,8 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |
-#define CHROME_BROWSER_AUTOFILL_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |
+#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |
+#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |
#include "base/basictypes.h" |
#include "base/callback.h" |
@@ -14,31 +14,36 @@ |
#include "components/infobars/core/confirm_infobar_delegate.h" |
#include "ui/base/window_open_disposition.h" |
-class CreditCard; |
-class PersonalDataManager; |
-class InfoBarService; |
+namespace infobars { |
+class InfoBarManager; |
+} |
namespace autofill { |
+class AutofillClient; |
+ |
// An InfoBar delegate that enables the user to allow or deny storing credit |
// card information gathered from a form submission. |
class AutofillCCInfoBarDelegate : public ConfirmInfoBarDelegate { |
public: |
// Creates an autofill credit card infobar and delegate and adds the infobar |
- // to |infobar_service|. |
- static void Create(InfoBarService* infobar_service, |
+ // to |infobar_manager|. The |autofill_client| must outlive the infobar. |
+ static void Create(infobars::InfoBarManager* infobar_manager, |
+ AutofillClient* autofill_client, |
const base::Closure& save_card_callback); |
#if defined(UNIT_TEST) |
static scoped_ptr<ConfirmInfoBarDelegate> Create( |
+ AutofillClient* autofill_client, |
const base::Closure& save_card_callback) { |
return scoped_ptr<ConfirmInfoBarDelegate>( |
- new AutofillCCInfoBarDelegate(save_card_callback)); |
+ new AutofillCCInfoBarDelegate(autofill_client, save_card_callback)); |
} |
#endif |
private: |
- explicit AutofillCCInfoBarDelegate(const base::Closure& save_card_callback); |
+ AutofillCCInfoBarDelegate(AutofillClient* autofill_client, |
+ const base::Closure& save_card_callback); |
~AutofillCCInfoBarDelegate() override; |
void LogUserAction(AutofillMetrics::InfoBarMetric user_action); |
@@ -55,6 +60,9 @@ class AutofillCCInfoBarDelegate : public ConfirmInfoBarDelegate { |
base::string16 GetLinkText() const override; |
bool LinkClicked(WindowOpenDisposition disposition) override; |
+ // Performs navigation to handle any link click. Guaranteed to outlive us. |
+ AutofillClient* const autofill_client_; |
+ |
// The callback to save credit card if the user accepts the infobar. |
base::Closure save_card_callback_; |
@@ -68,4 +76,4 @@ class AutofillCCInfoBarDelegate : public ConfirmInfoBarDelegate { |
} // namespace autofill |
-#endif // CHROME_BROWSER_AUTOFILL_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |
+#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_CC_INFOBAR_DELEGATE_H_ |