Skip to content

fix(desktop): BrowserWindow 破棄後の IPC 送信で「Object has been destroyed」クラッシュを修正 - #128

Merged
dashi296 merged 3 commits into
mainfrom
fix/desktop-webcontents-destroyed
Jun 9, 2026
Merged

fix(desktop): BrowserWindow 破棄後の IPC 送信で「Object has been destroyed」クラッシュを修正#128
dashi296 merged 3 commits into
mainfrom
fix/desktop-webcontents-destroyed

Conversation

@dashi296

@dashi296 dashi296 commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • シャットダウン中にタイマーが発火して notifySessions が呼ばれると、すでに破棄された BrowserWindowwebContents に IPC 送信してクラッシュしていた問題を修正
  • sendToRenderer ヘルパーを追加し、isDestroyed() チェックを通過した場合のみ送信するように変更
  • 開発ビルドで顕在化しやすいが、本番ビルドのシャットダウン中も同様に発生しうるため共通修正として適用

Closes #127

Test plan

  • 開発ビルドでウィンドウを閉じてもクラッシュしないことを確認
  • セッション一覧の更新が通常時も正常に動作することを確認

🤖 Generated with Claude Code

シャットダウン中にタイマーが発火して notifySessions → onSessionsChange が呼ばれると、
すでに破棄された BrowserWindow の webContents に send しようとしてクラッシュしていた。
sendToRenderer ヘルパーで isDestroyed() チェックを挟むことで回避する。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BrowserWindow が破棄された後も win 変数が null にリセットされないことが
Object has been destroyed クラッシュの根本原因だった。
closed イベント(close を preventDefault しない場合のみ発火)で win = null を
セットすることで、sendToRenderer の isDestroyed() チェックと合わせた二重ガードにする。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): BrowserWindow 破棄後の IPC 送信で「Object has been destroyed」クラッシュ

1 participant