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

Side by Side Diff: chrome/renderer/autofill_helper.cc

Issue 3071003: AutoFill: Display a right-aligned generic CC icon in the suggestions popup for (Closed)
Patch Set: Rebase. Created 10 years, 4 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
« no previous file with comments | « chrome/renderer/autofill_helper.h ('k') | chrome/renderer/render_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/renderer/autofill_helper.h" 5 #include "chrome/renderer/autofill_helper.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "chrome/renderer/form_manager.h" 8 #include "chrome/renderer/form_manager.h"
9 #include "chrome/renderer/render_view.h" 9 #include "chrome/renderer/render_view.h"
10 #include "grit/generated_resources.h" 10 #include "grit/generated_resources.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 if (suggestions_options_index_ != -1) 59 if (suggestions_options_index_ != -1)
60 suggestions_options_index_--; 60 suggestions_options_index_--;
61 61
62 render_view_->Send(new ViewHostMsg_RemoveAutocompleteEntry( 62 render_view_->Send(new ViewHostMsg_RemoveAutocompleteEntry(
63 render_view_->routing_id(), name, value)); 63 render_view_->routing_id(), name, value));
64 } 64 }
65 65
66 void AutoFillHelper::SuggestionsReceived(int query_id, 66 void AutoFillHelper::SuggestionsReceived(int query_id,
67 const std::vector<string16>& values, 67 const std::vector<string16>& values,
68 const std::vector<string16>& labels, 68 const std::vector<string16>& labels,
69 const std::vector<string16>& icons,
69 const std::vector<int>& unique_ids) { 70 const std::vector<int>& unique_ids) {
70 WebKit::WebView* web_view = render_view_->webview(); 71 WebKit::WebView* web_view = render_view_->webview();
71 if (!web_view || query_id != autofill_query_id_) 72 if (!web_view || query_id != autofill_query_id_)
72 return; 73 return;
73 74
74 // Any popup currently showing is now obsolete. 75 // Any popup currently showing is now obsolete.
75 web_view->hidePopups(); 76 web_view->hidePopups();
76 77
77 // No suggestions: nothing to do. 78 // No suggestions: nothing to do.
78 if (values.empty()) 79 if (values.empty())
79 return; 80 return;
80 81
81 std::vector<string16> v(values); 82 std::vector<string16> v(values);
82 std::vector<string16> l(labels); 83 std::vector<string16> l(labels);
84 std::vector<string16> i(icons);
83 std::vector<int> ids(unique_ids); 85 std::vector<int> ids(unique_ids);
84 int separator_index = -1; 86 int separator_index = -1;
85 87
86 // The form has been auto-filled, so give the user the chance to clear the 88 // The form has been auto-filled, so give the user the chance to clear the
87 // form. Append the 'Clear form' menu item. 89 // form. Append the 'Clear form' menu item.
88 if (form_manager_.FormWithNodeIsAutoFilled(autofill_query_node_)) { 90 if (form_manager_.FormWithNodeIsAutoFilled(autofill_query_node_)) {
89 v.push_back(l10n_util::GetStringUTF16(IDS_AUTOFILL_CLEAR_FORM_MENU_ITEM)); 91 v.push_back(l10n_util::GetStringUTF16(IDS_AUTOFILL_CLEAR_FORM_MENU_ITEM));
90 l.push_back(string16()); 92 l.push_back(string16());
93 i.push_back(string16());
91 ids.push_back(0); 94 ids.push_back(0);
92 suggestions_clear_index_ = v.size() - 1; 95 suggestions_clear_index_ = v.size() - 1;
93 separator_index = values.size(); 96 separator_index = values.size();
94 } 97 }
95 98
96 // Only include "AutoFill Options" special menu item if we have AutoFill 99 // Only include "AutoFill Options" special menu item if we have AutoFill
97 // items, identified by |unique_ids| having at least one valid value. 100 // items, identified by |unique_ids| having at least one valid value.
98 bool show_options = false; 101 bool show_options = false;
99 for (size_t i = 0; i < ids.size(); ++i) { 102 for (size_t i = 0; i < ids.size(); ++i) {
100 if (ids[i] != 0) { 103 if (ids[i] != 0) {
101 show_options = true; 104 show_options = true;
102 break; 105 break;
103 } 106 }
104 } 107 }
105 if (show_options) { 108 if (show_options) {
106 // Append the 'AutoFill Options...' menu item. 109 // Append the 'AutoFill Options...' menu item.
107 v.push_back(l10n_util::GetStringUTF16(IDS_AUTOFILL_OPTIONS)); 110 v.push_back(l10n_util::GetStringUTF16(IDS_AUTOFILL_OPTIONS));
108 l.push_back(string16()); 111 l.push_back(string16());
112 i.push_back(string16());
109 ids.push_back(0); 113 ids.push_back(0);
110 suggestions_options_index_ = v.size() - 1; 114 suggestions_options_index_ = v.size() - 1;
111 separator_index = values.size(); 115 separator_index = values.size();
112 } 116 }
113 117
114 // Send to WebKit for display. 118 // Send to WebKit for display.
115 if (!v.empty()) { 119 if (!v.empty()) {
116 web_view->applyAutoFillSuggestions( 120 web_view->applyAutoFillSuggestions(
117 autofill_query_node_, v, l, ids, separator_index); 121 autofill_query_node_, v, l, i, ids, separator_index);
118 } 122 }
119 } 123 }
120 124
121 void AutoFillHelper::FormDataFilled(int query_id, 125 void AutoFillHelper::FormDataFilled(int query_id,
122 const webkit_glue::FormData& form) { 126 const webkit_glue::FormData& form) {
123 if (!render_view_->webview() || query_id != autofill_query_id_) 127 if (!render_view_->webview() || query_id != autofill_query_id_)
124 return; 128 return;
125 129
126 switch (autofill_action_) { 130 switch (autofill_action_) {
127 case AUTOFILL_FILL: 131 case AUTOFILL_FILL:
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 web_form, FormManager::REQUIRE_NONE, false, &form)) { 235 web_form, FormManager::REQUIRE_NONE, false, &form)) {
232 forms.push_back(form); 236 forms.push_back(form);
233 } 237 }
234 } 238 }
235 239
236 if (!forms.empty()) { 240 if (!forms.empty()) {
237 render_view_->Send(new ViewHostMsg_FormsSeen(render_view_->routing_id(), 241 render_view_->Send(new ViewHostMsg_FormsSeen(render_view_->routing_id(),
238 forms)); 242 forms));
239 } 243 }
240 } 244 }
OLDNEW
« no previous file with comments | « chrome/renderer/autofill_helper.h ('k') | chrome/renderer/render_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698