メインコンテンツへ飛ぶ

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

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

全てのタグを表示

Electron 40.0.0

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

Electron 40.0.0 がリリースされました! これには Chromium 144.0.7559.60、V8 14.4、Node 24.11.1 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

Electron 39.0.0

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

Electron 39.0.0 がリリースされました! これには Chromium 142.0.7444.52、V8 14.2、Node 22.20.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

ASAR 整合性が安定版に

長年「実験的」機能だったASAR 整合性は、Electron 39 で安定版になりました。 この機能を有効にすると、パッケージされた app.asar が実行時にビルド時のハッシュに対して検証され、改ざんを検出します。 ハッシュが存在しない場合、またはハッシュが一致しない場合は、アプリが強制終了します。

ASAR 整合性のドキュメント から、この機能がどのように機能するか、アプリケーションにどのように活用するか、Electron Forge や Electron Packager でどのように使用するかといった、詳細な情報をご覧いただけます。

関連して、Electron Packager v19 はデフォルトで ASAR が有効になります。 #1841

Electron 38.0.0

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

Electron 38.0.0 がリリースされました! これには Chromium 140.0.7339.41、V8 14.0、Node 22.16.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

Electron 37.0.0

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

Electron 37.0.0 がリリースされました! これには Chromium 138、V8 13.8、Node 22.16.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

Google Summer of Code の開始

2 人の Google Summer of Code の貢献者がプログラムのコーディング期間を開始しました!

  • @nilayarya は Electron コアで新しい ウィンドウ状態の保存/復元 API を作成しています。 この新しい API は、ウインドウの状態の永続化処理のための組み込みで標準化された方法を提供します。 electron/rfcs#16 で Nilay さんの進行中の RFC を参照してください。
  • @hitarth-gg は、Chrome Manifest V3 API を使用して、長らく休止状態にあった Devtron 拡張機能を最新化することに熱心に取り組んでいます。 このプロジェクトは、開発者が IPC 通信のデバッグ、イベントリスナーの追跡、および Electron アプリケーション内のモジュールの依存関係を視覚化するためのツールを提供します。

GSOC 参加者にとってこの数週間は刺激的な日々でした。今後の更新情報もご期待ください!

注目すべき変更

滑らかな角: ネイティブ CSS のスクワークル

長方形に異なる角のスムージング値 (0%、30%、60%、100%) を適用した画像。60% は macOS のスタイルに一致するというラベル付き

Electron 37 では、カスタムの -electron-corner-smoothing CSS プロパティが導入され、アプリは Apple の macOS デザイン言語に合わせたより滑らかな丸角を作成できるようになりました。 この機能はもともと Electron 36 に搭載されていましたが、もっと注目されるべき機能だと感じました。

角スムージング 100% の例
コード結果
.box {
width: 128px;
height: 128px;
border-radius: 24px;
-electron-corner-smoothing: 100%;
}

長方形から四分円の角を削り出す標準の border-radius プロパティとは異なり、 -electron-corner-smoothing は連続した縁を持つ 四角形 状で曲線をスムーズに遷移させます。

0% から 100% までの値を使用して滑らかさを調整したり、system-ui 値を使用してオペレーティングシステムのスタイルに一致させたりできます (macOS では 60%、それ以外の場合は 0%)。 このデザイン強化は、境界線、アウトライン、影にも適用でき、アプリに絶妙な上品さを加えることができます。

ヒント

Electron のスクワークル実装の詳細については、@clavinRFC 0012 をご参照ください。 この文書ではその動機と技術的な実装について詳しく説明してあります。

初期デザインは Figma の角スムージングの実装からインスピレーションを得ています。 滑らかな角を求める彼らの探求について詳しくは、"スクワークルを必死に求めて" をご覧ください。

Electron 36.0.0

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

Electron 36.0.0 がリリースされました! これには Chromium 136、V8 13.6、Node 22.14.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

作文ツールサポート

Electron 36 では、コンテキストメニューでの作文ツール (スペルと文法)、自動入力、サービスメニュー項目など macOS システムレベルの機能を有効化できます。 これを行うには、WebFrameMain のインスタンスを menu.popup()frame 引数に渡します。

import { BrowserWindow, Menu, WebFrameMain } from 'electron';

const currentWindow = BrowserWindow.getFocusedWindow();
const focusedFrame = currentWindow.webContents.focusedFrame;
const menu = Menu.buildFromTemplate([{ label: 'Copy', role: 'copy' }]);

menu.popup({
window: currentWindow,
frame: focusedFrame,
});

Electron 35.0.0

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

Electron 35.0.0 がリリースされました! これには Chromium 134.0.6998.44、V8 13.5、Node 22.14.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

拡張機能サポートの改善のためのサービスワーカーのプリロードスクリプト

もともと RFC #8@samuelmaddock によって提案されていたもので、Electron 35 にて サービスワーカー にプリロードスクリプトをアタッチする機能を追加します。 Chrome の Manifest V3 拡張機能では多くの機能が 拡張機能のサービスワーカー を通じて提供されるため、この機能は Electron と最新の Chrome 拡張機能との間のサポートに関するギャップを埋めます。

Session のレベルでプログラムでプリロードスクリプトを登録する場合、ses.registerPreloadScript(script) API でそれをサービスワーカーのコンテキストへ指定し適用できるようになりました。

Main Process
// セッションにプリロードレルムスクリプトを追加します。
session.defaultSession.registerPreloadScript({
// スクリプトはサービスワーカーのプリロードレルムでのみ実行されるべきです。
type: 'service-worker',
// スクリプトへの絶対パス。
script: path.join(__dirname, 'extension-sw-preload.js'),
});

