| 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 |