BT

InfoQ ホームページ ニュース Electron 8のリリースで、呼び出し元スタックロギング、HTTP解析の代替手段が導入された

Electron 8のリリースで、呼び出し元スタックロギング、HTTP解析の代替手段が導入された

ブックマーク

原文(投稿日:2020/05/06)へのリンク

最近のElectron 8.0、8.1、および8.2リリースでは、JavaScript、HTML、およびCSSを使用してクロスプラットフォームデスクトップアプリを構築するためのフレームワークに大幅な改善が加えられている。これらのリリースのハイライトには、メインプロセスとレンダラプロセス間の通信のパフォーマンスの向上、コールスタックの制御の向上、パッケージ化されたElectronアプリでのHTTP解析NODE_OPTIONの追加、およびセッションCookieストアを安全に使用するための新しいuseSessionCookiesフラグが含まれる。

Electron 8.0リリースでは、package.jsonのメインスクリプトとElectronの各Webページ間のプロセス間通信が変更された。V8の構造化された直列化クローンアルゴリズムは、2つのプロセス間の小さなメッセージの遅延に影響を与えることなく、プロセス間通信に必要な時間を短縮する。

Electron 8.0には、コールスタックをより適切に制御するための ' --enable-api-filtering-logging' コマンドラインスイッチも追加されている。このコマンドは、desktopCapturerおよびリモートAPIの呼び出し元スタックロギングを有効にする。

Electron 8.0リリースには、開発者がLinuxおよびWindowsの通知の期間を制御できるようにするtimeoutTypeプロパティが追加されている。新しいAPI session.downloadURL()はwebContents.downloadURL()を置き換える。これにより、ダウンロードページの起点に関連するセキュリティチェックを実行せずにダウンロードがトリガされる。

以前は、開発者はmacOSのブラウザウィンドウのタイトルバーにカスタムの交通信号の配置を設定できた。Electron 8.1では、開発者はAPIのペアを使用してこのプロパティをオンザフライで設定できるようになった。

Electronは、Node.js 11.5以降にデフォルトのHTTPパーサが置き換えられた、Node.jsを内部で使用している。これにより、いくつかのユースケースが壊れ、HTTPヘッダの解析と有効性に対してより厳密なアプローチが取られた。Electron 8.1では '--http-parser=parser' NODE_OPTIONが導入され、開発者は代替のHTTPパーサに切り替えることができる。

Electronの以前のバージョンでは、audioMutedプロパティはWebViewに対しては機能しなかった。webview.audioMuted = true はWebViewをミュートするはずだったが、代わりに次の警告がトリガされた。Electron 8.1リリースでは、この問題が修正された。

Electronの最近のリリースでは、HTTP/HTTPSリクエストを発行するnetモジュールは、メインプロセスからフェッチのようなリクエストを送信するように設計されている。しかし、このnetモジュールには、フェッチ要求と同じ方法でcookieを使用するための安全なサポートがなかった。この制限により、ハッキングやCookiesヘッダの安全でない直接使用が活発に行われた。

Electron 8.2では、ネットワークリクエストに新しいuseSessionCookiesフラグが導入されており、フェッチリクエストと同様にセッションCookieストアを安全に使用できる。この新しいフラグは、すべてのネットワークリクエストに対してChromiumの内部Cookieストアロジックを利用させる。

Electron 8.2リリースでは、WebpreferencesにdisableDialogオプションも導入されている。このオプションを使用すると、safeDialogsオプションと同様にダイアログを無効にでき、safeDialogsの動作を完全にオーバーライドできる。

Electron 8.2は、プロセス間通信で配列を送信するときに発生する可能性があったクラッシュを修正する。このリリースでは、グローバルObjectプロトタイプを変更すると内部のElectronロジックがエラーをスローする問題も修正された。

開発者は、呼び出し元スタックロギングとHTTP解析の代替案に対して一般的に肯定的な反応を示したものの、まだいくつかの懸念がある。Electron 8.x.xではsetBackgroundプロパティが機能せず、Electronを最新バージョンに更新すると、ページレンダリングのパフォーマンスが大幅に低下する。開発者は、セキュリティ上の理由により、リモートモジュールをデフォルトで無効にしたいと考えている。Electronは将来、パフォーマンス、セキュリティ、および保守性を向上させるために、プロセスモデルのパッチを削除する予定である。

Electronは、Node.jsとChromiumを利用するJavaScript、HTML、CSSでクロスプラットフォームのデスクトップアプリを構築するために使用されるオープンソースフレームワークである。ElectronはMITライセンスで利用できる。ElectronのGitHubリポジトリへの貢献は歓迎されており、Electronの貢献ガイドライン行動規範に従う必要がある。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。