| Index: chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
|
| diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
|
| index 487248fba6fdda38fb06cfa215aecb70cb0b4acf..f40432a6202a0560bb4bf2a95e5830ecfc50c554 100644
|
| --- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
|
| +++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc
|
| @@ -27,8 +27,7 @@ using base::WeakPtr;
|
| namespace autofill {
|
| namespace {
|
|
|
| -// Used to indicate that no line is currently selected by the user.
|
| -const int kNoSelection = -1;
|
| +const auto& kNoSelection = AutofillPopupView::kNoSelection;
|
|
|
| } // namespace
|
|
|
| @@ -114,9 +113,9 @@ void AutofillPopupControllerImpl::Show(
|
| #endif
|
|
|
| if (just_created) {
|
| - ShowView();
|
| + view_->Show();
|
| } else {
|
| - UpdateBoundsAndRedrawPopup();
|
| + OnSuggestionsChanged();
|
| }
|
|
|
| controller_common_->RegisterKeyPressCallback();
|
| @@ -153,7 +152,7 @@ void AutofillPopupControllerImpl::UpdateDataListValues(
|
|
|
| // The popup contents have changed, so either update the bounds or hide it.
|
| if (HasSuggestions())
|
| - UpdateBoundsAndRedrawPopup();
|
| + OnSuggestionsChanged();
|
| else
|
| Hide();
|
|
|
| @@ -185,7 +184,7 @@ void AutofillPopupControllerImpl::UpdateDataListValues(
|
| elided_labels_[i] = labels[i];
|
| }
|
|
|
| - UpdateBoundsAndRedrawPopup();
|
| + OnSuggestionsChanged();
|
| DCHECK_EQ(suggestions_.size(), elided_values_.size());
|
| DCHECK_EQ(suggestions_.size(), elided_labels_.size());
|
| }
|
| @@ -245,7 +244,7 @@ bool AutofillPopupControllerImpl::HandleKeyPressEvent(
|
| }
|
| }
|
|
|
| -void AutofillPopupControllerImpl::UpdateBoundsAndRedrawPopup() {
|
| +void AutofillPopupControllerImpl::OnSuggestionsChanged() {
|
| #if !defined(OS_ANDROID)
|
| // TODO(csharp): Since UpdatePopupBounds can change the position of the popup,
|
| // the popup could end up jumping from above the element to below it.
|
| @@ -255,7 +254,7 @@ void AutofillPopupControllerImpl::UpdateBoundsAndRedrawPopup() {
|
| #endif
|
|
|
| // Platform-specific draw call.
|
| - view_->UpdateBoundsAndRedrawPopup();
|
| + view_->OnSuggestionsChanged();
|
| }
|
|
|
| void AutofillPopupControllerImpl::SetSelectionAtPoint(const gfx::Point& point) {
|
| @@ -366,7 +365,7 @@ bool AutofillPopupControllerImpl::RemoveSuggestion(int list_index) {
|
|
|
| if (HasSuggestions()) {
|
| delegate_->ClearPreviewedForm();
|
| - UpdateBoundsAndRedrawPopup();
|
| + OnSuggestionsChanged();
|
| } else {
|
| Hide();
|
| }
|
| @@ -394,17 +393,15 @@ void AutofillPopupControllerImpl::SetSelectedLine(int selected_line) {
|
| if (selected_line_ == selected_line)
|
| return;
|
|
|
| - if (selected_line_ != kNoSelection &&
|
| - static_cast<size_t>(selected_line_) < suggestions_.size())
|
| - InvalidateRow(selected_line_);
|
| -
|
| if (selected_line != kNoSelection) {
|
| - InvalidateRow(selected_line);
|
| -
|
| + DCHECK_GE(selected_line, 0);
|
| + DCHECK_LT(static_cast<size_t>(selected_line), suggestions_.size());
|
| if (!CanAccept(suggestions_[selected_line].frontend_id))
|
| selected_line = kNoSelection;
|
| }
|
|
|
| + view_->OnSelectedRowChanged(selected_line_, selected_line);
|
| +
|
| selected_line_ = selected_line;
|
|
|
| if (selected_line_ != kNoSelection) {
|
| @@ -482,16 +479,6 @@ void AutofillPopupControllerImpl::SetValues(
|
| }
|
| }
|
|
|
| -void AutofillPopupControllerImpl::ShowView() {
|
| - view_->Show();
|
| -}
|
| -
|
| -void AutofillPopupControllerImpl::InvalidateRow(size_t row) {
|
| - DCHECK(0 <= row);
|
| - DCHECK(row < suggestions_.size());
|
| - view_->InvalidateRow(row);
|
| -}
|
| -
|
| WeakPtr<AutofillPopupControllerImpl> AutofillPopupControllerImpl::GetWeakPtr() {
|
| return weak_ptr_factory_.GetWeakPtr();
|
| }
|
|
|