Mozilla(2)

Thunderbirdの障害発生時の調査資料採取手順(Windows篇)

はじめに

クリアコードはThunderbirdのサポートサービスを提供していますが、その一環でThunderbirdの障害の調査を実施することがあります。

調査のために収集が必要な情報は、発生した障害の内容によって様々ですが、当社のサポートサービスのお客様からのお問い合わせでは、SMTP・POP3・IMAPでのメール送受信時と、フォルダーの最適化実行時、およびGUIのカスタマイズに関するトラブルのお問い合わせが多い傾向があります。

この記事では、これらに類するトラブルの発生時に原因究明のためによく採取を依頼する情報について、一通り採取する手順をご紹介します。

もっと読む

ブラウザーの拡張機能でコンテンツ内に安全に情報を埋め込む方法のベストプラクティスとバッドプラクティス

Firefoxの拡張機能開発で育ち、今はChrome/EdgeなどのChromium系ブラウザー向け拡張機能も開発している結城です。

これらのブラウザー向け拡張機能では、拡張機能が能動的にUIを表示する方法が限られています1。能動的に任意の位置にUIを表示したい場合、windows.create()でウィンドウを開くか、コンテントスクリプトを使ってコンテンツ内にUIを埋め込むかのどちらかの方法を取る必要があります。 この記事では、後者の「コンテンツ内にUIを埋め込む」やり方について、現時点でのベストプラクティスと、それ以外の方法の問題点を紹介します。

最初に結論だけ述べると、mode:'closed'Shadow DOMを使い、画像などは拡張機能のパッケージ内に含めておくのが現状でのベストで、それ以外の方法は全てセキュリティまたはプライバシー保護の点で問題があります

  1. 拡張機能向けのAPIでは「デスクトップ通知」「(ツールバーボタンのクリック操作で開かれる)ポップアップ」「サイドバー(Firefox)」「サイドパネル(Chrome、Edge)」など拡張機能がUIを提供できる機能がいくつかありますが、ユーザー操作に対するイベントリスナーの中で直接的に呼び出した場合しか機能しなかったり、表示できるUIの形状が固定されていたりといった制限があります。

もっと読む

Firefox ESR140.1のリリースとFirefox ESR128のサポート終了について

来る9月16日に、Firefoxの法人向け長期サポート版であるFirefox ESR1の、1つ前のメジャーバージョンにあたる「Firefox ESR128」のサポートが終了します。

Firefox ESRは現在、ESR140とESR128の2つのバージョンが存在しており、8月19日には、それぞれのセキュリティアップデート版であるESR140.2とESR128.14がリリースされる見込みです。 このうちESR128.14はESR128の最終バージョンになる予定で、ESR140.3のリリースをもってESR128はサポートが終了する旨予告されており、以後はESR140への移行が強く推奨されます。

当社では、Firefox ESR128からESR140の間の変更点のレポートを公開しており、このレポート中では10のカテゴリーに分けて、法人利用に影響が及ぶと考えられる変更点を詳細に紹介しています。 この記事では、その中で特に影響度が大きいと考えられる項目を5つのカテゴリーから抜粋してご紹介します。

  1. Extended Support Release。通例、1年間のセキュリティアップデートが提供され、その間は機能的な変更は行われない。

もっと読む

Thunderbird 136の起動時に「設定ファイルを正常に読み込めませんでした。システム管理者に問い合わせてください。」と言われる原因と対処の事例

FirefoxやThunderbirdには、古い集中管理の仕組みとしてMCD(Mission Control Desktop)という機能があります。 元々はシステム管理者が決めた設定値を各端末のソフトウェアに強制適用するための物でしたが、現在その役割はポリシー設定機能が担うようになってきており、この用途においてMCDは、ポリシー設定機能では制御できない部分を補うために使われる程度となっています。

このMCDの設定ファイルを使用している環境では、FirefoxやThunderbirdの更新後に、起動時に「設定ファイルを正常に読み込めませんでした。システム管理者に問い合わせてください。」というメッセージが表示されるようになることがあります。 最近も、Thunderbrird 136への更新でこの現象が起こるようになったとのご相談をお客様から頂きました。

詳しく調査したところ、Thunderbird 136において、確かに同様のトラブルが起こりやすくなるような変更があったことと、多くの場合はモジュールの読み込みを行っている箇所を修正するだけで問題を解消できることが分かりました。 本記事では、この問題の背景事情と回避方法をご紹介します。

もっと読む

自動テストがなかったGo製Native Messaging Hostの自動テストの作り方

FirefoxやThunderbird、Chromium系ブラウザーなどの拡張機能では、Native Messagingという仕組みを使って、通常のAPIの範囲では行えないローカルファイルへの直接のアクセスなどを行えます。これは、ブラウザーが拡張機能からの求めに応じて「Native Messaging Host(以下NMH)」と呼ばれる特殊なネイティブアプリケーションを呼び出すことによって実現されます。

