| Index: chrome/browser/render_view_host.cc
|
| ===================================================================
|
| --- chrome/browser/render_view_host.cc (revision 4621)
|
| +++ chrome/browser/render_view_host.cc (working copy)
|
| @@ -680,6 +680,8 @@
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_ShouldClose_ACK, OnMsgShouldCloseACK);
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_UnloadListenerChanged,
|
| OnUnloadListenerChanged);
|
| + IPC_MESSAGE_HANDLER(ViewHostMsg_QueryFormFieldAutofill,
|
| + OnQueryFormFieldAutofill)
|
| // Have the super handle all other messages.
|
| IPC_MESSAGE_UNHANDLED(RenderWidgetHost::OnMessageReceived(msg))
|
| IPC_END_MESSAGE_MAP_EX()
|
| @@ -709,10 +711,11 @@
|
| view->CreateNewWindow(route_id, modal_dialog_event);
|
| }
|
|
|
| -void RenderViewHost::OnMsgCreateWidget(int route_id) {
|
| +void RenderViewHost::OnMsgCreateWidget(int route_id,
|
| + bool focus_on_show) {
|
| RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
|
| if (view)
|
| - view->CreateNewWidget(route_id);
|
| + view->CreateNewWidget(route_id, focus_on_show);
|
| }
|
|
|
| void RenderViewHost::OnMsgShowView(int route_id,
|
| @@ -1203,6 +1206,43 @@
|
| has_unload_listener_ = has_listener;
|
| }
|
|
|
| +void RenderViewHost::OnQueryFormFieldAutofill(const std::wstring& field_name,
|
| + const std::wstring& user_text,
|
| + int64 node_id,
|
| + int request_id) {
|
| + // TODO(jcampan): this is where the suggestions should be queried from the
|
| + // database. The sample code commented below is left here in the meantime for
|
| + // testing purpose.
|
| +#ifndef TEST_AUTOFILL
|
| + static std::vector<std::wstring>* suggestions = NULL;
|
| + if (!suggestions) {
|
| + suggestions = new std::vector<std::wstring>();
|
| + suggestions->push_back(L"Alice");
|
| + suggestions->push_back(L"Jay");
|
| + suggestions->push_back(L"Jason");
|
| + suggestions->push_back(L"Jasmine");
|
| + suggestions->push_back(L"Jamel");
|
| + suggestions->push_back(L"Jamelo");
|
| + suggestions->push_back(L"Volvo");
|
| + suggestions->push_back(L"Volswagen");
|
| + }
|
| +
|
| +
|
| + std::vector<std::wstring> result;
|
| + for (std::vector<std::wstring>::iterator iter = suggestions->begin();
|
| + iter != suggestions->end(); ++iter) {
|
| + if (StartsWith(*iter, user_text, false))
|
| + result.push_back(*iter);
|
| + }
|
| + Send(new ViewMsg_AutofillSuggestions(routing_id_,
|
| + node_id, request_id, result, 0));
|
| +#else
|
| + Send(new ViewMsg_AutofillSuggestions(routing_id_,
|
| + node_id, request_id,
|
| + std::vector<std::wstring>(), 0));
|
| +#endif
|
| +}
|
| +
|
| void RenderViewHost::NotifyRendererUnresponsive() {
|
| if (is_waiting_for_unload_ack_ &&
|
| !Singleton<CrossSiteRequestManager>()->HasPendingCrossSiteRequest(
|
|
|