Title: [152740] trunk/Source/WebKit2
- Revision
- 152740
- Author
- [email protected]
- Date
- 2013-07-16 14:14:58 -0700 (Tue, 16 Jul 2013)
Log Message
REGRESSION (r150291): Chinese predictive input pop-up disappears on twitter.com
https://bugs.webkit.org/show_bug.cgi?id=118739
<rdar://problem/14300350>
Reviewed by Daniel Bates.
EditorState tracking on UI side is very fragile. This is a targeted fix just for
this specific scenario.
The issue was that we had a stale m_temporarilyClosedComposition flag, which was
making UI process believe that a composition was closed from WebProcess side,
and notify input method about that. It shouldn't have been a problem, because there
is no composition at this point indeed, but this extra call is a problem for
predictive input, which works in a somewhat unconventional way (<rdar://problem/14458297>).
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::insertText): Reset m_temporarilyClosedComposition flag when
getting new EditorState in response to performing this action. There is certainly
no composition after insertText, and all interested parties are on the same page
already.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (152739 => 152740)
--- trunk/Source/WebKit2/ChangeLog 2013-07-16 21:02:59 UTC (rev 152739)
+++ trunk/Source/WebKit2/ChangeLog 2013-07-16 21:14:58 UTC (rev 152740)
@@ -1,3 +1,26 @@
+2013-07-16 Alexey Proskuryakov <[email protected]>
+
+ REGRESSION (r150291): Chinese predictive input pop-up disappears on twitter.com
+ https://bugs.webkit.org/show_bug.cgi?id=118739
+ <rdar://problem/14300350>
+
+ Reviewed by Daniel Bates.
+
+ EditorState tracking on UI side is very fragile. This is a targeted fix just for
+ this specific scenario.
+
+ The issue was that we had a stale m_temporarilyClosedComposition flag, which was
+ making UI process believe that a composition was closed from WebProcess side,
+ and notify input method about that. It shouldn't have been a problem, because there
+ is no composition at this point indeed, but this extra call is a problem for
+ predictive input, which works in a somewhat unconventional way (<rdar://problem/14458297>).
+
+ * UIProcess/mac/WebPageProxyMac.mm:
+ (WebKit::WebPageProxy::insertText): Reset m_temporarilyClosedComposition flag when
+ getting new EditorState in response to performing this action. There is certainly
+ no composition after insertText, and all interested parties are on the same page
+ already.
+
2013-07-16 Jessie Berlin <[email protected]>
Fix some NSDictionary misuse pointed out by the clang static analyzer
Modified: trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (152739 => 152740)
--- trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm 2013-07-16 21:02:59 UTC (rev 152739)
+++ trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm 2013-07-16 21:14:58 UTC (rev 152740)
@@ -221,6 +221,8 @@
bool handled = true;
process()->sendSync(Messages::WebPage::InsertText(text, replacementRangeStart, replacementRangeEnd), Messages::WebPage::InsertText::Reply(handled, m_editorState), m_pageID);
+ m_temporarilyClosedComposition = false;
+
return handled;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes