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

Unified Diff: content/renderer/render_view_impl.cc

Issue 18750003: Require ACK for editor-related changes not originating from browser. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 98c2b6928ac1d3531cf872de15dab108a3866f0b..63721dac14a42b40f146def6bc95076099a418e2 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -1710,6 +1710,8 @@ void RenderViewImpl::OnSetName(const std::string& name) {
void RenderViewImpl::OnSetEditableSelectionOffsets(int start, int end) {
base::AutoReset<bool> handling_select_range(&handling_select_range_, true);
+ if (RenderWidget::HasOutstandingImeEventAcknowledgements())
aurimas (slooooooooow) 2013/07/08 16:04:49 Maybe we should create a call shouldProcessImeEven
nyquist 2013/07/09 07:47:36 Done.
+ return;
ImeEventGuard guard(this);
webview()->setEditableSelectionOffsets(start, end);
}
@@ -1719,6 +1721,8 @@ void RenderViewImpl::OnSetCompositionFromExistingText(
const std::vector<WebKit::WebCompositionUnderline>& underlines) {
if (!webview())
return;
+ if (RenderWidget::HasOutstandingImeEventAcknowledgements())
+ return;
ImeEventGuard guard(this);
webview()->setCompositionFromExistingText(start, end, underlines);
}
@@ -1726,6 +1730,8 @@ void RenderViewImpl::OnSetCompositionFromExistingText(
void RenderViewImpl::OnExtendSelectionAndDelete(int before, int after) {
if (!webview())
return;
+ if (RenderWidget::HasOutstandingImeEventAcknowledgements())
+ return;
ImeEventGuard guard(this);
webview()->extendSelectionAndDelete(before, after);
}
@@ -2320,8 +2326,10 @@ void RenderViewImpl::didCancelCompositionOnSelectionChange() {
}
void RenderViewImpl::didChangeSelection(bool is_empty_selection) {
- if (!handling_input_event_ && !handling_select_range_)
+ if (!handling_input_event_ && !handling_select_range_ &&
+ !RenderWidget::has_strict_ime_processing()) {
return;
+ }
if (is_empty_selection)
selection_text_.clear();

Powered by Google App Engine
This is Rietveld 408576698