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

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

Issue 127153004: Change AutofillDialogControllerImpl::input_showing_popup_ -> popup_input_type_ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 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 "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 5 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 1881 matching lines...) Expand 10 before | Expand all | Expand 10 after
1892 &popup_labels, 1892 &popup_labels,
1893 &popup_icons, 1893 &popup_icons,
1894 &popup_guids_); 1894 &popup_guids_);
1895 } 1895 }
1896 1896
1897 if (popup_values.empty()) { 1897 if (popup_values.empty()) {
1898 HidePopup(); 1898 HidePopup();
1899 return; 1899 return;
1900 } 1900 }
1901 1901
1902 // |input_showing_popup_| must be set before calling |Show()|. 1902 // |popup_input_type_| must be set before calling |Show()|.
1903 const DetailInputs& inputs = RequestedFieldsForSection(section); 1903 popup_input_type_ = type;
1904 for (DetailInputs::const_iterator iter = inputs.begin();
1905 iter != inputs.end(); ++iter) {
1906 if (iter->type == type) {
1907 input_showing_popup_ = &(*iter);
1908 break;
1909 }
1910 }
1911
1912 if (!input_showing_popup_)
1913 return;
1914 1904
1915 // TODO(estade): do we need separators and control rows like 'Clear 1905 // TODO(estade): do we need separators and control rows like 'Clear
1916 // Form'? 1906 // Form'?
1917 std::vector<int> popup_ids; 1907 std::vector<int> popup_ids;
1918 for (size_t i = 0; i < popup_guids_.size(); ++i) { 1908 for (size_t i = 0; i < popup_guids_.size(); ++i) {
1919 popup_ids.push_back(i); 1909 popup_ids.push_back(i);
1920 } 1910 }
1921 1911
1922 popup_controller_ = AutofillPopupControllerImpl::GetOrCreate( 1912 popup_controller_ = AutofillPopupControllerImpl::GetOrCreate(
1923 popup_controller_, 1913 popup_controller_,
1924 weak_ptr_factory_.GetWeakPtr(), 1914 weak_ptr_factory_.GetWeakPtr(),
1925 NULL, 1915 NULL,
1926 parent_view, 1916 parent_view,
1927 content_bounds, 1917 content_bounds,
1928 base::i18n::IsRTL() ? 1918 base::i18n::IsRTL() ?
1929 base::i18n::RIGHT_TO_LEFT : base::i18n::LEFT_TO_RIGHT); 1919 base::i18n::RIGHT_TO_LEFT : base::i18n::LEFT_TO_RIGHT);
1930 popup_controller_->set_hide_on_outside_click(true); 1920 popup_controller_->set_hide_on_outside_click(true);
1931 popup_controller_->Show(popup_values, 1921 popup_controller_->Show(popup_values,
1932 popup_labels, 1922 popup_labels,
1933 popup_icons, 1923 popup_icons,
1934 popup_ids); 1924 popup_ids);
1935 } 1925 }
1936 1926
1937 void AutofillDialogControllerImpl::FocusMoved() { 1927 void AutofillDialogControllerImpl::FocusMoved() {
1938 HidePopup(); 1928 HidePopup();
1939 } 1929 }
1940 1930
1941 bool AutofillDialogControllerImpl::ShouldShowErrorBubble() const { 1931 bool AutofillDialogControllerImpl::ShouldShowErrorBubble() const {
1942 return !input_showing_popup_; 1932 return popup_input_type_ == UNKNOWN_TYPE;
1943 } 1933 }
1944 1934
1945 void AutofillDialogControllerImpl::ViewClosed() { 1935 void AutofillDialogControllerImpl::ViewClosed() {
1946 GetManager()->RemoveObserver(this); 1936 GetManager()->RemoveObserver(this);
1947 1937
1948 // Called from here rather than in ~AutofillDialogControllerImpl as this 1938 // Called from here rather than in ~AutofillDialogControllerImpl as this
1949 // relies on virtual methods that change to their base class in the dtor. 1939 // relies on virtual methods that change to their base class in the dtor.
1950 MaybeShowCreditCardBubble(); 1940 MaybeShowCreditCardBubble();
1951 1941
1952 delete this; 1942 delete this;
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
2136 ScopedViewUpdates update(view_.get()); 2126 ScopedViewUpdates update(view_.get());
2137 view_->UpdateErrorBubble(); 2127 view_->UpdateErrorBubble();
2138 2128
2139 GetMetricLogger().LogDialogPopupEvent(AutofillMetrics::DIALOG_POPUP_SHOWN); 2129 GetMetricLogger().LogDialogPopupEvent(AutofillMetrics::DIALOG_POPUP_SHOWN);
2140 } 2130 }
2141 2131
2142 void AutofillDialogControllerImpl::OnPopupHidden() {} 2132 void AutofillDialogControllerImpl::OnPopupHidden() {}
2143 2133
2144 bool AutofillDialogControllerImpl::ShouldRepostEvent( 2134 bool AutofillDialogControllerImpl::ShouldRepostEvent(
2145 const ui::MouseEvent& event) { 2135 const ui::MouseEvent& event) {
2146 // If the event would be reposted inside |input_showing_popup_|, just ignore. 2136 DCHECK_NE(UNKNOWN_TYPE, popup_input_type_);
2147 return !view_->HitTestInput(*input_showing_popup_, event.location()); 2137 // If the event would be reposted inside the input showing an Autofill popup,
2138 // just ignore.
2139 return !view_->HitTestInput(popup_input_type_, event.location());
2148 } 2140 }
2149 2141
2150 void AutofillDialogControllerImpl::DidSelectSuggestion(int identifier) { 2142 void AutofillDialogControllerImpl::DidSelectSuggestion(int identifier) {
2151 // TODO(estade): implement. 2143 // TODO(estade): implement.
2152 } 2144 }
2153 2145
2154 void AutofillDialogControllerImpl::DidAcceptSuggestion( 2146 void AutofillDialogControllerImpl::DidAcceptSuggestion(
2155 const base::string16& value, 2147 const base::string16& value,
2156 int identifier) { 2148 int identifier) {
2157 ScopedViewUpdates updates(view_.get()); 2149 ScopedViewUpdates updates(view_.get());
2158 const PersonalDataManager::GUIDPair& pair = popup_guids_[identifier]; 2150 const PersonalDataManager::GUIDPair& pair = popup_guids_[identifier];
2159 2151
2160 scoped_ptr<DataModelWrapper> wrapper; 2152 scoped_ptr<DataModelWrapper> wrapper;
2161 if (common::IsCreditCardType(input_showing_popup_->type)) { 2153 if (common::IsCreditCardType(popup_input_type_)) {
2162 wrapper.reset(new AutofillCreditCardWrapper( 2154 wrapper.reset(new AutofillCreditCardWrapper(
2163 GetManager()->GetCreditCardByGUID(pair.first))); 2155 GetManager()->GetCreditCardByGUID(pair.first)));
2164 } else { 2156 } else {
2165 wrapper.reset(new AutofillProfileWrapper( 2157 wrapper.reset(new AutofillProfileWrapper(
2166 GetManager()->GetProfileByGUID(pair.first), 2158 GetManager()->GetProfileByGUID(pair.first),
2167 AutofillType(input_showing_popup_->type), 2159 AutofillType(popup_input_type_),
2168 pair.second)); 2160 pair.second));
2169 } 2161 }
2170 2162
2171 for (size_t i = SECTION_MIN; i <= SECTION_MAX; ++i) { 2163 for (size_t i = SECTION_MIN; i <= SECTION_MAX; ++i) {
2172 DialogSection section = static_cast<DialogSection>(i); 2164 DialogSection section = static_cast<DialogSection>(i);
2173 wrapper->FillInputs(MutableRequestedFieldsForSection(section)); 2165 wrapper->FillInputs(MutableRequestedFieldsForSection(section));
2174 view_->FillSection(section, *input_showing_popup_); 2166 view_->FillSection(section, popup_input_type_);
2175 } 2167 }
2176 2168
2177 GetMetricLogger().LogDialogPopupEvent( 2169 GetMetricLogger().LogDialogPopupEvent(
2178 AutofillMetrics::DIALOG_POPUP_FORM_FILLED); 2170 AutofillMetrics::DIALOG_POPUP_FORM_FILLED);
2179 2171
2180 // TODO(estade): not sure why it's necessary to do this explicitly. 2172 // TODO(estade): not sure why it's necessary to do this explicitly.
2181 HidePopup(); 2173 HidePopup();
2182 } 2174 }
2183 2175
2184 void AutofillDialogControllerImpl::RemoveSuggestion( 2176 void AutofillDialogControllerImpl::RemoveSuggestion(
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
2530 wallet_client_(profile_->GetRequestContext(), this, source_url), 2522 wallet_client_(profile_->GetRequestContext(), this, source_url),
2531 wallet_items_requested_(false), 2523 wallet_items_requested_(false),
2532 handling_use_wallet_link_click_(false), 2524 handling_use_wallet_link_click_(false),
2533 passive_failed_(false), 2525 passive_failed_(false),
2534 country_combobox_model_(*GetManager()), 2526 country_combobox_model_(*GetManager()),
2535 suggested_cc_(this), 2527 suggested_cc_(this),
2536 suggested_billing_(this), 2528 suggested_billing_(this),
2537 suggested_cc_billing_(this), 2529 suggested_cc_billing_(this),
2538 suggested_shipping_(this), 2530 suggested_shipping_(this),
2539 cares_about_shipping_(true), 2531 cares_about_shipping_(true),
2540 input_showing_popup_(NULL), 2532 popup_input_type_(UNKNOWN_TYPE),
2541 weak_ptr_factory_(this), 2533 weak_ptr_factory_(this),
2542 waiting_for_explicit_sign_in_response_(false), 2534 waiting_for_explicit_sign_in_response_(false),
2543 has_accepted_legal_documents_(false), 2535 has_accepted_legal_documents_(false),
2544 is_submitting_(false), 2536 is_submitting_(false),
2545 choose_another_instrument_or_address_(false), 2537 choose_another_instrument_or_address_(false),
2546 wallet_server_validation_recoverable_(true), 2538 wallet_server_validation_recoverable_(true),
2547 data_was_passed_back_(false), 2539 data_was_passed_back_(false),
2548 was_ui_latency_logged_(false), 2540 was_ui_latency_logged_(false),
2549 card_generated_animation_(2000, 60, this) { 2541 card_generated_animation_(2000, 60, this) {
2550 // TODO(estade): remove duplicates from |form_structure|? 2542 // TODO(estade): remove duplicates from |form_structure|?
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
2997 } 2989 }
2998 2990
2999 DetailInputs* AutofillDialogControllerImpl::MutableRequestedFieldsForSection( 2991 DetailInputs* AutofillDialogControllerImpl::MutableRequestedFieldsForSection(
3000 DialogSection section) { 2992 DialogSection section) {
3001 return const_cast<DetailInputs*>(&RequestedFieldsForSection(section)); 2993 return const_cast<DetailInputs*>(&RequestedFieldsForSection(section));
3002 } 2994 }
3003 2995
3004 void AutofillDialogControllerImpl::HidePopup() { 2996 void AutofillDialogControllerImpl::HidePopup() {
3005 if (popup_controller_.get()) 2997 if (popup_controller_.get())
3006 popup_controller_->Hide(); 2998 popup_controller_->Hide();
3007 input_showing_popup_ = NULL; 2999 popup_input_type_ = UNKNOWN_TYPE;
3008 } 3000 }
3009 3001
3010 void AutofillDialogControllerImpl::SetEditingExistingData( 3002 void AutofillDialogControllerImpl::SetEditingExistingData(
3011 DialogSection section, bool editing) { 3003 DialogSection section, bool editing) {
3012 if (editing) 3004 if (editing)
3013 section_editing_state_.insert(section); 3005 section_editing_state_.insert(section);
3014 else 3006 else
3015 section_editing_state_.erase(section); 3007 section_editing_state_.erase(section);
3016 } 3008 }
3017 3009
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
3543 view_->UpdateButtonStrip(); 3535 view_->UpdateButtonStrip();
3544 } 3536 }
3545 3537
3546 void AutofillDialogControllerImpl::FetchWalletCookie() { 3538 void AutofillDialogControllerImpl::FetchWalletCookie() {
3547 net::URLRequestContextGetter* request_context = profile_->GetRequestContext(); 3539 net::URLRequestContextGetter* request_context = profile_->GetRequestContext();
3548 signin_helper_.reset(new wallet::WalletSigninHelper(this, request_context)); 3540 signin_helper_.reset(new wallet::WalletSigninHelper(this, request_context));
3549 signin_helper_->StartWalletCookieValueFetch(); 3541 signin_helper_->StartWalletCookieValueFetch();
3550 } 3542 }
3551 3543
3552 } // namespace autofill 3544 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698