OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/autofill/content/browser/content_autofill_driver.h" | 5 #include "components/autofill/content/browser/content_autofill_driver.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/threading/sequenced_worker_pool.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 bool ContentAutofillDriver::RendererIsAvailable() { | 76 bool ContentAutofillDriver::RendererIsAvailable() { |
77 return render_frame_host_->GetRenderViewHost() != NULL; | 77 return render_frame_host_->GetRenderViewHost() != NULL; |
78 } | 78 } |
79 | 79 |
80 void ContentAutofillDriver::SendFormDataToRenderer( | 80 void ContentAutofillDriver::SendFormDataToRenderer( |
81 int query_id, | 81 int query_id, |
82 RendererFormDataAction action, | 82 RendererFormDataAction action, |
83 const FormData& data) { | 83 const FormData& data) { |
84 if (!RendererIsAvailable()) | 84 if (!RendererIsAvailable()) |
85 return; | 85 return; |
| 86 |
| 87 ConnectToMojoAutofillAgentIfNeeded(); |
86 switch (action) { | 88 switch (action) { |
87 case FORM_DATA_ACTION_FILL: | 89 case FORM_DATA_ACTION_FILL: |
88 render_frame_host_->Send(new AutofillMsg_FillForm( | 90 mojo_autofill_agent_->FillForm( |
89 render_frame_host_->GetRoutingID(), query_id, data)); | 91 query_id, data, |
| 92 base::Bind(&ContentAutofillDriver::DidFillAutofillFormData, |
| 93 base::Unretained(this))); |
90 break; | 94 break; |
91 case FORM_DATA_ACTION_PREVIEW: | 95 case FORM_DATA_ACTION_PREVIEW: |
92 render_frame_host_->Send(new AutofillMsg_PreviewForm( | 96 render_frame_host_->Send(new AutofillMsg_PreviewForm( |
93 render_frame_host_->GetRoutingID(), query_id, data)); | 97 render_frame_host_->GetRoutingID(), query_id, data)); |
94 break; | 98 break; |
95 } | 99 } |
96 } | 100 } |
97 | 101 |
98 void ContentAutofillDriver::PropagateAutofillPredictions( | 102 void ContentAutofillDriver::PropagateAutofillPredictions( |
99 const std::vector<FormStructure*>& forms) { | 103 const std::vector<FormStructure*>& forms) { |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 AutofillManager::OnFocusNoLongerOnForm) | 202 AutofillManager::OnFocusNoLongerOnForm) |
199 IPC_MESSAGE_FORWARD(AutofillHostMsg_QueryFormFieldAutofill, | 203 IPC_MESSAGE_FORWARD(AutofillHostMsg_QueryFormFieldAutofill, |
200 autofill_manager_.get(), | 204 autofill_manager_.get(), |
201 AutofillManager::OnQueryFormFieldAutofill) | 205 AutofillManager::OnQueryFormFieldAutofill) |
202 IPC_MESSAGE_FORWARD(AutofillHostMsg_DidPreviewAutofillFormData, | 206 IPC_MESSAGE_FORWARD(AutofillHostMsg_DidPreviewAutofillFormData, |
203 autofill_manager_.get(), | 207 autofill_manager_.get(), |
204 AutofillManager::OnDidPreviewAutofillFormData) | 208 AutofillManager::OnDidPreviewAutofillFormData) |
205 IPC_MESSAGE_FORWARD(AutofillHostMsg_PingAck, | 209 IPC_MESSAGE_FORWARD(AutofillHostMsg_PingAck, |
206 &autofill_external_delegate_, | 210 &autofill_external_delegate_, |
207 AutofillExternalDelegate::OnPingAck) | 211 AutofillExternalDelegate::OnPingAck) |
208 IPC_MESSAGE_FORWARD(AutofillHostMsg_DidFillAutofillFormData, | |
209 autofill_manager_.get(), | |
210 AutofillManager::OnDidFillAutofillFormData) | |
211 IPC_MESSAGE_FORWARD(AutofillHostMsg_DidEndTextFieldEditing, | 212 IPC_MESSAGE_FORWARD(AutofillHostMsg_DidEndTextFieldEditing, |
212 autofill_manager_.get(), | 213 autofill_manager_.get(), |
213 AutofillManager::OnDidEndTextFieldEditing) | 214 AutofillManager::OnDidEndTextFieldEditing) |
214 IPC_MESSAGE_FORWARD(AutofillHostMsg_HidePopup, | 215 IPC_MESSAGE_FORWARD(AutofillHostMsg_HidePopup, |
215 autofill_manager_.get(), | 216 autofill_manager_.get(), |
216 AutofillManager::OnHidePopup) | 217 AutofillManager::OnHidePopup) |
217 IPC_MESSAGE_FORWARD(AutofillHostMsg_SetDataList, | 218 IPC_MESSAGE_FORWARD(AutofillHostMsg_SetDataList, |
218 autofill_manager_.get(), | 219 autofill_manager_.get(), |
219 AutofillManager::OnSetDataList) | 220 AutofillManager::OnSetDataList) |
220 IPC_MESSAGE_UNHANDLED(handled = false) | 221 IPC_MESSAGE_UNHANDLED(handled = false) |
(...skipping 12 matching lines...) Expand all Loading... |
233 std::unique_ptr<AutofillManager> manager) { | 234 std::unique_ptr<AutofillManager> manager) { |
234 autofill_manager_ = std::move(manager); | 235 autofill_manager_ = std::move(manager); |
235 autofill_manager_->SetExternalDelegate(&autofill_external_delegate_); | 236 autofill_manager_->SetExternalDelegate(&autofill_external_delegate_); |
236 } | 237 } |
237 | 238 |
238 void ContentAutofillDriver::NotifyFirstUserGestureObservedInTab() { | 239 void ContentAutofillDriver::NotifyFirstUserGestureObservedInTab() { |
239 ConnectToMojoAutofillAgentIfNeeded(); | 240 ConnectToMojoAutofillAgentIfNeeded(); |
240 mojo_autofill_agent_->FirstUserGestureObservedInTab(); | 241 mojo_autofill_agent_->FirstUserGestureObservedInTab(); |
241 } | 242 } |
242 | 243 |
| 244 void ContentAutofillDriver::DidFillAutofillFormData(const FormData& filled, |
| 245 int64_t timestamp) { |
| 246 autofill_manager_->OnDidFillAutofillFormData( |
| 247 filled, base::TimeTicks::FromInternalValue(timestamp)); |
| 248 } |
| 249 |
243 void ContentAutofillDriver::ConnectToMojoAutofillAgentIfNeeded() { | 250 void ContentAutofillDriver::ConnectToMojoAutofillAgentIfNeeded() { |
244 if (mojo_autofill_agent_) | 251 if (mojo_autofill_agent_) |
245 return; | 252 return; |
246 | 253 |
247 render_frame_host_->GetServiceRegistry()->ConnectToRemoteService( | 254 render_frame_host_->GetServiceRegistry()->ConnectToRemoteService( |
248 mojo::GetProxy(&mojo_autofill_agent_)); | 255 mojo::GetProxy(&mojo_autofill_agent_)); |
249 } | 256 } |
250 | 257 |
251 } // namespace autofill | 258 } // namespace autofill |
OLD | NEW |