Electron v14 のリリースが 8/31 に迫っています。
2年ぐらい前から12週ごとのリリースに移行しており、機能が deplicated になってから remove されるまでの期間も短くなっています。
起動時に webPreferences で指定するオプションのデフォルト値もどんどんセキュア側に倒されていきます。
Electron 自体が Chrome のリリースに追従しているのでいたしかたないのだろうとは思います。
そして v14 ではとうとう remote module が削除されます。remote は renderer process から main process のオブジェクトをゴニョゴニョすることができる便利機能で Electron 関連の NPM ライブラリでもけっこう使われています。パフォーマンスやセキュリティの観点から非推奨となっていました。
simple-minds-think-alike.hatenablog.com
今後は、IPC 通信への移行が推奨されています。ライブラリ含めてマイグレーションするのはかなり大変だと推察されます。当面、Electron のバージョンを固定せざるを得ないアプリも出てくるのではないでしょうか。
Electron v14.0.0-beta.12 で野良 Scrapbox アプリを起動するとやはり Context menu が出なかったりバージョンダイアログがちゃんと表示されなかったりします。
Context menu は electron-context-menu の古いバージョンを使ってました。
最新版では remote module への依存が排除されており、main process でしか動かないようになっています。それはいいのですが、野良 Scrapbox アプリでは WebView をタブに埋め込んでいるため、WebContents に対して Context menu を生成してもらいたいのですが、できなかったので、PR を送ってマージしてもらいました。
これで renderer process でやっていた context menu 構築を main process に持って行くことができました。
バージョンダイアログは about-window というパッケージを使ってました。
こちらはまだ対応されていないため、ダイアログを自作しました。
あとは、enableRemoteModule オプションを無効化
remove enableRemoteModule option from webPreferences · kondoumh/sbe@9de8086 · GitHub
以上で、v14 が出ても大丈夫になりました。