2008.04.28

userChrome.js スクリプトを更新

この記事へのトラックバックURL
http://wildlifesanctuary.blog38.fc2.com/tb.php/167-6aa46580
この記事へのトラックバック
この記事へのコメント
ご無沙汰しております。
さっそくアップデート・スクリプトをダウンロードさせていただきました。

それと、絶対に手放せない機能になっているlookupindictionary.uc.jsですが、Minefieldでも問題なく動作しています。ご報告までm(_ _)m

ところで、エントリ違いで申し訳ないですが…
以前から「プロファイル毎の Firefox を記憶して起動する AppleScript」も使わせていただいていますが、Leopard上のFirefox (Minefieldを含め)をスクリプト経由で起動するとビーチボールが表示され、以降、どの操作でも遅延が発生します。

原因は当方の環境によるものかも知れませんが…
因にPower Mac G5, 6GB RAM, OS 10.5.2 環境です。

Tiger では問題は起こらないのですが、なにかお分かりになりませんでしょうか。
Posted by Hide@ at 2008.05.09 04:46 | 編集
>Hide@さん
報告ありがとうございます。

AppleScriptで起動での遅延、こちらでも確認しました。理由はわからないのですが、どうも nohup で起動すると駄目な様です。

set cmdStr to "nohup " & path2fx

となっている部分を

set cmdStr to path2fx

とするとどうなるか試してもらえますでしょうか?
Posted by macaw at 2008.05.10 23:00 | 編集
> set cmdStr to "nohup " & path2fx
> となっている部分を
> set cmdStr to path2fx

上記で解消しました!
Firefox 2.0.0.14, Firefox 3.0Beta5, Minefield全て正常に起動できています。
自分なりにスクリプト内を調べてはいましたが、"nohup "はエラーを回避するために置かれているのかなと思っていたので、削除するという考えに至りませんでした。

それで、ちょっと気がついた点を加えさせてください。
スクリプト経由で起動すると、プロセスに「sh」が2つ居残ります。Firefoxを終了すると「sh」も居なくなるので、関連していると思いますが、何のプロセスなのかが分かりませんでした。それと起動しているのはFirefox-binとなっています。

実は、macawさんのスクリプトが動かなくなったので、稚拙ながら起動スクリプトを作ってみました。

単純にdo shell script~のスクリプトではFirefox起動後に AppleScript Runnerが居座ってしまい、同時起動できなかったので対処したところ、プロセス上はFirefox-binではなくFirefox.appとなり、それ以外のプロセスも残らなくなりました。

どうしてこういった結果になったのか、よく分かっていませんが(なにせ初心者なもので(^^;
Posted by Hide@ at 2008.05.11 05:44 | 編集
lookupindictionary.uc.jsのほうですが、Minefield でも特に問題なく作動しますが、エラーコンソールにはこんなエラーがレポートされます。

Error: contextmenu is null
Source File: file:///Users/(私)/Library/Application%20Support/Firefox/Profiles/(Minefiledのプロファイル)/chrome/lookupindictionary.uc.js
Line: 27
contextmenu.insertBefore(menuitem, document.getElementById("context-searchselect").nextSibling);

Error: Cc is not defined
Source File: file:///Users/(私)/Library/Application%20Support/Firefox/Profiles/(Minefiledのプロファイル)/extensions/%7B1280606b-2510-4fe0-97ef-9b5a22eafe64%7D/components/userChrome_js.js -> file:///Source File: file:///Users/(私)/Library/Application%20Support/Firefox/Profiles/(Minefiledのプロファイル)/chrome/userChrome.js
Line: 14

↑も表示されるのですが、関係しているのでしょうか?

因にFirefox 2.0.0.14では上記エラー表示されません。
Posted by Hide@ at 2008.05.11 10:53 | 編集
>Hide@さん
nohup はエラー回避というより保険の為に使ってたんですがそれが仇となった様です。違いはTerminalで
$ ./firefox-bin > /dev/null 2>&1 &
$ nohup ./firefox-bin > /dev/null 2>&1 &
こんな感じで起動した後に夫々Terminalを閉じるとわかるかと。do shell script ~ で呼び出す場合は、呼出し元のshellが終了しても子プロセスは終了しないようで、この辺りは気にしなくてもいいみたいですね。

プロセスに sh が残るのは、Firefox.app/Contents/MacOS/firefox がshell scriptで、
firefox (shell script) → run-mozilla.sh (shell script) → firefox-bin(バイナリ)
こんな流れで起動する為です。Finder でダブルクリックした場合は直ぐに firefox-bin が実行されるようなので、do shell scriptの場合もfirefox-binに引数を渡して起動した方がいいのかも。

lookupindictionary.uc.js ですが、こちらではFx3b5、昨日のlates trunkで確認してみたんですが、どちらもエラーはでませんでした。スクリプトローダに依るのかもしれません。私はこちらの alice 氏のローダを使ってるんですが、これだとどうでしょう?
http://space.geocities.jp/alice0775/userChromejs.html
http://space.geocities.jp/alice0775/STORE/userChrome.js
Posted by macaw at 2008.05.12 00:13 | 編集
alice 氏のサブスクリプトローダーに交換したところ、エラーは表示されなくなりました。
本家のものを使っていたので、それが原因だったようです(^^;
お騒がせして申し訳ありませんでした。

> $ ./firefox-bin > /dev/null 2>&1 &
> $ nohup ./firefox-bin > /dev/null 2>&1 &
なるほど。そういうことだったのですね。勉強になります。

> do shell scriptの場合もfirefox-binに引数を渡して起動した方がいいのかも。
スクリプトを稚スクリプトでAppleScript Runnerを残さないために使ったfile_pathを加えてみました。
set cmdStr to path2fx & "Contents/MacOS/firefox-bin -P '" & profile & "' > file_path 2>&1 &"
としてみたところ、「sh」は残らず、起動中のプロセスもFirefox.appになりました。
これで良いのでしょうか?
Posted by Hide@ at 2008.05.12 03:22 | 編集
>Hide@さん
お、いけましたか、良かったです。userChrome.jsはローダの違いによって問題が出る場合もあるのが難しいですね。

> 「sh」は残らず、起動中のプロセスもFirefox.appになりました。

これはどちらも問題が出ないのであれば、好みでいいのかなと(^^;
Posted by macaw at 2008.05.13 23:17 | 編集