Firefox 4 Beta 9の気になる点のメモ

Firefox 4 Beta 9 – a huge pile of awesome ✩ Mozilla Hacks – the Web developer blog
上記の気になった点をメモ。

  • JavaScript typed arrays
    • File操作、画像操作、WebGLにいかがですか?
  • Compartments
    • ヒープがOriginごとになって、Originが同じwindowごとのアクセスはwrapperを使わなくしてアクセスが早くなったと
  • JavaScript animation scheduling APIs
    • アニメーションの最適なタイムアウトの値が分からないぜ問題の解決
      • setTimeout()の0指定だと、DOMの変更後など区切りがあるごとにすぐに何回も呼んじゃうけど、これだとDOMの変更後style計算が終わりrepaintされるときに1回呼ばれて、その自分の変更のrepaintでまた呼ばれて・・・って感じになって、回数が減るわけか。
      • 隠れたタブだとほとんど実行されない利点もあると。
    • 複数のアニメーションの同期問題の解決
      • これは便利。タイマーをまとめないと個々のsetInterval()でrepaintしちゃって見た目がバラバラでrepaintの回数も無駄なんだけど、自分でまとめるのは面倒なので、リスナーに追加すると追加したリスナーが全部終わってrepaintされるのがいい感じ。
    • 下記を読むと、1つのリスナーが止まっても他のリスナーが動くように読めるが、グローバル変数の書き換えとか考えると、それは無理じゃね?
      • Well, I'm Back: mozRequestAnimationFrame
      • > If the main thread is blocked on a single event for a long time (e.g. if a MozBeforePaint handler takes a very long time to run) it's obviously impossible for JS animations to stay in sync with animations offloaded to a compositing thread. But if the main thread stays responsive, so MozBeforePaint events can be dispatched and serviced between each compositing step performed by the compositing thread,
  • Retained layers
    • レイヤー合成をhardware accelerationでやるよー。
  • Asynchronous plug-in painting
    • あのプラグインがすっげ遅い描画してんだけどさぁ、あいつ待つのもう止めね?
  • ECMAScript 5
    • お前らのコードがひどいんでstrict mode用意してやったぜ
  • Web Console
  • Support for WebM
    • H.264ってGIFみたいな顔してねぇ?
  • History pushState and replaceState
    • ページ開いたらhistoryが10000個ぐらい詰まれることもあるのか
  • Audio sampling and generation API
    • WebGLの3Dゲームで、「敵が後ろからだんだん近づいてくる足音」を実現したい。ってか今度やろう
  • Support for .slice in the File API
    • WebGL用のデータファイルとか読み込むときに
  • FormData
    • XHRによるfileアップロードの悪夢からおさらばできる
  • CSS Transitions
    • スムーズなゲームにどうぞ
  • -moz-calc
    • やぱCSS variablesは入れない方向なのかなぁ。CSSとJSで同じ値を定義したくないけど、ちょっとしたコンテンツを書くのに、環境毎に違うジェネレーターが嫌で、JavaScriptによるstylesheetの書き換えも嫌ってのは、わがままか。