IT戦記 このページをアンテナに追加 RSSフィード Twitter

2007-11-06

Firebug 1.2 のバグ

ブラウザ再起動したら Firebug 1.2 が起動しなくなったので

調べてみた><

原因はファイルのパーミッション

Index: branches/firebug1.2/components/firebug-service.js
===================================================================
--- branches/firebug1.2/components/firebug-service.js   (リビジョン 265)
+++ branches/firebug1.2/components/firebug-service.js   (作業コピー)
@@ -2383,7 +2383,7 @@
         file.append("firebug-service-dump.txt");
         //file.createUnique(CI("nsIFile").NORMAL_FILE_TYPE, 0666);
         var stream = CC("@mozilla.org/network/file-output-stream;1").createInstance(CI("nsIFileOutputStream"));
-        stream.init(file, 0x04 | 0x08 | 0x20, 664, 0); // write, create, truncate
+        stream.init(file, 0x04 | 0x08 | 0x20, 0664, 0); // write, create, truncate
         return stream;
     }
     catch (exc)

664 が十進数で 0644 が八進数というオチ。

Firebug 1.2 を使ってみた。

GranParadaiso で作業してて

  • おいおい。 Firebug 対応してねーよー。
  • ちょっとソース見てみるかあ

chrome からコンテンツにプロパティを設定できなくなっちゃった見たい。。。

win.hoge = hoge; // <- win はコンテンツの window
win.location = "javascript: eval(hoge)"; // <- hoge がないって怒られる

みたいなところが動かなくなってるみたい><

で、リポジトリを除いてみたら

branches/firebug1.2 ってのがあった

さっそくビルド

$ svn co http://fbug.googlecode.com/svn/branches/firebug1.2
$ cd firebug1.2
$ ant

firebug1.2/dist に xpi が出来てるので、それを Firefox で開く

動いたー!

f:id:amachang:20071106161514p:image

ちょっと気になったのでソースを見てみたら

var sandbox = new Components.utils.Sandbox(win);
var sandbox.hoge = hoge;
Components.utils.evalInSandbox('alert(hoge)', sandbox);

こんな感じで Components.utils.Sandbox というのを使っていました。

ただ

これを使うと、var 宣言された変数は sandbox オブジェクトプロパティになってしまう(グローバルオブジェクトwin だけど)ので、そこだけ注意が必要。

今まで、コンソール上で var したらそのままコンテンツでも変数になったけど、 Firebug 1.2 では window.hoge = 'hoge'; のようにして変数を追加しない限りコンテンツは汚れない。

駄文 - プログラミングと Shell

(ダラダラと書く)

もっぱら id:lovecall さんが注目されていますが、

こっちも cho45 が先生(?)なので間違いないhttp://d.hatena.ne.jp/dropdb/searchdiary?word=%2a%5bRuby%5d

で、

しょっぱな Cygwin に苦戦してるみたい

うーん でもコマンドプロントとの違い、良さがわかりません・・・のです・・・

http://d.hatena.ne.jp/dropdb/20071105#p5

最初に Cygwin を入れさせるとは、さすが cho45 だなあと思った

Cygwin の良さと自分の経験

僕は Windows をやめて Linux (のちに Mac) を使い始めてから、プログラミングの学習速度が飛躍的に伸びた。

その原因は間違いなく、 GUI -> CUI つまり Explorer -> Shell に環境を変えたことにあると思う。

僕が初めて cd コマンドや ls コマンド (もっとも簡単なコマンド) を打ったのが 2005 年。そして、 JavaScript を始めたのも 2005 年末。

それまでは、プログラミングとは何なのかも全く分かっていなかったし(今もあまり分かってないけど)、

Visual Studioダブルクリックして開いた画面に C 言語を打ち込むことがプログラミングだと思い込んでいた。

Windows を辞めていなければプログラマとしての成長は無かったかもしれない(あくまでも僕は)。

そして Shell を使い始めてからプログラミングがぐっと身近になった。

Shell の操作はそれ自体がプログラミング(といえなくもない)だからなのかもしれない。(Web に関しては)プログラミング自体が文字列操作だからかも知れない。

で、 Cygwin なんだけど、 CygwinWindows 上で LinuxMac と同じ Shell (と他の様々な CUI のためのツール)を使うためのソフトウェア

でも、 Windows には Explorer があるし Cygwin 重いしなあ。 Cygwin の良さを知りたければ、一回 Windows アンインストールして LinuxMac の Shell を使ってみたらどうでしょう?

最初は遠回りでも実は近道、急がば回れ。


というか、 Cygwinコマンドプロンプトの違いを書いてなかった orz

Cygwinコマンドプロンプトシェルという面では同じ。でも、 Cygwin は毎日そればっかり使ってても大丈夫なくらい便利ってことかな。 Cygwin じゃなくて PowerShell でもいいと思うけど

駄文でした

読み返してないので誤字だらけかな