メインコンテンツへ飛ぶ

"Release" タグの記事が 1 件の投稿 件あります

新しい Electron リリースについてのブログ記事

全てのタグを表示

Electron 24.0.0

· 読むのにかかる時間 1 分

Electron 24.0.0 がリリースされました! これには Chromium 112.0.5615.49、V8 11.2、Node.js 18.14.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 24.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更​

累積的変更​

破壊的変更​

API 変更: nativeImage.createThumbnailFromPath(path, size)​

maxSize 引数は size に変更されました。これに渡されたサイズがサムネイルの作成サイズになります。 以前は、Windows は maxSize より小さいときでは画像を拡大せず、macOS は常にサイズを maxSize にしていました。 この挙動がプラットフォーム間で同じなります。

// 128x128 の画像。
const imagePath = path.join('path', 'to', 'capybara.png');

// 小さい画像を拡大します。
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// 大きい画像を縮小します。
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

新機能​

  • cookies.get() で HttpOnly な Cookie をフィルターできる機能を追加しました。 #37365
  • logUsage を shell.openExternal() のオプションに追加しました。これにより、Windows で SEE_MASK_FLAG_LOG_USAGE フラグを ShellExecuteEx に渡せます。 SEE_MASK_FLAG_LOG_USAGE フラグは、頻繁に使用されるプログラムやその他の動作をトラッキングできる形でユーザーが起動し始めたことを示します。 #37291
  • types を webRequest フィルターに追加し、リッスンするリクエストをフィルターする機能を追加しました。#37427
  • 新しく devtools-open-url イベントを追加し、webContents で開発者が新しいウインドウを開けるようになりました。 #36774
  • webContents.print() にいくつかの標準ページサイズのオプションを追加しました。 #37265
  • enableLocalEcho フラグをセッションハンドラー ses.setDisplayMediaRequestHandler() のコールバックに追加しました。これは audio が WebFrameMain の場合に、リモートのオーディオ入力をローカル出力ストリームにエコーできます。 #37528
  • アプリケーション固有のユーザー名を inAppPurchase.purchaseProduct() に渡せるようになりました。 #35902
  • window.invalidateShadow() が公開され、これは macOS での残留する視覚効果を消去できます。 #32452
  • プログラム全体の最適化が、Electron の Node のヘッダー構成ファイルにて既定で有効になりました。これにより、コンパイラは (コンパイルの) モジュールベースではなくプログラム内のすべてのモジュールからの情報を使用して最適化を実行できます。 #36937
  • SystemPreferences::CanPromptTouchID (macOS) が Apple Watch をサポートするようになりました。 #36935

21.x.y サポートの終了​

Electron 21.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

さらば、Windows 7/8/8.1 で述べた通り、Electron 22 (Chromium 108) の EOL 予定日は 2023 年 5 月 30 日から 2023 年 10 月 10 日へと延長されました。 Electron チームは、2023 年 10 月 10 日までこのプログラムの一部であるセキュリティ修正の Electron 22 へのバックポートを継続する予定です。

E24 (Apr'23)E25 (May'23)E26 (Aug'23)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y
--22.x.y22.x.y

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 23.0.0

· 読むのにかかる時間 1 分

Electron 23.0.0 がリリースされました! これには Chromium 110、V8 11.0、Node.js 18.12.1 へのアップグレードが含まれています。 さらに、Windows 7/8/8.1 のサポートは廃止されました。 詳しくは以下をご覧ください!


Electron チームは、Electron 23.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更​

累積的変更​

新機能​

  • label プロパティを Display オブジェクトに追加しました。 #36933
  • ユーザーのシステム言語を返す app.getPreferredSystemLanguages() API を追加しました。 #36035
  • WebUSB API のサポートを追加しました。 #36289
  • SerialPort.forget() のサポートを追加しました。これは、特定のオリジンが拒否されたときに Session オブジェクトで発生する新規イベント serial-port-revoked の利用と同様です。 #35310
  • 開発者が macOS での Mission Control をオプトアウトできるように、新しく win.setHiddenInMissionControl API を追加しました。 #36092

Windows 7/8/8.1 のサポートの削除​

Electron 23 は Windows 7/8/8.1 に対応しなくなります。 Electron は予定されている Chromium の非推奨ポリシーに従っており、そちらは Chromium 109 におけるWindows 7/8/8.1、および Windows Server 2012 と 2012 R2 のサポートを非推奨 (詳細はこちら) としています。

API の破壊的変更​

以下は、Electron 23 での破壊的変更点です。 これらの変更と今後の変更については、破壊的変更の計画 のページで詳しく説明されています。

削除: BrowserWindow の scroll-touch-* イベント​

非推奨となっていた BrowserWindow の scroll-touch-begin、scroll-touch-end 及び scroll-touch-edge のイベントは削除されました。 代わりに、新しく利用可能となった WebContents の input-event イベント を使用してください。

// Electron 23.0 で削除
-win.on('scroll-touch-begin', scrollTouchBegin)
-win.on('scroll-touch-edge', scrollTouchEdge)
-win.on('scroll-touch-end', scrollTouchEnd)

// こちらに置換
+win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') +{
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+})

