• Dave Tapuska's avatar
    Resurrect Text Services Framework support on Windows. · e1c1d3de
    Dave Tapuska authored
    The bulk of this change is to revert commit
    0b15dad9. It isn't a direct revert due
    to a number of things.
      - The ScopedComPtr interface that was widely used in the old patch no
        longer exists.
      - A number of interfaces change slightly (ImeTextSpans)
      - unsigned/signed compiler warnings
    
    This code was abandoned a few years ago and removed from the repository
    because it only worked in the Windows 8 Metro Mode of Chrome. Once that
    mode was removed the supporting IME code was removed as well. The code
    in its current form is functional but has issues which will be addressed
    in follow up patches. It is desirable to move to TSF since there are
    additional APIs that work via this API. Like text writing.
    
    Functionality common to both input methods are placed in
    InputMethodWinBase. InputMethodWin will be renamed to InputMethodWinImm32
    in a followup patch.
    
    This feature is currently disabled but can be enabled via
    --enable-features=TSFImeSupport. No functionality changes are expected
    with the Imm32 implementation.
    
    Inputing text using Pinyin seems to work; as well as disabling DLL
    injection (crbug.com/557798) allows the IME to work correctly with TSF.
    
    There is some broken support with this change in that keydown/up messages,
    arrow keys in the omnibox are not delivered. I intend to fix these in
    followup changes being that this change is intended to make a previously
    reverted change available under a command line flag.
    
    BUG=657623
    
    Change-Id: I89eb1a7ba6b9f95525df6fa83be5d923a03323b2
    Reviewed-on: https://chromium-review.googlesource.com/916534
    Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
    Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
    Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
    Reviewed-by: default avatarShu Chen <shuchen@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#541895}
    e1c1d3de
input_method_win_tsf.h 1.94 KB