Azookey Desktopを使っているとChatGPTやClaudeの初回ページ読み込みでハングする
原因わからなくてClaude CodeでOSレベルで調査させて以下のことがわかった
Chromiumが悪い
根本原因: Chrome on macOS における firstRectForCharacterRange: の同期 IPC deadlock
試しに標準IMEにしたら症状が出なくなったmtane0412.icon
詳細メカニズム
claude.ai / chatgpt.com のような大規模 JS バンドルをもつサイトを Chrome で開くと:
1. Renderer が 6+ 秒の JS コンパイルを実行(V8 でメインスレッドがブロック)
2. ページが入力欄をオートフォーカス(element.focus() をページ初期化時に呼ぶ)
3. Chrome が NSTextInputContext.activate() を呼び出し、アクティブな IME(azooKey 等)とセッションを確立しようとする
4. macOS HIToolbox が同期 XPC で IME プロセスに通知(IMKInputSessionSetProperty)
5. IME が Chrome に折り返しキャレット位置を問い合わせ(firstRectForCharacterRange:)
6. Chrome の実装が Renderer へ同期 IPC を発行し pthread_cond_wait で返答を待つ
7. Renderer は JS コンパイル中でキュー処理不可 → IPC 永久未応答
8. CrBrowserMain が psynch_cvwait でブロック(6 秒以上)
9. azooKey も連鎖してブロック → CursorUIViewService も応答停止
証拠(spindump / sample 2026-04-18 取得)
code:_
sample_browser.txt の CrBrowserMain スタック末端:
_pthread_cond_wait → __psynch_cvwait
spindump_all.txt:
(blocked by turnstile waiting for
Google Chrome Helper (Renderer) 9645 thread 0x1dbc457)
影響範囲
Chrome / Chromium 系(同一実装のため全バージョン)
日本語・中国語・韓国語等の IME ユーザー(IMK XPC チェーンが存在する場合のみ)
大規模 JS バンドルのサイト(V8 コンパイルが数秒に及ぶ場合のみ)
入力欄をオートフォーカスするページ(claude.ai, chatgpt.com 等)
Safari は WebKit の firstRectForCharacterRange: 実装が異なるため発生しない。
回避策
回避策 1:ページ読み込み中は入力ソースを英数(ABC)に切り替える【最も効果的】
azooKey 等の IME が動作していない状態では IMK XPC チェーンが始まらない。
1. Claude.ai / ChatGPT のタブを開く直前に Ctrl + Space 等で英数入力に切り替える
2. タブを開く(フリーズなし)
3. ページが完全に表示されたら日本語 IME に戻す
検証方法: 英数状態で claude.ai を開いてフリーズしなければ確定。
回避策 2:IME の設定を変更する
azooKey の設定で、未フォーカス時またはページロード中の attributesForCharacterIndex: への応答をスキップするオプションがあれば有効。ただし IME 側の機能次第。
回避策 3:Chrome フラグで IME 統合を変更する(暫定)
code:bash
# IME 関連のフラグを無効化して Chrome を起動
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--disable-features=ImeInputContextViewEnabled \
https://claude.ai
※ フラグ名は Chrome バージョンによって異なる。効果は未確認。
回避策 4:Safari を使用する
根本原因が Chrome 特有の実装のため、Safari では発生しない。
当面の暫定回避策(従来)
サイトデータを削除するとしばらく改善するが、その理由も判明した:
データ削除後はキャッシュが空のため JS コンパイル後のハイドレーション処理が減り、オートフォーカスのタイミングが変わる可能性がある
根本的な解決策ではなく、使い続けると再発する
issue立てた
https://issues.chromium.org/issues/503787240