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

Unified Diff: chrome/browser/ui/autofill/autofill_popup_controller_impl.cc

Issue 2727233003: Uses child views in Autofill Popup so we can trigger (Closed)
Patch Set: Combines 2 calls to InvalidateRow to 1 OnSelectedRowChanged call. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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;
groby-ooo-7-16 2017/03/20 20:42:55 Why define a new constant here? (And if we must, p
csashi 2017/03/20 21:41:51 I removed this a few patches ago. Can you please c
groby-ooo-7-16 2017/03/20 22:53:10 Acknowledged.
} // 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();
}

Powered by Google App Engine
This is Rietveld 408576698