Electron 2.0.0
·5 分で読めます
4 か月以上の開発期間、8 回のベータリリース、多くのアプリの段階的なロールアウトによる世界的なテストを経て、Electron 2.0.0 が electronjs.org から入手可能になりました。
リリースプロセス
2.0.0 以降、Electron のリリースは セマンティックバージョニングに従います。つまり、メジャーバージョンはより頻繁に上がり、通常は Chromium のメジャーアップデートとなります。パッチリリースは、優先度の高いバグ修正のみが含まれるため、より安定するはずです。
Electron 2.0.0 は、メジャーリリース前に Electron がどのように安定化されるかという点も改善されています。いくつかの大規模な Electron アプリでは、段階的なロールアウトに 2.0.0 ベータ版が組み込まれており、Electron のベータ版シリーズでこれまでで最高のフィードバックループが得られています。
変更点 / 新機能
- Chrome 61、Node 8.9.3、V8 6.1.534.41、Linux の GTK+ 3、更新されたスペルチェッカー、Squirrel など、Electron のツールチェーンのいくつかの重要な部分がメジャーアップデートされました。
- アプリ内購入が MacOS でサポートされるようになりました。 #11292
- ファイルをロードするための新しい API。 #11565
- ウィンドウを有効/無効にするための新しい API。 #11832
- 新しい API app.setLocale()。 #11469
- IPC メッセージのロギングの新しいサポート。 #11880
- 新しいメニューイベント。 #11754
- powerMonitor に
shutdown
イベントを追加。 #11417 - 複数の BrowserWindow を単一のプロセスにまとめるための
affinity
オプションを追加。 #11501 - saveDialog で使用可能な拡張子を一覧表示する機能を追加。 #11873
- 追加の通知アクションのサポート。 #11647
- macOS の通知のクローズボタンのタイトルを設定する機能。 #11654
- menu.popup(window, callback) の条件を追加
- touchbar アイテムのメモリ改善。 #12527
- セキュリティに関する推奨チェックリストの改善。
- アプリスコープのセキュリティスコープ付きブックマークを追加。 #11711
- レンダラープロセスで任意の引数を設定する機能を追加。 #11850
- フォーマットピッカーのアクセサリビューを追加。 #11873
- ネットワークデリゲートの競合状態を修正。 #12053
- Linux での
mips64el
アーキテクチャのサポートを削除。Electron には C++14 ツールチェーンが必要でしたが、リリース時点ではそのアーキテクチャでは利用できませんでした。将来的にはサポートを再追加したいと考えています。
破壊的な API の変更
- 非推奨の APIを削除しました。以下を含みます。
バグ修正
webContents.isOffscreen()
が常に利用可能であることを確認するように変更。 #12531- DevTools がドッキング解除されていてフォーカスがある場合の
BrowserWindow.getFocusedWindow()
を修正。 #12554 - プリロードパスに特殊文字が含まれている場合に、サンドボックス化されたレンダラーでプリロードが読み込まれない問題を修正。 #12643
- ドキュメントに従って、allowRunningInsecureContent のデフォルトを修正。 #12629
- nativeImage の透明度を修正。 #12683
Menu.buildFromTemplate
の問題を修正。 #12703- menu.popup オプションがオブジェクトであることを確認。 #12330
- 新しいプロセス作成とコンテキスト解放の間の競合状態を削除。 #12361
- BrowserView の変更時にドラッグ可能な領域を更新。 #12370
- フォーカス時のメニューバーのトグル Alt キーの検出を修正。 #12235
- webviews での間違った警告を修正。 #12236
- 親ウィンドウからの 'show' オプションの継承を修正。 #122444
getLastCrashReport()
が実際に最後のクラッシュレポートであることを確認。 #12255- ネットワーク共有パスでの require を修正。 #12287
- コンテキストメニューのクリックコールバックを修正。 #12170
- ポップアップメニューの位置を修正。 #12181
- libuv ループのクリーンアップを改善。 #11465
- 透明色の
hexColorDWORDToRGBA
を修正。 #11557 - getWebPreferences API での null ポインターの逆参照を修正。 #12245
- メニューデリゲートの循環参照を修正。 #11967
- net.request の固定プロトコルフィルタリング。#11657
- WebFrame.setVisualZoomLevelLimits がユーザーエージェントのスケール制約を設定するようになりました。#12510
- webview オプションに適切なデフォルト値を設定。#12292
- vibrancy サポートの改善。#12157 #12171 #11886
- シングルトンフィクスチャのタイミング問題を修正。
- NotifierSupportsActions() での破損した本番キャッシュを修正。
- MenuItem の roles をキャメルケースに対応させました。#11532
- タッチバーの更新を改善。#11812, #11761。
- 余分なメニューセパレーターを削除。#11827
- Bluetooth 選択ツールのバグを修正。Closes #11399。
- macOS のフルスクリーン切り替えメニューアイテムのラベルを修正。#11633
- ウィンドウが非アクティブになったときのツールチップの非表示を改善。#11644
- 非推奨の web-view メソッドを移行。#11798
- browserview から開いたウィンドウを閉じる問題を修正。#11799
- Bluetooth 選択ツールのバグを修正。#11492
- app.getFileIcon API にタスクスケジューラを使用するように更新。#11595
- オフスクリーンレンダリング時でも
console-message
イベントを発火するように変更。#11921 WebContents.downloadURL
を使用したカスタムプロトコルからのダウンロードを修正。#11804- devtools がデタッチしたときに透明なウィンドウの透明度が失われる問題を修正。#11956
- Electron アプリが再起動またはシャットダウンをキャンセルする問題を修正。#11625
macOS
- タッチバーアイテムの再利用時のイベントリークを修正。#12624
- ダークモードでのトレイのハイライトを修正。#12398
- 非同期ダイアログでメインプロセスがブロックされる問題を修正。#12407
setTitle
トレイのクラッシュを修正。#12356- ドックメニューの設定時のクラッシュを修正。#12087
Linux
- Linux デスクトップ通知の改善。#12229 #12216 #11965 #11980
- メニューの GTK+ テーマサポートの改善。#12331
- Linux での正常な終了。#12139
- トレイアイコンのデフォルトツールチップとしてアプリ名を使用するようにしました。#12393
Windows
- Visual Studio 2017 のサポートを追加。#11656
- システムクラッシュハンドラーへの例外の受け渡しを修正。#12259
- 最小化されたウィンドウからツールチップを非表示にする問題を修正。#11644
desktopCapturer
が正しい画面をキャプチャするように修正。#11664- 透明度付きでの
disableHardwareAcceleration
を修正。#11704
今後の予定
Electron チームは、Chromium、Node、v8 の新しいバージョンをサポートするために懸命に取り組んでいます。3.0.0-beta.1 をまもなく公開予定です!