Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(460)

Side by Side Diff: chrome/browser/ui/autofill/chrome_autofill_client.cc

Issue 710453002: [Autofill] Componentize AutofillCCInfoBarDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove infobar if its associated page content is destroyed. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/autofill/chrome_autofill_client.h" 5 #include "chrome/browser/ui/autofill/chrome_autofill_client.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h"
10 #include "chrome/browser/autofill/personal_data_manager_factory.h" 9 #include "chrome/browser/autofill/personal_data_manager_factory.h"
11 #include "chrome/browser/infobars/infobar_service.h" 10 #include "chrome/browser/infobars/infobar_service.h"
12 #include "chrome/browser/password_manager/chrome_password_manager_client.h" 11 #include "chrome/browser/password_manager/chrome_password_manager_client.h"
13 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h" 13 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h"
15 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h" 14 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
16 #include "chrome/browser/ui/autofill/card_unmask_prompt_view.h" 15 #include "chrome/browser/ui/autofill/card_unmask_prompt_view.h"
17 #include "chrome/browser/ui/autofill/credit_card_scanner_controller.h" 16 #include "chrome/browser/ui/autofill/credit_card_scanner_controller.h"
18 #include "chrome/browser/ui/browser.h" 17 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/browser_finder.h" 18 #include "chrome/browser/ui/browser_finder.h"
20 #include "chrome/browser/ui/browser_window.h" 19 #include "chrome/browser/ui/browser_window.h"
21 #include "chrome/browser/ui/chrome_pages.h" 20 #include "chrome/browser/ui/chrome_pages.h"
22 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" 21 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
23 #include "chrome/browser/webdata/web_data_service_factory.h" 22 #include "chrome/browser/webdata/web_data_service_factory.h"
24 #include "chrome/common/url_constants.h" 23 #include "chrome/common/url_constants.h"
25 #include "components/autofill/content/browser/content_autofill_driver.h" 24 #include "components/autofill/content/browser/content_autofill_driver.h"
25 #include "components/autofill/content/browser/content_autofill_driver_factory.h"
26 #include "components/autofill/content/common/autofill_messages.h" 26 #include "components/autofill/content/common/autofill_messages.h"
27 #include "components/autofill/core/browser/autofill_cc_infobar_delegate.h"
27 #include "components/autofill/core/common/autofill_pref_names.h" 28 #include "components/autofill/core/common/autofill_pref_names.h"
28 #include "components/password_manager/content/browser/content_password_manager_d river.h" 29 #include "components/password_manager/content/browser/content_password_manager_d river.h"
29 #include "content/public/browser/render_view_host.h" 30 #include "content/public/browser/render_view_host.h"
30 #include "ui/gfx/rect.h" 31 #include "ui/gfx/rect.h"
31 32
32 #if defined(OS_ANDROID) 33 #if defined(OS_ANDROID)
33 #include "chrome/browser/android/chromium_application.h" 34 #include "chrome/browser/android/chromium_application.h"
34 #include "chrome/browser/ui/android/autofill/autofill_logger_android.h" 35 #include "chrome/browser/ui/android/autofill/autofill_logger_android.h"
35 #else 36 #else
36 #include "components/ui/zoom/zoom_controller.h" 37 #include "components/ui/zoom/zoom_controller.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 weak_pointer_factory_.GetWeakPtr()), 131 weak_pointer_factory_.GetWeakPtr()),
131 base::TimeDelta::FromSeconds(2)); 132 base::TimeDelta::FromSeconds(2));
132 } 133 }
133 134
134 void ChromeAutofillClient::OnVerificationFailure() { 135 void ChromeAutofillClient::OnVerificationFailure() {
135 if (card_unmask_view_) 136 if (card_unmask_view_)
136 card_unmask_view_->VerificationFailed(); 137 card_unmask_view_->VerificationFailed();
137 } 138 }
138 139
139 void ChromeAutofillClient::ConfirmSaveCreditCard( 140 void ChromeAutofillClient::ConfirmSaveCreditCard(
141 AutofillDriver* autofill_driver,
140 const base::Closure& save_card_callback) { 142 const base::Closure& save_card_callback) {
141 InfoBarService* infobar_service = 143 AutofillCCInfoBarDelegate::Create(
142 InfoBarService::FromWebContents(web_contents()); 144 InfoBarService::FromWebContents(web_contents()), autofill_driver,
143 AutofillCCInfoBarDelegate::Create(infobar_service, save_card_callback); 145 save_card_callback);
144 } 146 }
145 147
146 bool ChromeAutofillClient::HasCreditCardScanFeature() { 148 bool ChromeAutofillClient::HasCreditCardScanFeature() {
147 return CreditCardScannerController::HasCreditCardScanFeature(); 149 return CreditCardScannerController::HasCreditCardScanFeature();
148 } 150 }
149 151
150 void ChromeAutofillClient::ScanCreditCard( 152 void ChromeAutofillClient::ScanCreditCard(
151 const CreditCardScanCallback& callback) { 153 const CreditCardScanCallback& callback) {
152 CreditCardScannerController::ScanCreditCard(web_contents(), callback); 154 CreditCardScannerController::ScanCreditCard(web_contents(), callback);
153 } 155 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 220
219 void ChromeAutofillClient::HideRequestAutocompleteDialog() { 221 void ChromeAutofillClient::HideRequestAutocompleteDialog() {
220 if (dialog_controller_.get()) 222 if (dialog_controller_.get())
221 dialog_controller_->Hide(); 223 dialog_controller_->Hide();
222 } 224 }
223 225
224 void ChromeAutofillClient::WebContentsDestroyed() { 226 void ChromeAutofillClient::WebContentsDestroyed() {
225 HideAutofillPopup(); 227 HideAutofillPopup();
226 } 228 }
227 229
230 void ChromeAutofillClient::RenderFrameDeleted(
231 content::RenderFrameHost* render_frame) {
232 ContentAutofillDriverFactory* autofill_driver_factory =
233 ContentAutofillDriverFactory::FromWebContents(web_contents());
234 autofill::AutofillDriver* driver =
235 autofill_driver_factory->DriverForFrame(render_frame);
236 if (driver != nullptr) {
237 autofill::AutofillCCInfoBarDelegate* cc_infobar_delegate =
238 AutofillCCInfoBarDelegate::FromAutofillDriver(driver);
239 if (cc_infobar_delegate != nullptr)
240 cc_infobar_delegate->CloseInfoBar();
241 }
242 }
243
228 void ChromeAutofillClient::OnZoomChanged( 244 void ChromeAutofillClient::OnZoomChanged(
229 const ui_zoom::ZoomController::ZoomChangedEventData& data) { 245 const ui_zoom::ZoomController::ZoomChangedEventData& data) {
230 HideAutofillPopup(); 246 HideAutofillPopup();
231 } 247 }
232 248
233 void ChromeAutofillClient::DetectAccountCreationForms( 249 void ChromeAutofillClient::DetectAccountCreationForms(
234 content::RenderFrameHost* rfh, 250 content::RenderFrameHost* rfh,
235 const std::vector<autofill::FormStructure*>& forms) { 251 const std::vector<autofill::FormStructure*>& forms) {
236 password_manager::ContentPasswordManagerDriver* driver = 252 password_manager::ContentPasswordManagerDriver* driver =
237 password_manager::ContentPasswordManagerDriver::GetForRenderFrameHost( 253 password_manager::ContentPasswordManagerDriver::GetForRenderFrameHost(
(...skipping 10 matching lines...) Expand all
248 profile_full_name); 264 profile_full_name);
249 #endif // defined(OS_ANDROID) 265 #endif // defined(OS_ANDROID)
250 } 266 }
251 267
252 void ChromeAutofillClient::OnFirstUserGestureObserved() { 268 void ChromeAutofillClient::OnFirstUserGestureObserved() {
253 web_contents()->SendToAllFrames( 269 web_contents()->SendToAllFrames(
254 new AutofillMsg_FirstUserGestureObservedInTab(routing_id())); 270 new AutofillMsg_FirstUserGestureObservedInTab(routing_id()));
255 } 271 }
256 272
257 } // namespace autofill 273 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698