Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_base.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc |
| index 24129edc19f8293342b6b580c309a230d6b7d9ee..094546197ad09e99412d1b45ef52746a12731b08 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_base.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_base.cc |
| @@ -15,7 +15,9 @@ |
| #include "content/browser/renderer_host/render_widget_host_view_base_observer.h" |
| #include "content/browser/renderer_host/text_input_manager.h" |
| #include "content/common/content_switches_internal.h" |
| +#include "content/common/view_messages.h" |
| #include "content/public/browser/render_widget_host_view_frame_subscriber.h" |
| +#include "content/public/common/form_field_data.h" |
| #include "ui/display/display.h" |
| #include "ui/display/screen.h" |
| #include "ui/gfx/geometry/point_conversions.h" |
| @@ -29,6 +31,8 @@ namespace { |
| // How many microseconds apart input events should be flushed. |
| const int kFlushInputRateInUs = 16666; |
| +// For tracking requests for form field data. |
| +int next_request_id_ = 0; |
| } |
| RenderWidgetHostViewBase::RenderWidgetHostViewBase() |
| @@ -157,6 +161,28 @@ ui::TextInputClient* RenderWidgetHostViewBase::GetTextInputClient() { |
| return NULL; |
| } |
| +void RenderWidgetHostViewBase::OnFocusedFormFieldDataReply( |
| + int request_id, |
| + const FormFieldData& field_data) { |
| + DCHECK(extract_form_field_data_callbacks_.find(request_id) != |
| + extract_form_field_data_callbacks_.end()); |
| + extract_form_field_data_callbacks_[request_id].Run(field_data); |
|
David Trainor- moved to gerrit
2016/11/03 04:25:49
What if we have callbacks when the RWHV dies? Sho
|
| + extract_form_field_data_callbacks_.erase(request_id); |
| +} |
| + |
| +void RenderWidgetHostViewBase::GetFocusedFormFieldData( |
| + ExtractFormFieldDataCallback& reply) { |
| + if (!GetRenderWidgetHost()) { |
| + reply.Run(FormFieldData()); |
| + return; |
| + } |
| + |
| + int request_id = ++next_request_id_; |
| + extract_form_field_data_callbacks_[request_id] = reply; |
| + GetRenderWidgetHost()->Send(new ViewMsg_GetFocusedFormFieldData( |
| + GetRenderWidgetHost()->GetRoutingID(), request_id)); |
| +} |
| + |
| bool RenderWidgetHostViewBase::IsShowingContextMenu() const { |
| return showing_context_menu_; |
| } |