NMHはどのような言語で開発しても問題ありません1が、拡張機能がマルチプラットフォームで利用され得ることと、NMHは標準入出力を使う非GUIアプリケーションとして実装すればよいことから、当社では、単一ソースからマルチプラットフォームな実行ファイルを容易にクロスビルドできるGo言語(golang)を用いる場合が多いです。本記事では、このような前提で開発されたもののそれまで自動テストがなかったgolang製NMHに、後付けで自動テストを作る際の注意点を紹介します。

  1. 極端な例では、Bash用のシェルスクリプトもNMHとして使用できます。

もっと読む

Firefoxのサポート期限の調べ方

Firefox・Thunderbirdの法人向けサポートサービスをご提供している関係で、「Firefoxのバージョン何々のサポート期限はいつまでなのか?」という趣旨のお問い合わせを頂くことがあります。

様々な意味に取れる「サポート期限」という言葉ですが、ここでは「Firefoxの特定のメジャーバージョンについて、セキュリティアップデート(マイナーアップデート)が提供される期間」を指します。このサポート期限は、公式には明確な日付で記載されることがなく、具体的な日付を知るにはいくつかの情報を元に演繹する必要があります。この記事では、オフィシャルに示されている情報からFirefoxのサポート期限を読み取る手順をご紹介します。

もっと読む

Thunderbird 128でIMAPアカウントのメールフォルダーが破損する・増殖する場合の回避方法

当社の法人向けThunderbirdサポートサービスにおいて、それぞれ別々のお客さまから、以下のようなお問い合わせを頂きました

  • Thundebrird 115からThunderbird 128へ更新して以後、IMAPで運用しているメールアカウントにおいて、フォルダー内のメールを選択するとメールのソースらしき文字列が表示されたり、別のメールの内容が表示されたりする現象が、度々唐突に起こるようになった。「フォルダーの修復」を行うと状態が回復するが、しばらくするとまた再発する。
  • アーカイブの保存方法を年単位から単一のフォルダーにまとめるように変更して以後、Thunderbirdを終了する度に「archive-1」「archive-2」「archive-3」……と、名前の末尾に数字が付いたメールフォルダーが増殖していくようになった

本記事では、この2件の事例を切り口として、この種の問題の共通の原因と疑われるThunderbirdの事情を解説した上で、これらの問題の回避に有効と考えられる対策をご紹介します。

もっと読む

公開のOSS開発プロジェクトの業務での開発事例:Waterfoxのサイドバー開発からのFirefox用アドオン「Tree Style Tab」の改善(開発編)

結城です。

筆者個人に寄せられたWaterfoxのサイドバーUI開発に関するご相談を当社の業務として手がけた件(参照:Waterfoxプロジェクトのブログにおけるアナウンス)について、前編の記事では交渉と作業内容の検討段階の経緯をご紹介しました。

前編では「Waterfoxのためのモジュール開発」の趣が強い話でしたが、最後の段になって、実は最終的な落とし所はそれとはやや見え方が異なる「WaterfoxプロジェクトとTree Style Tab(以下、TST)プロジェクトとのコラボレーション」の形になった、ということに触れました。 後編となるこの記事では、「調査・開発を進める過程で、何故そのようにゴールが変わったのか」を説明した上で、主に「既存の開発プロジェクトに対する特定顧客向けの機能追加の要件をどのように分離したか」に焦点を当てて、実際に行ったことをご紹介します。

もっと読む

公開のOSS開発プロジェクトの業務での開発事例:Waterfoxのサイドバー開発依頼(契約編)

結城です。

先だってFirefoxのフォーク版の一つとして知られるWaterfoxプロジェクトのブログにてアナウンスがあった、Waterfoxの次期バージョンにおける「タブのプレビュー画像を伴った縦置き型のタブバー」の開発を、当社業務の一環として筆者が担当させて頂きました。

先方のブログでも言及されている「仮想スクロール」の技術的な詳細については、筆者個人のブログにて、解説記事を別途公開しております。 ここでは、それとは別の切り口として、「個人の開発者宛に頂いた連絡を、どのようにして企業の案件として請け負い、成果をオープンソース開発プロジェクトに還元したか」に焦点を当て、前後編に分けて、前編(この記事)では初期の交渉と仕様検討段階で行ったこと、後編では実装段階で行ったことをご紹介します。

もっと読む

dbus-sendを利用して既存のFirefoxプロセスでサイトを開く方法

Firefoxのプロセスが既に起動している場合、新たにFirefoxを起動しようとすると、既に起動している方のプロセスにてコンテンツが表示されます。

その一方で、同一のプロファイルを指定してFirefoxを追加で起動しようと試みた場合など、そのままでは既に起動しているプロセスにてコンテンツを開かせることができない場合もあります。 すでにFirefoxが起動中だが、応答しない旨のエラーメッセージが表示され、Firefoxを終了し別プロファイルを利用するようにうながされます。 このような挙動になるのは、プロファイルを保護するためにロックがかけられている状態になっているためです。

今回は、GNU/Linux環境下においてそのような場合でも既存のプロセスでタブを開けるように、dbus-sendをどのように利用するとよいかを説明します。

もっと読む