20.x.y サポートの終了​

Electron 20.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E22 (Nov'22)E23 (Feb'23)E24 (Apr'23)E25 (May'23)E26 (Aug'23)
22.x.y23.x.y24.x.y25.x.y26.x.y
21.x.y22.x.y23.x.y24.x.y25.x.y
20.x.y21.x.y22.x.y23.x.y24.x.y

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 22.0.0

· 読むのにかかる時間 1 分

Electron 22.0.0 がリリースされました! これには新しいユーティリティプロセス API、 Windows 7/8/8.1 サポートの更新と、Chromium 108、V8 10.8、Node.js 16.17.1 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 22.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更​

累積的変更​

注目の機能​

UtilityProcess API #36089​

新しい UtilityProcess メインプロセスモジュールは、Node.js のみと統合した軽量の Chromium 子プロセスを作成できる一方、MessageChannel でサンドボックス化したレンダラとの通信もできます。 API は Node.js の child_process.fork をベースに設計されており、移行が容易です。主な違いはそのエントリポイントの modulePath がアプリケーションのパッケージ内でなければならず、信頼できるスクリプトのみがロードできます。 さらに、このモジュールはデフォルトでレンダラーとの通信チャンネルを確立しないので、メインプロセスがアプリケーションで唯一信頼できるプロセスであるという契約を維持します。

新しい UtilityProcess API については、こちらのドキュメント で詳しく説明しています。

Windows 7/8/8.1 サポートの更新​

info

2023/02/16: Windows Server 2012 サポートの更新情報

先月、Google は Chrome 109 が Windows Server 2012 および Windows Server 2012 R2 に対して 2023 年 10 月 10 日まで致命的なセキュリティ修正を受け続ける ことを発表しました。 これに伴い、Electron 22 (Chromium 108) の EOL の予定日を 2023 年 5 月 30 日から 2023 年 10 月 10 日に延長します。 Electron チームは、2023 年 10 月 10 日までこのプログラムの一部であるセキュリティ修正の Electron 22 へのバックポートを継続する予定です。

なお、Windows 7/8/8.1 についてはさらなるセキュリティ修正を行いません。 Electron 23 (Chromium 110) も、既報の通り Windows 10 以上でのみ機能します。

Electron 22 は、Windows 7/8/8.1 をサポートする最後の Electron メジャーバージョンとなります。 Electron は Chromium の非推奨の方針の予定に従っており、Chromium 109 での Windows 7/8/8.1 サポートが非推奨になります (詳細はこちら)。

Electron 23 以降のメジャーリリースでは、Windows 7/8/8.1 には対応しません。

さらなる注目の変更​

  • Linux と Windows で Web Bluetooth の PIN ペアリングに対応しました。 #35416
  • 新しい Fuse として LoadBrowserProcessSpecificV8Snapshot を追加し、メイン/ブラウザプロセスで browser_v8_context_snapshot.bin ファイルからその v8 スナップショットを読み込めるようにしました。 それ以外のプロセスでは、現在使っているのと同じパスを使用します。 #35266
  • そのウインドウを開いたウインドウにアクセスするための WebContents.opener と、WebFrameMain インスタンスに対応する WebContents を取得するための webContents.fromFrame(frame) を追加しました。 #35140
  • 新しいセッションハンドラ ses.setDisplayMediaRequestHandler による navigator.mediaDevices.getDisplayMedia のサポートを追加しました。 #30702

API の破壊的変更​

以下は、Electron 22 での破壊的変更点です。 これらの変更と今後の変更については、破壊的変更の計画 のページで詳しく説明されています。

非推奨: webContents.incrementCapturerCount(stayHidden, stayAwake)​

webContents.incrementCapturerCount(stayHidden, stayAwake) は非推奨になります。 ページのキャプチャ完了時に webContents.capturePage で自動的に処理されるようになりました。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

非推奨: webContents.decrementCapturerCount(stayHidden, stayAwake)​

webContents.decrementCapturerCount(stayHidden, stayAwake) は非推奨になります。 ページのキャプチャ完了時に webContents.capturePage で自動的に処理されるようになりました。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

削除: WebContents の new-window イベント​

WebContents の new-window イベントは削除されました。 これは webContents.setWindowOpenHandler() に置き換えられます。

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

非推奨: BrowserWindow の scroll-touch-* イベント​

BrowserWindow の scroll-touch-begin、scroll-touch-end 及び scroll-touch-edge のイベントは非推奨になりました。 代わりに、新しく利用可能となった WebContents の input-event イベント を使用してください。

// 非推奨
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// こちらに置換
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

19.x.y サポートの終了​

Electron 19.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E19 (May'22)E20 (Aug'22)E21 (Sep'22)E22 (Nov'22)E23 (Jan'23)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

次回予告​

Electron プロジェクトは 2022 年 12 月の 1 ヶ月間休止し、2023 年 1 月から復帰します。 詳細については、12 月の休止のブログ記事 をご覧ください。

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 21.0.0

· 読むのにかかる時間 1 分

Electron 21.0.0 がリリースされました! これには Chromium 106、V8 10.6、Node.js 16.16.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 21.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細は続きをご覧ください。

フィードバックがあれば、Twitterで共有するか、コミュニティ Discordに参加してください! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更​

累積的変更​

新機能​

  • webFrameMain.origin を追加しました。 #35534
  • 新しい WebContents.ipc と WebFrameMain.ipc API を追加しました。 #35231
  • パネルのような動作のサポートを追加しました。 フルスクリーンにしたアプリの上にウインドウを浮かべることができます。 #34388
  • macOS アプリ向けに APNS からのプッシュ通知サポートを追加しました。 #33574

破壊的な API の変更​

以下は、Electron 21 での破壊的変更点です。

V8 メモリケージの有効化​

Electron 21 では V8 のサンドボックス化ポインタ を有効にします。これは Chrome の Chrome 103 での同様の決定 に従ったものです。 これはネイティブモジュールにいくつかの影響を与えます。 この機能には、パフォーマンスやセキュリティ上の利点がありますが、外部 ("ヒープ外") のメモリを指す ArrayBuffer の使用など、ネイティブモジュールに新しい制限を課すことになります。 詳細は ブログ記事 をご参照ください。 #34724

webContents.printToPDF のリファクタリング​

Chromium のヘッドレス実装に合わせるために webContents.printToPDF をリファクタリングしました。 さらなる情報は #33654 をご参照ください。

これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

18.x.y サポートの終了​

Electron 18.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E18 (Mar'22)E19 (May'22)E20 (Aug'22)E21 (Sep'22)E22 (Dec'22)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 20.0.0

· 読むのにかかる時間 1 分

Electron 20.0.0 がリリースされました! これには Chromium 104、V8 10.4、Node.js 16.15.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 20.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

新機能​

  • Windows に没入型ダークモードを追加しました。 #34549
  • パネルのような動作のサポートを追加しました。 フルスクリーンにしたアプリの上にウインドウを浮かべることができます。 #34665
  • Windows 11 でよりネイティブに見えるように Windows コントロールオーバーレイボタンを更新しました。 #34888
  • nodeIntegration: true や sandbox: false が指定されない限り、デフォルトでレンダラーがサンドボックス化されるようになりました。 #35125
  • nan でネイティブモジュールをビルドする際のセーフガードを追加しました。 #35160

累積的変更​

破壊的な API の変更​

以下は、Electron 20 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

省略値の変更: nodeIntegration: true 指定が無いレンダラーはデフォルトでサンドボックス化されます。​

これまで、プリロードスクリプトを指定したレンダラーはデフォルトでサンドボックス化されていませんでした。 つまり、プリロードスクリプトはデフォルトで Node.js へのアクセス権を持っていたということです。 Electron 20 では、この省略値が変更されました。 Electron 20 以降、レンダラーに nodeIntegration: true または sandbox: false が指定されていない限り、デフォルトでサンドボックス化されます。

プリロードスクリプトが Node に依存していない場合、対応は不要です。 プリロードスクリプトが Node に依存している場合は、リファクタしてレンダラーから Node の使用部分を削除するか、そういったレンダラーでは sandbox: false を明示的に指定してください。

修正: nan ネイティブモジュールでの自発的クラッシュ​

Electron 20 では、ネイティブモジュールに関する 2 つの項目を変更しました。

  1. V8 ヘッダはデフォルトで c++17 を使用するようになりました。 このフラグは electron-rebuild で付与されます。
  2. nan に依存しているネイティブモジュールでインクルードファイルが見つからないと、自発的にクラッシュする問題を修正しました。

最大限安定させるために、ネイティブモジュール、特に nan に依存するモジュールをリビルドする際には、node-gyp>=8.4.0 と electron-rebuild>=3.2.9 の使用を推奨します。 詳細は electron の #35160 と node-gyp の #2497 を参照してください。

削除: Linux 上の .skipTaskbar​

X11 では、 skipTaskbar は _NET_WM_STATE_SKIP_TASKBAR メッセージを X11 ウインドウマネージャーに送信します。 Wayland には同等のものがなく、また既知の回避策にも許容できないトレードオフがあるため (例えば GNOME の Window.is_skip_taskbar はアンセーフモードが必要)、Electron はこの機能を Linux でサポートできません。

17.x.y サポートの終了​

Electron 17.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E18 (Mar'22)E19 (May'22)E20 (Aug'22)E21 (Sep'22)E22 (Dec'22)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 19.0.0

· 読むのにかかる時間 1 分

Electron 19.0.0 がリリースされました! これには Chromium 102、V8 10.2、Node.js 16.14.2 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 19.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

Electron リリースケイデンスの変更​

このプロジェクトは、以前の方針である最新の 3 つのメジャーバージョンのサポートに戻りつつあります。 Electron のバージョン管理およびサポートについてのより詳細な情報は、バージョン管理のドキュメント をご覧ください。 Electron 15 から始まった新しいリリースサイクルにユーザーが適応できるよう、一時的に 4 つのメジャーバージョンをサポートしていました。 詳細はこちら でご覧いただけます。

累積的変更​

破壊的な API の変更​

以下は、Electron 19 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

Linux での非対応化: .skipTaskbar​

Linux では BrowserWindow コンストラクタのオプション skipTaskbar がサポートされなくなりました。 #33226 での変更

WebPreferences.preloadURL の削除​

準ドキュメント化されていた preloadURL プロパティは、WebPreferences から削除されました。 #33228. WebPreferences.preload を代わりに使用してください。

15.x.y と 16.x.y のサポート終了​

Electron 14.x.y と 15.x.y はどちらも既にサポート終了しています。 これにより、Electron は最新の 3 つのメジャーバージョンをサポートする 従来の方針 に 戻ります。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 18.0.0

· 読むのにかかる時間 1 分

Electron 18.0.0 がリリースされました! これには Chromium 100、V8 10.0、Node.js 16.13.2 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 18.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

Electron リリースケイデンスの変更​

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更​

注目の機能​

  • コードキャッシュのディレクトリを設定する ses.setCodeCachePath() API を追加しました。 #33286
  • 古い BrowserWindowProxy ベースの window.open の実装を削除しました。 さらに webPreferences から nativeWindowOpen オプションを削除しました。 #29405
  • WebContents に 'focus' と 'blur' のイベントを追加しました。 #25873
  • macOS 上に右記の代替メニューロールを追加しました: showSubstitutions、toggleSmartQuotes、toggleSmartDashes、toggleTextReplacement。 #32024
  • app.requestSingleInstanceLock() フローに first-instance-ack イベントが追加されました。これによりユーザーが最初のインスタンスから 2 番目のインスタンスへデータをシームレスに転送できます。 #31460
  • より多くの色形式サポートを setBackgroundColor に追加しました。 #33364

新機能と変更の完全なリストは、18.0.0 リリースノート を参照してください。

破壊的な API の変更​

以下は、Electron 18 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

削除: nativeWindowOpen​

Electron 15 より前の window.open は既定で BrowserWindowProxy を使用していました。 このため、window.open('about:blank') では同期的にスクリプトで操作可能な子ウィンドウを開くことができないなどといった、非互換性がありました。 Electron 15 から、nativeWindowOpen が既定で有効になりました。

詳細については、Electron の windows.open のドキュメント をご参照ください。 #29405 で削除されました

14.x.y サポート終了​

Electron 14.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 17.0.0

· 読むのにかかる時間 1 分

Electron 17.0.0 がリリースされました! これには Chromium 98、V8 9.8、Node.js 16.13.0 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 17.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

Electron リリースケイデンスの変更​

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更​

注目の機能​

  • webContents.getMediaSourceId() を追加しました。getUserMedia と共に WebContents のストリームを取得できます。 #31204
  • webContents.getPrinters() を非推奨にし、webContents.getPrintersAsync() を導入します。 #31023
  • desktopCapturer.getSources は、メインプロセスでのみ使用できるようになりました。 #30720

新機能と変更の完全なリストは、17.0.0 リリースノート を参照してください。

破壊的変更​

以下は、Electron 17 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

レンダラー内での desktopCapturer.getSources​

desktopCapturer.getSources API は、メインプロセスでのみ使用できるようになりました。 この変更は Electron アプリのデフォルトのセキュリティを改善するためのものです。

API の変更​

Electron 17 では API の変更はありませんでした。

削除/非推奨となった変更​

  • レンダラー内での desktopCapturer.getSources API の使用方法は削除されました。 アプリにおいてこの API を置換する方法については、こちら をご参照ください。

13.x.y サポート終了​

Electron 13.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 16.0.0

· 読むのにかかる時間 1 分

Electron 16.0.0 がリリースされました! これには Chromium 96、V8 9.6、Node.js 16.9.1 へのアップグレードが含まれています。 詳しくは以下をご覧ください!


Electron チームは、Electron 16.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

Electron リリースケイデンスの変更​

Electron 15 にて、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。 2022 年 5 月以降は、最新の 3 つのバージョンのサポートに戻ります。

累積的変更​

注目の機能​

  • WebHID API をサポートするようになりました。 #30213
  • インスタンス間でデータを共有するために、app.requestSingleInstanceLock に data 引数を追加しました。 #30891
  • メディア権限のリクエストハンドラに securityOrigin を渡すようになりました。 #31357
  • commandLine.removeSwitch を追加しました。 #30933

新機能と変更の完全なリストは、16.0.0 リリースノート を参照してください。

破壊的変更​

以下は、Electron 16 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

ネイティブモジュールのビルド​

ネイティブモジュールのビルドに node-gyp を使用している場合、プロジェクトの設定や Electron のバージョンによっては --force-process-config を付けて呼び出す必要があるでしょう。 この変更に関する詳細な情報は、#2497 をご覧ください。

動作変更: crashReporter の実装を Linux の Crashpad に​

Linux における crashReporter API の内部実装が Breakpad から Crashpad に変更され、Windows や Mac と同じになりました。 この結果、子プロセスが自動的に監視されるようになり、Node の子プロセスで process.crashReporter.start を呼び出す必要がなくなりました (これは Crashpad レポーターの 2 つ目のインスタンスを起動してしまうため非推奨です)。

また、Linux でのアノテーションのレポート方法にも小さな変更があります。長い値に対して __1、__2 などを付加したアノテーション間の分割をしなくなり、代わりに (新しい、より長い) アノテーションの値の上限で切り捨てるようになりました。

API の変更​

Electron 16 では API の変更はありませんでした。

削除/非推奨となった変更​

  • レンダラー内での desktopCapturer.getSources API の使用は非推奨となり、削除される予定です。 この変更は Electron アプリのデフォルトのセキュリティを改善します。 アプリにおいてこの API を置換する方法については、こちら をご参照ください。

12.x.y サポート終了​

Electron 12.x.y はプロジェクトの サポートポリシー に則りサポート終了となりました。 開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

Electron 15 にて、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更しています。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では 2 か月ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。

Electron 15.0.0

· 読むのにかかる時間 1 分

Electron 15.0.0 がリリースされました! これには Chromium 94、V8 9.4、Node.js 16.5.0 へのアップグレードが含まれています。 window.open を更新する API の追加、バグ修正、及び一般的な改善を行いました。 詳しくは以下をご覧ください!


Electron チームは、Electron 15.0.0 のリリース発表にワクワクしています! npm install electron@latest から npm でインストールするか、リリースウェブサイト からダウンロードできます。 このリリースの詳細については下に続きます。是非ご意見をお聞かせください!

注目すべき変更​

Electron リリースケイデンスの変更​

Electron 15 から、Electron は 8 週間ごとに新規メジャー安定版をリリースするようになります。 詳細はこちら でご覧いただけます。

また、Electron は 2022 年 5 月まで、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更します。 Electron のバージョン管理の詳細については バージョン管理のドキュメントを参照してください。

累積的変更​

注目の機能​

  • nativeWindowOpen: true は実験的でなくなり、既定値になります。
  • safeStorage 文字列暗号化APIを追加しました。 #30430
  • ページにフレームが作成されたときに発生する「フレーム作成」イベントを WebContents に追加しました。 #30801
  • BrowserWindow の will-resize イベントにサイズ変更した edge の情報を追加しました。 #29199

新機能と変更の完全なリストは、15.0.0 リリースノート を参照してください。

破壊的変更​

以下は、Electron 15 での破壊的変更点です。 これらの変更と将来の変更の詳細については、予定されている破壊的変更 のページを参照してください。

デフォルトの変更: nativeWindowOpen のデフォルトは true になりました。​

Electron 15 より前の window.open は既定で BrowserWindowProxy を使用していました。 このため、window.open('about:blank') では同期的にスクリプトで操作可能な子ウィンドウを開くことができないなどといった、非互換性がありました。 nativeWindowOpen: true は実験的でなくなり、既定値になります。

詳細については Electron での window.open をご参照ください

API の変更​

  • ページにフレームが作成されたときに発生する「フレーム作成」イベントを WebContents に追加しました。 #30801
  • safeStorage 文字列暗号化APIを追加しました。 #30430
  • dialog.showMessageBox に signal オプションを追加しました。 #26102
  • Electron Fuse を追加しました。これは、アプリケーションがロードする app.asar ファイルにコード署名を適用します。 最新の asar モジュール (v3.1.0 またはそれ以上) が必要です。 #30900
  • パッケージ化したアプリで NODE_OPTIONS と --inspect のデバッグ引数を無効にする Fuse を追加しました。 #30420
  • ユーザが割り当てた macOS アクセラレータのオーバーライドを読み取る、MenuItem.userAccelerator プロパティを新しく追加しました。 #26682
  • Apple シリコンの Rosetta や、ARM 向け Windows の WOW 下で動作していることを検出する app.runningUnderARM64Translation プロパティを新たに追加しました。 #29168
  • 画像のアニメーションを制御するために imageAnimationPolicy ウェブ設定を新しく追加しました。 #29095
  • コンテキストブリッジ越しに Blob を送る機能を追加しました。 #29247

削除/非推奨となった変更​

削除または非推奨となった API はありません。

サポートされているバージョン​

Electron 15 からは、2022 年 5 月の Electron 19 までの間だけ、サポートするバージョンを最新の 3 つのバージョンから最新の 4 つのバージョンに変更します。 Electron 19 以降は、最新の 3 つのバージョンのサポートに戻ります。 このバージョンサポートの変更は、新しいケイデンス変更の一環です。 完全な詳細についてはこちらのブログ記事 をご参照ください。

開発者とアプリケーションは新しいバージョンの Electron にアップグレードすることを推奨します。

E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

次回予告​

短期的には、Chromium、Node、V8 といった Electron を構成する主要コンポーネントの開発に遅れないでチームが注力し続けるでしょう。 リリース日について約束しないように注意していますが、予定では約四半期ごとに新しいメジャーバージョンの Electron を、各コンポーネントの新しいバージョンに対してリリースします。

Electron の公開タイムラインはこちら になります。

将来の変更の詳細については、予定されている破壊的変更 のページをご参照ください。