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

Reply via email to