Changeset 152740 in webkit


Ignore:
Timestamp:
Jul 16, 2013, 2:14:58 PM (12 years ago)
Author:
ap@apple.com
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.
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r152730 r152740  
     12013-07-16  Alexey Proskuryakov  <ap@apple.com>
     2
     3        REGRESSION (r150291): Chinese predictive input pop-up disappears on twitter.com
     4        https://bugs.webkit.org/show_bug.cgi?id=118739
     5        <rdar://problem/14300350>
     6
     7        Reviewed by Daniel Bates.
     8
     9        EditorState tracking on UI side is very fragile. This is a targeted fix just for
     10        this specific scenario.
     11
     12        The issue was that we had a stale m_temporarilyClosedComposition flag, which was
     13        making UI process believe that a composition was closed from WebProcess side,
     14        and notify input method about that. It shouldn't have been a problem, because there
     15        is no composition at this point indeed, but this extra call is a problem for
     16        predictive input, which works in a somewhat unconventional way (<rdar://problem/14458297>).
     17
     18        * UIProcess/mac/WebPageProxyMac.mm:
     19        (WebKit::WebPageProxy::insertText): Reset m_temporarilyClosedComposition flag when
     20        getting new EditorState in response to performing this action. There is certainly
     21        no composition after insertText, and all interested parties are on the same page
     22        already.
     23
    1242013-07-16  Jessie Berlin  <jberlin@apple.com>
    225
  • trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm

    r152328 r152740  
    222222    bool handled = true;
    223223    process()->sendSync(Messages::WebPage::InsertText(text, replacementRangeStart, replacementRangeEnd), Messages::WebPage::InsertText::Reply(handled, m_editorState), m_pageID);
     224    m_temporarilyClosedComposition = false;
     225
    224226    return handled;
    225227}
Note: See TracChangeset for help on using the changeset viewer.