Chromium Code Reviews| Index: content/renderer/render_widget.cc |
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
| index 1d4293daa3c4da334bfc72bc3ed21a1ea4e676f2..fb0fc2d0926fa5f89c40765f40b5894c0f53f228 100644 |
| --- a/content/renderer/render_widget.cc |
| +++ b/content/renderer/render_widget.cc |
| @@ -1890,13 +1890,28 @@ void RenderWidget::UpdateTextInputState(ShowIme show_ime, |
| TRACE_EVENT0("renderer", "RenderWidget::UpdateTextInputState"); |
| if (handling_ime_event_) |
| return; |
| - ui::TextInputType new_type = GetTextInputType(); |
| - if (IsDateTimeInput(new_type)) |
| - return; // Not considered as a text input field in WebKit/Chromium. |
| +#if defined(OS_ANDROID) |
|
aelias_OOO_until_Jul13
2015/10/15 19:58:40
I don't think we should make this kind of change b
Changwan Ryu
2015/10/16 02:10:16
Done.
|
| + // We could be called in the middle of focus change, or in some other |
| + // intermediary state. |
| + base::ThreadTaskRunnerHandle::Get()->PostTask( |
| + FROM_HERE, base::Bind(&RenderWidget::UpdateTextInputStateInternal, this, |
| + show_ime, change_source)); |
| +#else |
| + UpdateTextInputStateInternal(show_ime, change_source); |
| +#endif // defined(OS_ANDROID) |
| +} |
| + |
| +void RenderWidget::UpdateTextInputStateInternal(ShowIme show_ime, |
| + ChangeSource change_source) { |
| blink::WebTextInputInfo new_info; |
| if (webwidget_) |
| new_info = webwidget_->textInputInfo(); |
| + |
| + ui::TextInputType new_type = WebKitToUiTextInputType(new_info.type); |
| + if (IsDateTimeInput(new_type)) |
| + return; // Not considered as a text input field in WebKit/Chromium. |
| + |
| const ui::TextInputMode new_mode = ConvertInputMode(new_info.inputMode); |
| bool new_can_compose_inline = CanComposeInline(); |