開発しているGoogle Chrome拡張機能で、この仕様変更により困ったのでメモ。
Google Chromeのリリースノートを読んでも関連する変更点が見つからず、Chromiumの変更ログを読んでも見つからず、やむなく状況から推測したものなので「推測」として読んでいただければ。
情報などあれば教えてほしいです。
追記: コメントでまさしく正解を教えていただいているので、後ほど修正予定ですー。
HTML a 要素の仕様
<a href="example.com/abc.jpg" download="123.jpg">download</a>
上記のクリックが発火すると、example.com/abc.jpg
を123.jpg
というファイル名で保存しようとする仕様。
WHATWG 1
download属性が存在する場合、著者はリソースをダウンロードするために使用されるハイパーリンクを意図することを示す。属性は値を持ってもよい。値が存在する場合、ローカルファイルシステムでリソースの標識付けに使用するための著者に推奨されるデフォルトのファイル名を指定する。
MDN 2
この属性は、URL に移動するのではなくダウンロードするようブラウザーへ示しますので、ユーザーはローカルファイルとして保存することを促されます。属性に値を指定した場合、保存プロンプトのデフォルトのファイル名として解釈します
注記:
この属性は 同一オリジンの URL に限り動作します。
この、「この属性は 同一オリジンの URL に限り動作します」の部分について、Google Chromeはバージョン60から同じ動きをするようになったっぽい。
Google Chrome バージョン 60 よりも前の仕様
同一オリジン内のリンク
example.com上でexample.comのファイルを落とそうとする
→ 123.jpg
としてダウンロードされる。download属性の値が適用。
<a href="example.com/abc.jpg" download="123.jpg">download</a>
異なるオリジンへのリンク
example.com上でqiita.comのファイルを落とそうとする
→ 123.jpg
としてダウンロードされる。download属性の値が適用。
<a href="qiita.com/abc.jpg" download="123.jpg">download</a>
Google Chrome バージョン 60 以降の仕様
同一オリジン内のリンク
example.com上でexample.comのファイルを落とそうとする
→ 123.jpg
としてダウンロードされる。download属性の値が適用。
<a href="example.com/abc.jpg" download="123.jpg">download</a>
異なるオリジンへのリンク
example.com上でqiita.comのファイルを落とそうとする
→ abc.jpg
としてダウンロードされる。download属性の値は無視。
<a href="qiita.com/abc.jpg" download="123.jpg">download</a>
つまりはMDNに書いてある 2
注記:
この属性は 同一オリジンの URL に限り動作します。
により近い仕様になった、ってことみたい。