強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Minefield(開発版Firefox)で getContext() を使う時のマニアックな注意点

以前、WebGL用のcontentIdとして有効な文字列をチェックするツールを作りました。

WebGL用のcontentIdとして有効な文字列をチェックするツール - 強火で進め
http://d.hatena.ne.jp/nakamura001/20101124/1290617930

最近、このツールをMinefieldで実行していたときに妙な事に気が付きました。

現在のMinefieldでは experimental-webgl を指定が可能なハズなのに failed となるのです。

色々と試してみたところ、一度取得に成功した場合にはそれ以降は他のパラメータを指定して getContext() を実行してもエラー(例外発生)となる様です。

例えば最初に moz-webgl

gl = canvas.getContext("moz-webgl");

と実行して取得に成功した後に

gl = canvas.getContext("experimental-webgl");

とするとエラーとなる(例外が発生)みたいです。

順番を逆にして

gl = canvas.getContext("experimental-webgl");
gl = canvas.getContext("moz-webgl");

とすると getContext("moz-webgl") の行でエラーとなります。

まぁ、普通は「 getContext() に指定可能な値を全部取得したい」などマニアックな理由が有る事はまず無いでしょうからほとんどの人には問題無い特徴でしょう。

取り敢えず、自分のツールではチェックする値ごとに新しいウィンドウを開く様にして対応しました(もっとスマートな方法ないかなぁ?)。

WebGL init test
http://tsuyobi.heteml.jp/html/webgl/init_test/check.html