diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 23:29:14 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-12 23:29:14 +0000 |
commit | 109293eadbb16a85c83e34f25d8d664b2604412e (patch) | |
tree | 0366a5bafe83bdb4067625471b37e95dac07e91c /chrome/renderer/DEPS | |
parent | db567f2bfd128fad15e389356dd99eebda704823 (diff) | |
download | chromium_src-109293eadbb16a85c83e34f25d8d664b2604412e.zip chromium_src-109293eadbb16a85c83e34f25d8d664b2604412e.tar.gz chromium_src-109293eadbb16a85c83e34f25d8d664b2604412e.tar.bz2 |
Mac: Let chrome coexist with the Chinese Handwriting IME.
The renderer sandbox breaks the Chinese Handwriting shortcut while Chrome
is running, even when Chrome is not active: In a nutshell, Carbon tries to load
the IME in every process, and if that fails, it uninstalls the toggle shorcut. It
fails in the renderer process due to the sandbox. See the bug for details.
Prewarming (patch set 1) doesn't work because that opens up clipboard
access to the renderer – the IME doesn't load correctly if it doesn't have
clipboard access.
dyld __interpose based interposing (patch set 2) doesn't work because
TISCreateInputSourceList and its broken caller are in the same
framework (HIToolbox).
Hence, use binary rewriting to return an arbitrary array with size > 0 to make
HIToolbox believe that the IME loads correctly, so that it doesn't uninstall the
global handwriting keyboard shortcut.
BUG=31225
TEST=Enable Chinese in the input menu. Make sure Chrome's not running.
Note that ctrl-shift-space opens and dismisses the Handwriting IME
(you need a multitouch trackpad for that). Open Chrome, note that the
IME still works.
(If you run Chrome without this patch, the IME will be broken until you do
ps aux | grep Chinese
and then
kill $CHINESE_HANDWRITING_PID
and then toggle the IME once through the Menu Extra menu.)
It is a good idea to have a Terminal open during testing, because killing
the task is the only way to dismiss the IME with the keyboard without this
CL.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=81308
Review URL: http://codereview.chromium.org/6801056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81332 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/DEPS')
-rw-r--r-- | chrome/renderer/DEPS | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS index 3025ecf..f928926 100644 --- a/chrome/renderer/DEPS +++ b/chrome/renderer/DEPS @@ -18,6 +18,7 @@ include_rules = [ "+webkit/plugins", "+v8/include", "+third_party/cld/encodings/compact_lang_det/win", + "+third_party/mach_override", "+third_party/npapi/bindings", "+third_party/sqlite", "+third_party/tcmalloc", |