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(); |