WebKitBlobBuilderが削除
Blobコンストラクタがあるから要らないよということで、deprecatedとされたBlobBuilder。MozillaもFirefox 14からMozBlobBuilderを使うとコンソールにwarningが出ることは、前に書いた。
さて、WebKitBlobBuilderはどうか。これまでの接頭辞の議論を考えるとちょっと難しいよね……とおもったら削除された。
このバグが投げられた時点でWebKitはまだBlobコンストラクタをサポートしていなかったので、まずコンストラクタが実装され、それで削除となった。ただ、WebKitBlobBuilderは既にChromeに載っているので、そのまま削除だとちょっとまずい。ということでENABLE_LEGACY_WEBKIT_BLOB_BUILDERなるフラグが用意された
このフラグ、Safari (Mac port)では有効にされないらしい。というのもSafariのリリースバージョンではWebKitBlobBuilderが実装されていなかったから(5.2のPreviewにはあるのかもしれないけれど)。他のportでは今のところ有効なので、Safariとそれ以外でWebKitBlobBuilderが使えたり使えなかったりということになる。Chromeが削除できるかは微妙な気はする。
IE10でもコンストラクタが実装される?
あまり気にしている人はいない気がして残念だけれど、MSBlobBuilderというのもある。来月にWindows 8のRelease PreviewなんてタイミングでBlobコンストラクタがサポートされて、MSBlobBuilderが削除されるのだろうか。難しいんじゃないかな。
と思ったら、MozillaのバグでJonas Sickingがこんな発言を。仕様でArrayBufferのかわりにArrayBufferViewをとるようになったので、その修正を促すバグなんだけど、IE10の話が。
Based on conversations with microsoft people, apparently IE10 is going ship with the Blob constructor taking ArrayBuffers (it's too late in their cycle to change).
Microsoftのひとによると、ArrayBufferViewへの修正は間に合わないらしいけれど、Blobコンストラクタはサポートされるらしい。MSBlobBuilderは削除されるんだろうか。いくつかのデモで使われているし、どうなのかね。
Blob()でOK
で、Operaなんだけど、BlobBuilderはまだサポートしてないので問題ない。コンストラクタの対応、slice()の変更も合わせてそのうち出してくるんじゃないかと予想。
となると、古いChromeやFirefoxをサポートしなくていいなら、今後はコンストラクタを使うようにすればよさそう。ただタイミングが悪いとwebkitSlice()の検出をしないといけなくなるという……