web-dev-qa-db-ja.com

Chrome MIMEタイプのマッピングを編集するにはどうすればよいですか?

新しいタブでimage/x-pngタイプの画像を開きましたが、Chromeはそれをダウンロードしました。グーグルで調べたところ、Chromeはimage/x-pngを画像ファイルとして解釈しませんでした。

そこで、ChromeのMIMEタイプマッピングを編集します。出来ますか?

23
Ohgyun Ahn

残念ながら私のコメントに答えていないので、質問を忘れて報奨金を失いました。ブラウザで直接PNGを表示するためにコンテキストメニューをクリックする必要がないため、私の答えは少し使いやすいと思います。

Chrome拡張機能 Redirector は、HTTP応答ヘッダーを置き換えるように構成できます。 「.png」で終わるURLのContent-Typeヘッダーを置き換えるルールを作成しました。

このJSONコードをテキストエディターに貼り付けて、png_rule.jsonとして保存し、リダイレクター設定でルールマネージャーに移動し、ファイルをクリックしてimを開きます。 -/ exportオプションとルールのインポートバージョン1:

[{"name":"x-png -> png","match":{"str":"\\.png$","type":0,"modi":false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

これからは、すべてのPNGファイルに問題はありません。

Update:作成者またはリダイレクターによって提案されたように、単純なパターン一致をより厳密な正規表現一致に置き換えました。


更新2:「-.png」で終わるPNG添付ファイルのURLを生成する Trac などのシステムがありますが、実際にはHTMLですページの一部としてPNGのみを埋め込むページ。この場合、ホストをブラックリストに登録する必要があります。そうしないと、HTMLページのコンテンツタイプがtext/htmlのままであってもimage/pngに設定されるためです。 Redirectorの制限のため、一致したURLと部分的な置換のためにヘッダーを上書きすることができます。 pngの代わりにx-pngのみが不可能であるため、正規表現の一致で特定のホストを明示的に除外するかなりratherいアプローチを使用する必要があります。例えば。

^https?://(?!([^/]+\.)?(?:trac\.edgewall\.org|freetz\.org)/).*\.png$

ホスト名trac.edgewall.orgまたはfreetz.orgのいずれかを含むURLを除外します。 Redirectorにインポートされる完全なJSONはルールバージョン2:です

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+\\.)?(?:trac\\.edgewall\\.org|freetz\\.org)/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

ブラックリストのない以前のバージョンのルールで2つのテストURLが失敗する(つまり、HTMLページの代わりに空の「画像」を表示する)と、ブラックリストを含む新しいルールで機能するようになりました:

少し正規表現を知っているか、単に遊んでいるだけであれば、他のURLを簡単に追加できます。

ところで、Trac URLの場合、ブラックリストに共通部分「/ attachment/ticket /」を使用することをお勧めします。この方法で、固定ホストリストの代わりに世界中のすべてのTracインストールをブラックリストに載せることができます。これはルールですバージョン3:

[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+)?/attachment/ticket/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]

更新3:リダイレクタはChromeストアでは利用できませんが、古いバージョンは古いものからダウンロードできます- リダイレクタのホームページ

19
kriegaex

MIMEタイプのマッピングを編集できないようです。= "View As MIME Type" in ChromeまたはFirefox

この回答 https://stackoverflow.com/a/8724758/962091 は特に興味深いものです。著者は、右クリックで追加されたメニュー項目を介して異なるMIMEタイプとしてファイルを開くためのChrome拡張子を作成し、オープンソースにしましたが、グローバルな処理メカニズムは提供しません。

編集:

デフォルトでは、拡張機能にはtext/htmlおよびtext/plainとして開くオプションのみがありますが、image/pngを含む任意の拡張機能を拡張機能設定に追加できます。 テスト画像 です。

このバグはChromiumバグトラッカーで2012年8月13日にUntriagedに移動されました Chromeも同様です。

15
zackdever

何らかの理由で、彼らはchromeウェブショップからリダイレクタを削除しました。リダイレクタの任意のバージョンを見つけることができます こちら

.jpg .gifおよび.png形式のjsonは次のとおりです。

[{"name": "x-png-> png"、 "match":{"str": "\。png $"、 "type":0、 "modi":false}、 "sub":{" str ":" Content-Type "、" type ":4、" modi ":true、" modg ":true}、" repl ":{" str ":" image/png "、" decode ":false}、 "enabled":1}、{"name": "x-jpg-> jpg"、 "match":{"str": "\。jpg $"、 "type":0、 "modi":false}、 "sub":{"str": "Content-Type"、 "type":4、 "modi":true、 "modg":true}、 "repl":{"str": "image/jpg"、 " decode ":false}、" enabled ":1}、{" name ":" x-gif-> gif "、" match ":{" str ":" \。gif $ "、" type ":0、" modi ":false}、" sub ":{" str ":" Content-Type "、" type ":4、" modi ":true、" modg ":true}、" repl ":{" str ":" image/gif "、" decode ":false}、" enabled ":1}]

2
Mardok

Chrome拡張機能があり、任意のパターンのコンテンツタイプと処理を変更できるため、ダウンロードの代わりにpngを強制的に表示するために使用できます(ただし、他の多くの場合に適しています、私はそれを使用してtxtをHTMLとしてレンダリングしています): Modify Content-Type Chrome Extension