Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1101)

Unified Diff: content/renderer/render_widget.cc

Issue 2681473002: Fix a recent regression in IME inside OOPIFs (Closed)
Patch Set: Resolved Merge Conflict Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/public/test/text_input_test_utils.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_widget.cc
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 5b60ffcca7a62a1e0816ceeef243743d9759d9f6..36baa7d16f680e4c03d1381814a7452e3295e3ae 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -670,7 +670,13 @@ void RenderWidget::SendOrCrash(IPC::Message* message) {
}
bool RenderWidget::ShouldHandleImeEvents() const {
- return GetWebWidget() && GetWebWidget()->isWebFrameWidget() && has_focus_;
+ // TODO(ekaramad): We track page focus in all RenderViews on the page but the
+ // RenderWidgets corresponding to OOPIFs do not get the update. For now, this
+ // method returns true when the RenderWidget is for an OOPIF, i.e., IME events
+ // will be processed regardless of page focus. We should revisit this after
+ // page focus for OOPIFs has been fully resolved (https://crbug.com/689777).
+ return GetWebWidget() && GetWebWidget()->isWebFrameWidget() &&
+ (has_focus_ || for_oopif_);
}
void RenderWidget::SetWindowRectSynchronously(
@@ -1605,7 +1611,7 @@ void RenderWidget::OnImeCommitText(
#endif
ImeEventGuard guard(this);
input_handler_->set_handling_input_event(true);
- if (auto* controller = GetInputMethodController())
+ if (auto* controller = GetInputMethodController()) {
controller->commitText(
WebString::fromUTF16(text),
WebVector<WebCompositionUnderline>(underlines),
@@ -1613,6 +1619,7 @@ void RenderWidget::OnImeCommitText(
? WebRange(replacement_range.start(), replacement_range.length())
: WebRange(),
relative_cursor_pos);
+ }
input_handler_->set_handling_input_event(false);
UpdateCompositionInfo(false /* not an immediate request */);
}
« no previous file with comments | « content/public/test/text_input_test_utils.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698