WebKitBlobBuilderが削除

Blobコンストラクタがあるから要らないよということで、deprecatedとされたBlobBuilderMozillaFirefox 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()の変更も合わせてそのうち出してくるんじゃないかと予想。

となると、古いChromeFirefoxをサポートしなくていいなら、今後はコンストラクタを使うようにすればよさそう。ただタイミングが悪いとwebkitSlice()の検出をしないといけなくなるという……