Please sign in to comment.
Introduce a workaround for sandboxed applications.
In short, Mozc cannot establish IPC connections from sandboxed applications until mozc_server is launched from any other non-sandboxed applications because: 1. Mozc client cannot launch mozc_server from sandboxed applications. 2. mozc::client::Client does give up further connection when it fails to launch mozc_server. 3. Mozc client cannot directly read the config file from sandboxed applications. Hence it asks mozc_server to send back the current config data. If the client cannot establish connection to mozc_server, mozc client assumes that no short-cut key is assigned to enable IME. To make matters worse, on Windows 10 the search box on Windows 10 is implemented by SearchUI.exe, which is a sandboxed application but is launched at an early starge of the log-in process. Because of that, Mozc client that was loaded into SearchUI.exe will end up with "give-up" mode before mozc_server is launched from Mozc client running in other non-sandboxed applications. Unfortunately this is a kind of design issue of Mozc IPC implementation. In particular, fixing the 1st limitation in the above list requires non-trivial redesign. To mitigate the problem in SearchUI.exe, we slightly modify the 2nd limitation in the above list. With this CL, if Mozc client is running in a sandboxed application, we call mozc::client::Client::Reset() every time when the UI thread gains focus. Hence there is still a chance that user cannot use Mozc in SearchUI.exe just after logging in, but it is supposed to not be persistent anymore. Closes #351. BUG=#351 TEST=manually done REF_BUG=24793812 REF_CL=105726484
- Loading branch information...
Showing with 119 additions and 74 deletions.
- +24 −0 src/base/win_util.cc
- +3 −0 src/base/win_util.h
- +1 −1 src/mozc_version_template.txt
- +42 −51 src/win32/base/config_snapshot.cc
- +1 −1 src/win32/base/config_snapshot.h
- +2 −1 src/win32/base/input_state.cc
- +1 −0 src/win32/base/input_state.h
- +10 −8 src/win32/ime/ime_private_context.cc
- +23 −12 src/win32/tip/tip_private_context.cc
- +1 −0 src/win32/tip/tip_private_context.h
- +11 −0 src/win32/tip/tip_text_service.cc