Firebugのconsole.log()は、ほかのextensionの中からは console is not undefined といわれて呼び出すことができません。ブラウザでconsoleは開いているウインドウとFirebugのコンソールでしか有効でないシンボルのようです。
window.dumpと比べてすごく便利なのでつかえないのかなー、と思っていたらふつうに
Firebug.Console.log( obj )
で呼び出せば、ほかのextensionの中からでもFirebugのコンソールに出力することができました。
Execute JS を使って拡張機能のコンテキストで実行しても
console.logしたときと同じかたちでFirebugのコンソールに結果が出てきます。
Firebugという定数を使っているので今度はFirebug側のコードを見てみたら
chrome/content/firebug/firebug.js に
top.Firebug =
{
version: "1.05",
module: modules,
panelTypes: panelTypes,
reps: reps,
という部分があるのを見つけました。extensionの実行コンテキストでのtopが何なのか、さっそく Firebug.Console.log(top) で見てみると ChromeWindow オブジェクトで chrome://browser/content/browser.xul を指していました。
Console.logのほかはそんなに有用ではないかもしれませんが、ついでに grep -hrPw '^top\.' * してみると
top.FirebugChrome =
top.domplate = function()
top.TAG = function()
top.FOR = function()
top.Firebug =
top.InsideOutBox = function(view, box)
top.SourceCache = function(context)
top.SourceCache.prototype =
top.XMLHttpRequestSpy = function(request, context, win)
top.TabWatcher =
なんていうのがFirebug内でtopに代入されていました。
トラックバック元エントリにこのエントリへのリンクがない場合はトラックバックを受け付けません。
http://labs.gmo.jp/mt/mt-tb.cgi/149
comments