さらに、ServiceWorkerMain.ipc のインスタンスを介して、サービスワーカーとそれにアタッチされたプリロードスクリプトの間で IPC が利用できるようになりました。 プリロードスクリプトは引き続き ipcRenderer モジュールでもサービスワーカーと通信できます。 詳細は元の RFC をご参照ください。

この機能の実装前に、以下の前提となる他多くの変更が行われました。

  • #45329 で Session モジュールのプリロード API を再設計し、個々のプリロードスクリプトの登録と解除をサポートするようになりました。
  • #45229 でコンテキストブリッジを介してメイン ワールドで JavaScript を評価するための実験的なスクリプト contextBridge.executeInMainWorld(executionScript) が追加されました。
  • #45341 でメインプロセスでサービスワーカーとやり取りするための ServiceWorkerMain クラスが追加されました。

Electron 34.0.0

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

Electron 34.0.0 がリリースされました! これには Chromium 132.0.6834.83、V8 13.2、Node 20.18.1 へのアップグレードが含まれています。


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

何かフィードバックがあれば、BlueskyMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

HTTP 圧縮における共有辞書管理 API

HTTP 圧縮は、ブラウザがデータを受信する前に、Web サーバーによってデータを圧縮することを可能にします。 最新バージョンの Chromium は Brotli や Zstandard などの新しい圧縮アルゴリウムをサポートしており、テキストファイルに対して gzip などの従来方式よりも優れた性能を発揮します。

カスタム圧縮辞書は Brotli や Zstandard の圧縮効率をさらに向上させます。 詳細は共有辞書についてのChrome for Developers ブログをご覧ください。

@felixrieseberg#44950 に以下の API を追加し、セッションレベルで共有辞書を管理できるようになりました。

  • session.getSharedDictionaryUsageInfo()
  • session.getSharedDictionaryInfo(options)
  • session.clearSharedDictionaryCache()
  • session.clearSharedDictionaryCacheForIsolationKey(options)

応答しないレンダラーのJavaScriptコールスタック

レンダラープロセスが規定の時間以上ハングした場合、Electron の unresponsive イベントが発生します。 @samuelmaddock#44204 で追加した新しい webFrameMain.collectJavaScriptCallStack() API は、関連する WebFrameMain オブジェクト(webContnets.mainFrame)から JavaScript のコールスタックを収集できるようにします。

この API は、JavaScript イベントが長時間実行され、プロセスがハングした場合にフレームが応答しなくなる原因を特定するのに役立ちます。 詳細はクラッシュレポート API の Web 標準への提唱をご覧ください。

Main Process
const { app } = require('electron');

app.commandLine.appendSwitch(
'enable-features',
'DocumentPolicyIncludeJSCallStacksInCrashReports',
);

app.on('web-contents-created', (_, webContents) => {
webContents.on('unresponsive', async () => {
// 応答しないレンダラーの実行を中断し、コールスタックを収集する
const callStack = await webContents.mainFrame.collectJavaScriptCallStack();
console.log('Renderer unresponsive\n', callStack);
});
});

[! 注意] このAPIはヘッダーに 'Document-Policy': 'include-js-call-stacks-in-crash-reports' を追加して、有効化する必要があります。 詳しい情報は #45356 を参照してください。

Electron 33.0.0

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

Electron 33.0.0 がリリースされました! これには Chromium 130.0.6723.44、V8 13.0、Node 20.18.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、TwitterMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

  • PIN が必要な暗号化デバイスのロック解除に役立つハンドラ app.setClientCertRequestPasswordHandler(handler) を追加しました。 #41205
  • 履歴管理を改善するために、2 つの新しい関数を追加して navigationHistory API を拡張しました。 #42014
  • ネイティブのテーマの透明度チェックを改善しました。 #42862

Electron 32.0.0

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

Electron 32.0.0 がリリースされました! これには Chromium 128.0.6613.36、V8 12.8、Node 20.16.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、TwitterMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

  • ドキュメントに新しく API バージョン履歴を追加しました。これは、Google Summer of Code の一環として @piotrpdev によって作成された機能です。 詳細については、こちらのブログ記事 をご覧ください。 #42982
  • ウェブの File API から非標準の File.path 拡張を削除しました。 #42053
  • ブロックされたパス内のファイルまたはディレクトリを開こうとしたときに、ウェブの ファイル システム API が失敗する流れを上流と整合させました。 #42993
  • webcontents.navigationHistory に、次の既存のナビゲーション関連 API を追加しました: canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear。 以前のナビゲーション API は非推奨になりました。 #41752

Electron 31.0.0

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

Electron 31.0.0 がリリースされました! これには Chromium 126.0.6478.36、V8 12.6、Node 20.14.0 へのアップグレードが含まれています。


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

何かフィードバックがあれば、TwitterMastodon で共有したり、コミュニティの Discord に参加してみましょう! バグや機能の要望は Electron の Issue トラッカー で報告できます。

注目すべき変更

  • WebContentsView を既存の webContents オブジェクトを受け入れるように拡張しました。 #42319
  • NODE_EXTRA_CA_CERTS のサポートを追加しました。 #41689
  • window.flashFrame(bool) を macOS 上で持続的に点滅するように更新しました。 #41391
  • WebSQL のサポートを削除しました #41868
  • nativeImage.toDataURL が PNG 色空間を保つようにしました #41610
  • webContents.setWindowOpenHandler が手動作成した BrowserWindow をサポートするように拡張しました。 #41432