[4] [CODE(DOMi)@en[URL][URL API]] [[インターフェイスオブジェクト]]の
[DFN[[CODE(DOMm)@en[[[createFor]]]]]] [[メソッド]]は、
[CODE(DOMi)@en[[[Blob]]]] [[オブジェクト]]の [[Blob URL]]
を[[自動revoke]]有効で作成し、返すものです。

* 仕様書

[REFS[
- [11] [CITE[File API]] ([TIME[2015-04-17 16:25:21 +09:00]] 版) <https://w3c.github.io/FileAPI/#dfn-createFor>
]REFS]

* 処理

[12] 次のようにしなければ[['''なりません''']] [SRC[>>11]]。
[FIG(steps)[
= [13] [CODE(DOMi)@en[[[Blob]]]] が1つ[[引数]]として指定されたものと解釈します。
= [14] 指定された [CODE(DOMi)@en[[[Blob]]]] の[[読み取り可能性状態]]が [CODE[[[CLOSED]]]] なら、
== [16] 指定された [CODE(DOMi)@en[[[Blob]]]] の [[Blob URLのUnicode直列化]]を返します。
= [15] そうでない場合、
== [2] 指定された [CODE(DOMi)@en[[[Blob]]]] の [[Blob URLのUnicode直列化]]を得ます。
== [18] [[Blob URL Store]] に項目を追加します。
[FIG(list members)[
:[[URL]]:得られた [[URL]]
:[CODE(DOMi)@en[[[Blob]]]]:指定された [CODE(DOMi)@en[[[Blob]]]]
]FIG]
== [1] [[Revocation List]] に得られた [[URL]] を追加します。
== [17] 得られた [[URL]] を返します。
]FIG]

;; [19] [CODE[[[CLOSED]]]] の場合、 [[URL]] は返されますが、
[[Blob URL Store]] には追加されていませんから、参照しても[[ネットワークエラー]]になります。

* 関連

[3] [CODE(DOMm)@en[[[createObjectURL]]]] とは違って、本[[メソッド]]は[[自動revoke]]を行います。

* メモ

[5] [CITE@en[Make the Blob URL creating/revoking methods not be exposed on the ser… · w3c/FileAPI@b9c2275]]
([TIME[2016-04-16 15:33:56 +09:00]] 版)
<https://github.com/w3c/FileAPI/commit/b9c2275df53cf3a808f1f272f3d6134d1b920549>

[6] [CITE@en[Remove the URL.createFor method. (#62)]]
([[mkruisselbrink]]著, [TIME[2017-02-02 00:44:53 +09:00]])
<https://github.com/w3c/FileAPI/commit/c04e485a8d4eb93c62de873776b44a806b6e9c9c>

[7] [CITE@en[Revive createObjectURL? · Issue #404 · w3c/mediacapture-main]]
([TIME[2018-04-19 13:29:30 +09:00]])
<https://github.com/w3c/mediacapture-main/issues/404>