WebRTC の有効化、Win 7 で H.264/MP3 をデフォルトでサポート、Windows 8 向け Metro UI など – Firefox Development Highlights
原文: WebRTC enabled, H.264/MP3 support in Win 7 on by default, Metro UI for Windows 8 + more – Firefox Development Highlights on February 20, 2013 by Paul Rouget and Robert Nyman [Editor]
Firefox の最新の開発状況をご覧いただく機会が再びやってきました。本記事は Bleeding Edge および Firefox Development Highlights シリーズの一環であり、ほとんどのサンプルは Firefox Nightly のみで動作することにご注意ください (また、変更される場合もあります)。
デフォルトで WebRTC を有効化
以前は Firefox の about:config で設定項目 media.peerconnection.enabled
を true
に設定することが必要でしたが、デフォルトで有効になりました。これは Web ブラウザで特別な設定や構成を必要とせず、ただちに WebRTC を実行可能にするための大きな前進です。
この決断の背景について詳しくは、Pref on WebRTC by default をご覧ください。
WebRTC を使い始めたいと思いますか? そうでしたら、私たちが著した記事 Cross-browser camera capture with getUserMedia/WebRTC をお勧めします。
Metro UI
Windows 8 向けに Firefox の新しいインターフェイスを搭載しました (Firefox Nightly をデフォルトのブラウザにしていた場合は、新しい UI を使用するために再設定を行ってください)。
さらに多くのスクリーンショットをご覧いただけます。
Windows 7 で H.264 & MP3 のサポートをデフォルトで有効化
以前 H.264 & MP3 のサポートについてお話ししました (日本語訳) が、これがデフォルトで有効になりました。
Mac OS X および Linux でのサポートについては、引き続き作業中です。
WebAudio API の進捗
私たちは WebAudio API の実装に取り組んでおり、最初のサポート箇所をご覧いただけるようになりました。
こちらは about:config の設定項目 media.webaudio.enabled preference
で利用できます。この項目を true
に設定すると、AudioContext.decodeAudioData
などの API を利用できます。
Crypto API: window.crypto.getRandomValues
window.crypto.getRandomValues は、整数値の型付き配列 (すなわち Int8Array、Uint8Array、Int16Array、Uint16Array、Int32Array、Uint32Array) を与えると、暗号理論的な乱数でその配列を埋めます:
/* window.crypto.getRandomValues が利用可能と仮定 */ var array = new Uint32Array(10); window.crypto.getRandomValues(array); console.log("Your lucky numbers:"); for (var i = 0; i < array.length; i++) { console.log(array[ i ]); }
canvas: ctx.isPointInStroke
これは Firefox 19 beta で実現しました。
WHATWG メーリングリストより引用 (訳注: 以下は引用文の訳):
“私たちは最近、Firefox に isPointInStroke(x,y) を実装しました (https://bugzilla.mozilla.org/show_bug.cgi?id=803124)。これは isPointInPath(x,y) と類似しており、点がパスのストロークに含まれる領域の中にある場合に true を返します。”
JavaScript: Math.imul
Math.imul は、C 言語のような意味論による高速な 32 ビット整数値の乗算を可能にします。この機能は Emscripten といったプロジェクトで有用です。
ポリフィル:
function imul(a, b) { var ah = (a >>> 16) & 0xffff; var al = a & 0xffff; var bh = (b >>> 16) & 0xffff; var bl = b & 0xffff; // 0 ビットのシフト演算は、上位部分の符号を修正する return (al * bl) + (((ah * bl + al * bh) << 16) >>> 0); }