Chromium Code Reviews| Index: chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc |
| diff --git a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc |
| index 78ad6a87fb6a953410398313be68585b138f2c21..357361e4f029276d8531b2b9b20489db972fd81f 100644 |
| --- a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc |
| +++ b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc |
| @@ -14,8 +14,11 @@ |
| #include "components/autofill/core/browser/autofill_metrics.h" |
| #include "components/autofill/core/browser/validation.h" |
| #include "components/autofill/core/common/autofill_constants.h" |
| +#include "components/autofill/core/common/autofill_pref_names.h" |
| #include "components/grit/components_scaled_resources.h" |
| +#include "components/prefs/pref_service.h" |
| #include "components/strings/grit/components_strings.h" |
| +#include "components/user_prefs/user_prefs.h" |
| #include "content/public/browser/navigation_handle.h" |
| #include "ui/base/l10n/l10n_util.h" |
| @@ -35,9 +38,9 @@ const int kSurviveNavigationSeconds = 5; |
| SaveCardBubbleControllerImpl::SaveCardBubbleControllerImpl( |
| content::WebContents* web_contents) |
| : content::WebContentsObserver(web_contents), |
| - save_card_bubble_view_(nullptr) { |
| - DCHECK(web_contents); |
| -} |
| + save_card_bubble_view_(nullptr), |
| + pref_service_( |
| + user_prefs::UserPrefs::Get(web_contents->GetBrowserContext())) {} |
| SaveCardBubbleControllerImpl::~SaveCardBubbleControllerImpl() { |
| if (save_card_bubble_view_) |
| @@ -54,7 +57,9 @@ void SaveCardBubbleControllerImpl::ShowBubbleForLocalSave( |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_SHOW_REQUESTED, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| card_ = card; |
| save_card_callback_ = save_card_callback; |
| @@ -71,12 +76,16 @@ void SaveCardBubbleControllerImpl::ShowBubbleForUpload( |
| should_cvc_be_requested_ = should_cvc_be_requested; |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_SHOW_REQUESTED, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| if (!LegalMessageLine::Parse(*legal_message, &legal_message_lines_)) { |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_END_INVALID_LEGAL_MESSAGE, |
| - is_uploading_, is_reshow_); |
| + is_uploading_, is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| return; |
| } |
| @@ -96,7 +105,9 @@ void SaveCardBubbleControllerImpl::ReshowBubble() { |
| is_reshow_ = true; |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_SHOW_REQUESTED, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| ShowBubble(); |
| } |
| @@ -151,31 +162,43 @@ void SaveCardBubbleControllerImpl::OnSaveButton(const base::string16& cvc) { |
| save_card_callback_.Run(); |
| save_card_callback_.Reset(); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| - AutofillMetrics::SAVE_CARD_PROMPT_END_ACCEPTED, is_uploading_, |
| - is_reshow_); |
| + AutofillMetrics::SAVE_CARD_PROMPT_END_ACCEPTED, is_uploading_, is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| + pref_service_->SetBoolean(prefs::kAutofillAcceptSaveCreditCardPromptState, |
| + true); |
| } |
| void SaveCardBubbleControllerImpl::OnCancelButton() { |
| save_card_callback_.Reset(); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| - AutofillMetrics::SAVE_CARD_PROMPT_END_DENIED, is_uploading_, is_reshow_); |
| + AutofillMetrics::SAVE_CARD_PROMPT_END_DENIED, is_uploading_, is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| + pref_service_->SetBoolean(prefs::kAutofillAcceptSaveCreditCardPromptState, |
| + false); |
| } |
| void SaveCardBubbleControllerImpl::OnLearnMoreClicked() { |
| OpenUrl(GURL(kHelpURL)); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_DISMISS_CLICK_LEARN_MORE, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| } |
| void SaveCardBubbleControllerImpl::OnLegalMessageLinkClicked(const GURL& url) { |
| OpenUrl(url); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_DISMISS_CLICK_LEGAL_MESSAGE, |
| - is_uploading_, is_reshow_); |
| + is_uploading_, is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| } |
| void SaveCardBubbleControllerImpl::OnBubbleClosed() { |
| + LOG(ERROR) << "OnBubbleClosed"; |
|
Mathieu
2017/04/26 14:31:16
fix
csashi
2017/04/26 17:58:31
Done.
|
| save_card_bubble_view_ = nullptr; |
| UpdateIcon(); |
| } |
| @@ -222,13 +245,17 @@ void SaveCardBubbleControllerImpl::DidFinishNavigation( |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_END_NAVIGATION_SHOWING, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| } else { |
| UpdateIcon(); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| AutofillMetrics::SAVE_CARD_PROMPT_END_NAVIGATION_HIDDEN, is_uploading_, |
| - is_reshow_); |
| + is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| } |
| } |
| @@ -252,7 +279,9 @@ void SaveCardBubbleControllerImpl::ShowBubble() { |
| timer_.reset(new base::ElapsedTimer()); |
| AutofillMetrics::LogSaveCardPromptMetric( |
| - AutofillMetrics::SAVE_CARD_PROMPT_SHOWN, is_uploading_, is_reshow_); |
| + AutofillMetrics::SAVE_CARD_PROMPT_SHOWN, is_uploading_, is_reshow_, |
| + pref_service_->GetBoolean( |
| + prefs::kAutofillAcceptSaveCreditCardPromptState)); |
| } |
| void SaveCardBubbleControllerImpl::UpdateIcon() { |