web-dev-qa-db-ja.com

Firefoxはgeditでアプリケーション/オクテットストリームを開こうとします

Fedora22でFirefox41.0.1を使用しています。

GitLabサイトでPNG画像リンクを開こうとしたときにこの動作に気づきました。サーバーは"Content-Disposition:"inline; filename="logo.png"およびContent-Type:"application/octet-stream"で応答します。

ブラウザに画像を表示するか、システムのデフォルトの画像ビューアで開くように提案してほしい。可能だとわかっている。少なくともWindowsでは。 @JourneymanGeekから提供された以下のGIFを参照してください。

enter image description here

このツール を使用していくつかのテストを行いました。リンクをクリックし、応答ヘッダーにapplication/octet-stream mimeタイプが含まれていると、Firefoxはgeditを使用してファイルを開くように提案します。デフォルトのアプリケーション。

enter image description here

  • ファイル(この場合はPNG画像)をダウンロードしてダブルクリックすると、Eye ofGnomeで開きます。
  • xdg-openはEyeofGnomeでも開きます。
  • application/octet-stream/usr/share/applications/defaults.listに存在しません
  • $ grep "gedit" /usr/share/applications/defaults.listtext/plain=org.gnome.gedit.desktopのみを返します
  • ~/.mozilla/firefox/<profile>/mimeTypes.rdfファイルを削除しましたが、問題は解決していません。
  • ~/.local/share/applications/mimeapps.listファイルも削除しましたが、問題は解決しません。
  • Firefoxを再起動し、Gnomeプロファイルからもログアウトしました。

Firefoxのファイルの関連付け画面は次のとおりです。

enter image description here

繰り返しになりますが、私の質問は、Firefoxにブラウザにファイルを表示させることは可能ですか(レンダリング可能なファイルの場合) 、またはそれをレンダリングできる正しいアプリケーションを提供しますか(システムに1つある場合)?

または、サーバーが誤ったmime-typeを宣言すると、すべてが不可能になりますか?

また、なぜgeditがデフォルトのoctet-streamハンドラーであると考えているのですか?これは正しいです?

3

~/.local/share/applications/mimeapps.listファイルも削除しましたが、問題は解決しません。

システムの他の場所に別のmimeapps.listがある可能性があります。リスト ここ を調べるか、次のいずれかのコマンドを使用してシステムを検索できます。

locate mimeapps.list

または

find / -name 'mimeapps.list'

それらにapplication/octet-streamエントリがないか確認し、コメントアウトするか削除します。

4
Bob

Firefoxはこれを修正しないようです issue ですが、application/octet-stream=org.gnome.gedit.desktopから~/.config/mimeapps.listを削除し、アドオンを使用する方法で修正しました OpenDownload²Runオプションを提供します。

ダウンロードするファイルの拡張子がmimeapps.listで正しく設定されている場合、Firefoxはチャームのように開きます(run)

1
Geyslan G. Bem

@Bobは、質問のパート2、つまりファイルを開くアプリを制御する方法に回答しました。

パート1の答えは次のとおりです。Firefoxはタイプapplication/octet-streamのすべてのファイルを設計でダウンロードします。 HTTP標準によると、 コンテンツタイプが指定されている場合、準拠するブラウザはサーバーを2番目に推測してはなりません 。オクテットストリームファイルには任意のデータが含まれているため、ブラウザはそれらをダウンロードする必要があります。

ほとんどのブラウザは、使いやすさを優先して標準を無視します。 Firefoxはそうではありません。 @Geyslanの回答で述べられているように、この設計上の選択を回避するには、サードパーティの拡張機能を使用する必要があります。

0
Foo Bar