OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/autofill/core/browser/autofill_external_delegate.h" | 5 #include "components/autofill/core/browser/autofill_external_delegate.h" |
6 | 6 |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "components/autofill/core/browser/autocomplete_history_manager.h" | 10 #include "components/autofill/core/browser/autocomplete_history_manager.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 labels.push_back(base::string16()); | 126 labels.push_back(base::string16()); |
127 icons.push_back(base::ASCIIToUTF16("macContactsIcon")); | 127 icons.push_back(base::ASCIIToUTF16("macContactsIcon")); |
128 ids.push_back(POPUP_ITEM_ID_MAC_ACCESS_CONTACTS); | 128 ids.push_back(POPUP_ITEM_ID_MAC_ACCESS_CONTACTS); |
129 | 129 |
130 EmitHistogram(SHOWED_ACCESS_ADDRESS_BOOK_ENTRY); | 130 EmitHistogram(SHOWED_ACCESS_ADDRESS_BOOK_ENTRY); |
131 } | 131 } |
132 #endif // defined(OS_MACOSX) && !defined(OS_IOS) | 132 #endif // defined(OS_MACOSX) && !defined(OS_IOS) |
133 | 133 |
134 if (values.empty()) { | 134 if (values.empty()) { |
135 // No suggestions, any popup currently showing is obsolete. | 135 // No suggestions, any popup currently showing is obsolete. |
136 manager_->delegate()->HideAutofillPopup(); | 136 manager_->client()->HideAutofillPopup(); |
137 return; | 137 return; |
138 } | 138 } |
139 | 139 |
140 // Send to display. | 140 // Send to display. |
141 if (query_field_.is_focusable) { | 141 if (query_field_.is_focusable) { |
142 manager_->delegate()->ShowAutofillPopup( | 142 manager_->client()->ShowAutofillPopup(element_bounds_, |
143 element_bounds_, | 143 query_field_.text_direction, |
144 query_field_.text_direction, | 144 values, |
145 values, | 145 labels, |
146 labels, | 146 icons, |
147 icons, | 147 ids, |
148 ids, | 148 GetWeakPtr()); |
149 GetWeakPtr()); | |
150 } | 149 } |
151 } | 150 } |
152 | 151 |
153 void AutofillExternalDelegate::SetCurrentDataListValues( | 152 void AutofillExternalDelegate::SetCurrentDataListValues( |
154 const std::vector<base::string16>& data_list_values, | 153 const std::vector<base::string16>& data_list_values, |
155 const std::vector<base::string16>& data_list_labels) { | 154 const std::vector<base::string16>& data_list_labels) { |
156 data_list_values_ = data_list_values; | 155 data_list_values_ = data_list_values; |
157 data_list_labels_ = data_list_labels; | 156 data_list_labels_ = data_list_labels; |
158 | 157 |
159 manager_->delegate()->UpdateAutofillPopupDataListValues( | 158 manager_->client()->UpdateAutofillPopupDataListValues(data_list_values, |
160 data_list_values, | 159 data_list_labels); |
161 data_list_labels); | |
162 } | 160 } |
163 | 161 |
164 void AutofillExternalDelegate::OnPopupShown() { | 162 void AutofillExternalDelegate::OnPopupShown() { |
165 manager_->DidShowSuggestions( | 163 manager_->DidShowSuggestions( |
166 has_suggestion_ && !has_shown_popup_for_current_edit_); | 164 has_suggestion_ && !has_shown_popup_for_current_edit_); |
167 has_shown_popup_for_current_edit_ |= has_suggestion_; | 165 has_shown_popup_for_current_edit_ |= has_suggestion_; |
168 } | 166 } |
169 | 167 |
170 void AutofillExternalDelegate::OnPopupHidden() { | 168 void AutofillExternalDelegate::OnPopupHidden() { |
171 } | 169 } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 FROM_HERE, | 226 FROM_HERE, |
229 base::Bind(&AutofillExternalDelegate::PingRenderer, GetWeakPtr()), | 227 base::Bind(&AutofillExternalDelegate::PingRenderer, GetWeakPtr()), |
230 delay); | 228 delay); |
231 #else | 229 #else |
232 NOTREACHED(); | 230 NOTREACHED(); |
233 #endif // defined(OS_MACOSX) && !defined(OS_IOS) | 231 #endif // defined(OS_MACOSX) && !defined(OS_IOS) |
234 } else { | 232 } else { |
235 FillAutofillFormData(identifier, false); | 233 FillAutofillFormData(identifier, false); |
236 } | 234 } |
237 | 235 |
238 manager_->delegate()->HideAutofillPopup(); | 236 manager_->client()->HideAutofillPopup(); |
239 } | 237 } |
240 | 238 |
241 void AutofillExternalDelegate::RemoveSuggestion(const base::string16& value, | 239 void AutofillExternalDelegate::RemoveSuggestion(const base::string16& value, |
242 int identifier) { | 240 int identifier) { |
243 if (identifier > 0) | 241 if (identifier > 0) |
244 manager_->RemoveAutofillProfileOrCreditCard(identifier); | 242 manager_->RemoveAutofillProfileOrCreditCard(identifier); |
245 else | 243 else |
246 manager_->RemoveAutocompleteEntry(query_field_.name, value); | 244 manager_->RemoveAutocompleteEntry(query_field_.name, value); |
247 } | 245 } |
248 | 246 |
249 void AutofillExternalDelegate::DidEndTextFieldEditing() { | 247 void AutofillExternalDelegate::DidEndTextFieldEditing() { |
250 manager_->delegate()->HideAutofillPopup(); | 248 manager_->client()->HideAutofillPopup(); |
251 | 249 |
252 has_shown_popup_for_current_edit_ = false; | 250 has_shown_popup_for_current_edit_ = false; |
253 } | 251 } |
254 | 252 |
255 void AutofillExternalDelegate::ClearPreviewedForm() { | 253 void AutofillExternalDelegate::ClearPreviewedForm() { |
256 driver_->RendererShouldClearPreviewedForm(); | 254 driver_->RendererShouldClearPreviewedForm(); |
257 } | 255 } |
258 | 256 |
259 void AutofillExternalDelegate::Reset() { | 257 void AutofillExternalDelegate::Reset() { |
260 manager_->delegate()->HideAutofillPopup(); | 258 manager_->client()->HideAutofillPopup(); |
261 } | 259 } |
262 | 260 |
263 void AutofillExternalDelegate::OnPingAck() { | 261 void AutofillExternalDelegate::OnPingAck() { |
264 // Reissue the most recent query, which will reopen the Autofill popup. | 262 // Reissue the most recent query, which will reopen the Autofill popup. |
265 manager_->OnQueryFormFieldAutofill(query_id_, | 263 manager_->OnQueryFormFieldAutofill(query_id_, |
266 query_form_, | 264 query_form_, |
267 query_field_, | 265 query_field_, |
268 element_bounds_, | 266 element_bounds_, |
269 display_warning_if_disabled_); | 267 display_warning_if_disabled_); |
270 } | 268 } |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 POPUP_ITEM_ID_DATALIST_ENTRY); | 389 POPUP_ITEM_ID_DATALIST_ENTRY); |
392 } | 390 } |
393 | 391 |
394 #if defined(OS_MACOSX) && !defined(OS_IOS) | 392 #if defined(OS_MACOSX) && !defined(OS_IOS) |
395 void AutofillExternalDelegate::PingRenderer() { | 393 void AutofillExternalDelegate::PingRenderer() { |
396 driver_->PingRenderer(); | 394 driver_->PingRenderer(); |
397 } | 395 } |
398 #endif // defined(OS_MACOSX) && !defined(OS_IOS) | 396 #endif // defined(OS_MACOSX) && !defined(OS_IOS) |
399 | 397 |
400 } // namespace autofill | 398 } // namespace autofill |
OLD | NEW |