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

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

Issue 23033016: Remove autocheckout code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Even more deletes, and Ilya review. Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/tab_autofill_manager_delegate.h" 5 #include "chrome/browser/ui/autofill/tab_autofill_manager_delegate.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/autocheckout_whitelist_manager_factory.h"
10 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h" 9 #include "chrome/browser/autofill/autofill_cc_infobar_delegate.h"
11 #include "chrome/browser/autofill/personal_data_manager_factory.h" 10 #include "chrome/browser/autofill/personal_data_manager_factory.h"
12 #include "chrome/browser/infobars/infobar_service.h" 11 #include "chrome/browser/infobars/infobar_service.h"
13 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/autofill/autocheckout_bubble.h"
15 #include "chrome/browser/ui/autofill/autocheckout_bubble_controller.h"
16 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h" 13 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h"
17 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h" 14 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
18 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/browser_finder.h" 16 #include "chrome/browser/ui/browser_finder.h"
20 #include "chrome/browser/ui/browser_window.h" 17 #include "chrome/browser/ui/browser_window.h"
21 #include "chrome/browser/ui/chrome_pages.h" 18 #include "chrome/browser/ui/chrome_pages.h"
22 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" 19 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
23 #include "chrome/common/url_constants.h" 20 #include "chrome/common/url_constants.h"
24 #include "components/autofill/content/browser/autofill_driver_impl.h" 21 #include "components/autofill/content/browser/autofill_driver_impl.h"
25 #include "components/autofill/core/common/autofill_messages.h" 22 #include "components/autofill/core/common/autofill_messages.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 Profile::FromBrowserContext(web_contents_->GetBrowserContext()); 59 Profile::FromBrowserContext(web_contents_->GetBrowserContext());
63 return PersonalDataManagerFactory::GetForProfile( 60 return PersonalDataManagerFactory::GetForProfile(
64 profile->GetOriginalProfile()); 61 profile->GetOriginalProfile());
65 } 62 }
66 63
67 PrefService* TabAutofillManagerDelegate::GetPrefs() { 64 PrefService* TabAutofillManagerDelegate::GetPrefs() {
68 return Profile::FromBrowserContext(web_contents_->GetBrowserContext())-> 65 return Profile::FromBrowserContext(web_contents_->GetBrowserContext())->
69 GetPrefs(); 66 GetPrefs();
70 } 67 }
71 68
72 autocheckout::WhitelistManager*
73 TabAutofillManagerDelegate::GetAutocheckoutWhitelistManager() const {
74 Profile* profile =
75 Profile::FromBrowserContext(web_contents_->GetBrowserContext());
76 return autocheckout::WhitelistManagerFactory::GetForProfile(
77 profile->GetOriginalProfile());
78 }
79
80 void TabAutofillManagerDelegate::OnAutocheckoutError() {
81 // |dialog_controller_| is a WeakPtr, but we require it to be present when
82 // |OnAutocheckoutError| is called, so we intentionally do not do NULL check.
83 dialog_controller_->OnAutocheckoutError();
84 }
85
86 void TabAutofillManagerDelegate::OnAutocheckoutSuccess() {
87 dialog_controller_->OnAutocheckoutSuccess();
88 }
89
90 void TabAutofillManagerDelegate::ShowAutofillSettings() { 69 void TabAutofillManagerDelegate::ShowAutofillSettings() {
91 #if defined(OS_ANDROID) 70 #if defined(OS_ANDROID)
92 NOTIMPLEMENTED(); 71 NOTIMPLEMENTED();
93 #else 72 #else
94 Browser* browser = chrome::FindBrowserWithWebContents(web_contents_); 73 Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
95 if (browser) 74 if (browser)
96 chrome::ShowSettingsSubPage(browser, chrome::kAutofillSubPage); 75 chrome::ShowSettingsSubPage(browser, chrome::kAutofillSubPage);
97 #endif // #if defined(OS_ANDROID) 76 #endif // #if defined(OS_ANDROID)
98 } 77 }
99 78
100 void TabAutofillManagerDelegate::ConfirmSaveCreditCard( 79 void TabAutofillManagerDelegate::ConfirmSaveCreditCard(
101 const AutofillMetrics& metric_logger, 80 const AutofillMetrics& metric_logger,
102 const CreditCard& credit_card, 81 const CreditCard& credit_card,
103 const base::Closure& save_card_callback) { 82 const base::Closure& save_card_callback) {
104 InfoBarService* infobar_service = 83 InfoBarService* infobar_service =
105 InfoBarService::FromWebContents(web_contents_); 84 InfoBarService::FromWebContents(web_contents_);
106 AutofillCCInfoBarDelegate::Create( 85 AutofillCCInfoBarDelegate::Create(
107 infobar_service, &metric_logger, save_card_callback); 86 infobar_service, &metric_logger, save_card_callback);
108 } 87 }
109 88
110 bool TabAutofillManagerDelegate::ShowAutocheckoutBubble(
111 const gfx::RectF& bounding_box,
112 bool is_google_user,
113 const base::Callback<void(AutocheckoutBubbleState)>& callback) {
114 #if !defined(TOOLKIT_VIEWS)
115 callback.Run(AUTOCHECKOUT_BUBBLE_CANCELED);
116 NOTIMPLEMENTED();
117 return false;
118 #else
119 HideAutocheckoutBubble();
120
121 // Convert |bounding_box| to be in screen space.
122 gfx::Rect container_rect;
123 web_contents_->GetView()->GetContainerBounds(&container_rect);
124 gfx::RectF anchor = bounding_box + container_rect.OffsetFromOrigin();
125
126 autocheckout_bubble_ =
127 AutocheckoutBubble::Create(scoped_ptr<AutocheckoutBubbleController>(
128 new AutocheckoutBubbleController(
129 anchor,
130 web_contents_->GetView()->GetTopLevelNativeWindow(),
131 is_google_user,
132 callback)));
133
134 if (!autocheckout_bubble_)
135 return false;
136
137 autocheckout_bubble_->ShowBubble();
138 return true;
139 #endif // #if !defined(TOOLKIT_VIEWS)
140 }
141
142 void TabAutofillManagerDelegate::HideAutocheckoutBubble() {
143 if (autocheckout_bubble_.get())
144 autocheckout_bubble_->HideBubble();
145 }
146
147 void TabAutofillManagerDelegate::ShowRequestAutocompleteDialog( 89 void TabAutofillManagerDelegate::ShowRequestAutocompleteDialog(
148 const FormData& form, 90 const FormData& form,
149 const GURL& source_url, 91 const GURL& source_url,
150 DialogType dialog_type, 92 DialogType dialog_type,
151 const base::Callback<void(const FormStructure*, 93 const base::Callback<void(const FormStructure*,
152 const std::string&)>& callback) { 94 const std::string&)>& callback) {
153 HideRequestAutocompleteDialog(); 95 HideRequestAutocompleteDialog();
154 96
155 dialog_controller_ = AutofillDialogController::Create(web_contents_, 97 dialog_controller_ = AutofillDialogController::Create(web_contents_,
156 form, 98 form,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 const std::vector<base::string16>& labels) { 137 const std::vector<base::string16>& labels) {
196 if (popup_controller_.get()) 138 if (popup_controller_.get())
197 popup_controller_->UpdateDataListValues(values, labels); 139 popup_controller_->UpdateDataListValues(values, labels);
198 } 140 }
199 141
200 void TabAutofillManagerDelegate::HideAutofillPopup() { 142 void TabAutofillManagerDelegate::HideAutofillPopup() {
201 if (popup_controller_.get()) 143 if (popup_controller_.get())
202 popup_controller_->Hide(); 144 popup_controller_->Hide();
203 } 145 }
204 146
205 void TabAutofillManagerDelegate::AddAutocheckoutStep(
206 AutocheckoutStepType step_type) {
207 dialog_controller_->AddAutocheckoutStep(step_type);
208 }
209
210 void TabAutofillManagerDelegate::UpdateAutocheckoutStep(
211 AutocheckoutStepType step_type,
212 AutocheckoutStepStatus step_status) {
213 dialog_controller_->UpdateAutocheckoutStep(step_type, step_status);
214 }
215
216 bool TabAutofillManagerDelegate::IsAutocompleteEnabled() { 147 bool TabAutofillManagerDelegate::IsAutocompleteEnabled() {
217 // For browser, Autocomplete is always enabled as part of Autofill. 148 // For browser, Autocomplete is always enabled as part of Autofill.
218 return GetPrefs()->GetBoolean(prefs::kAutofillEnabled); 149 return GetPrefs()->GetBoolean(prefs::kAutofillEnabled);
219 } 150 }
220 151
221 void TabAutofillManagerDelegate::HideRequestAutocompleteDialog() { 152 void TabAutofillManagerDelegate::HideRequestAutocompleteDialog() {
222 if (dialog_controller_.get()) 153 if (dialog_controller_.get())
223 dialog_controller_->Hide(); 154 dialog_controller_->Hide();
224 } 155 }
225 156
226 void TabAutofillManagerDelegate::WasShown() { 157 void TabAutofillManagerDelegate::WasShown() {
227 content::RenderViewHost* host = web_contents()->GetRenderViewHost(); 158 content::RenderViewHost* host = web_contents()->GetRenderViewHost();
228 if (!host) 159 if (!host)
229 return; 160 return;
230 host->Send(new AutofillMsg_PageShown(host->GetRoutingID())); 161 host->Send(new AutofillMsg_PageShown(host->GetRoutingID()));
231 } 162 }
232 163
233 void TabAutofillManagerDelegate::DidNavigateMainFrame( 164 void TabAutofillManagerDelegate::DidNavigateMainFrame(
234 const content::LoadCommittedDetails& details, 165 const content::LoadCommittedDetails& details,
235 const content::FrameNavigateParams& params) { 166 const content::FrameNavigateParams& params) {
236
237 HideAutocheckoutBubble();
238
239 if (!dialog_controller_.get()) 167 if (!dialog_controller_.get())
240 return; 168 return;
241 169
242 // A redirect immediately after a successful Autocheckout flow shouldn't hide
243 // the dialog.
244 bool preserve_dialog = AutofillDriverImpl::FromWebContents(web_contents())->
245 autofill_manager()->autocheckout_manager()->should_preserve_dialog();
246 bool was_redirect = details.entry && 170 bool was_redirect = details.entry &&
247 content::PageTransitionIsRedirect(details.entry->GetTransitionType()); 171 content::PageTransitionIsRedirect(details.entry->GetTransitionType());
248 172
249 if (dialog_controller_->GetDialogType() == DIALOG_TYPE_REQUEST_AUTOCOMPLETE || 173 if (dialog_controller_->GetDialogType() == DIALOG_TYPE_REQUEST_AUTOCOMPLETE ||
250 (!was_redirect && !preserve_dialog)) { 174 !was_redirect) {
251 HideRequestAutocompleteDialog(); 175 HideRequestAutocompleteDialog();
252 } 176 }
253 } 177 }
254 178
255 void TabAutofillManagerDelegate::WebContentsDestroyed( 179 void TabAutofillManagerDelegate::WebContentsDestroyed(
256 content::WebContents* web_contents) { 180 content::WebContents* web_contents) {
257 HideAutofillPopup(); 181 HideAutofillPopup();
258 } 182 }
259 183
260 } // namespace autofill 184 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698