MozillaZine.jp フォーラム https://forums.mozillazine.jp/ |
|
拡張機能 Hello Work のテストインストール https://forums.mozillazine.jp/viewtopic.php?f=26&t=9273 |
ページ 1 / 2 |
作成者: | Ten13 [ 2009年10月23日(金) 01:48 ] |
記事の件名: | 拡張機能 Hello Work のテストインストール |
Windows XP Pro SP3 + FF3.5.3 を使っております。 簡単な拡張機能を作ってみようと、新規プロファイル test を作成し、デバグ用に about:config で設定した上で、 先ずはBuilding an Extensionの代わりに、より単純そうなadd-on 開発入門 を試して再起動させてみたのですが、アドオンマネージャには何も現れません。 エラーコンソールを確認したところ、「すべて」を表示させても、アドオンに関するメッセージは特に出力されず。 新たに別のプロファイルを作成して試みたところ、一度だけアドオンマネージャーに所望のアドオンが表示されたのですが、 一旦ポインタファイルを移動させて再起動させた後、再び元のディレクトリに戻して再起動させても、 二度とそのアドオンが表示されることはなく、再現させられないという状況です。 ポインタファイルの作成の仕方を誤っているのか、それ以降の手順で間違いを犯しているのか、問題の切り分けのために、アドバイスを頂けませんでしょうか? # 拡張機能開発の話題と判断しましたので、トピックを移動しました。by Moderator Hide |
作成者: | mitsugu [ 2009年10月23日(金) 05:28 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
考えることのできるケースとしては以下のようなものでしょうか ( 他にもあるかもしれませんが )。 1.xpi パッケージ内のディレクトリ構造が正しくない 2.install.rdf の記述がおかしい 3.chrome.manifest の記述がおかしい 4.browser.xul に正しくオーバライドできていない Console に何も表示されない、ということですから個人的には「2 が怪しいかな?」と思いますが、断言するだけの材料がありません。可能なら xpi パッケージをまるごと見せていただければ何かわかるかもしれません。 Add-ons にも Console にも何も現れないということであれば、まずは Piro さんのサイトで公開されている PDF 文書を読んで ( Software Design 誌に掲載された入門テキストです )、正しくパッケージングされているか確認することから始めた方がいいかもしれません。 それと参照元サイトの記述で気をつけた方がいいのは、"/Users/ntaku/extensions/〜" と書かれているのは、記事を書かれている方固有の環境なので、"/Users/ntaku/extensions/hello" ではなく、"hello" と読みかえた方がよさげです。"hello/install.rdf" といった具合にです。ちなみに Windows 環境では "hello\install.rdf" と読みかえることになります (¥マークが入らない orz)。 それと Console は AMO から Console2 をインストールして、置き換えておいた方が "about:config" でいろいろパラメータを変更するより楽ですよ。まぁ、同じ状態になる、というだけの話しですが。 # ポインタファイルとは何でしょう? |
作成者: | ten13 [ 2009年10月23日(金) 14:38 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
mitsugu さんが書きました: それと参照元サイトの記述で気をつけた方がいいのは、"/Users/ntaku/extensions/〜" と書かれているのは、記事を書かれている方固有の環境なので、"/Users/ntaku/extensions/hello" ではなく、"hello" と読みかえた方がよさげです。"hello/install.rdf" といった具合にです。ちなみに Windows 環境では "hello\install.rdf" と読みかえることになります (¥マークが入らない orz)。
# ポインタファイルとは何でしょう? アドバイスをありがとうございます。出来るだけ単純なケースを試したいと思い、今のところはパッケージ化せずに、より簡易的なインストールを試しております。 開発用ディレクトリをつくり、そこに install.rdf, content/ 等を作成。 ディレクトリ <my_profile_directory>/extensions に 開発用ディレクトリを指し示すテキストファイル <my_extension_ID_name> を作り、中には絶対パス C:\MyDocs\home\Firefox3\hello を書き込む。 FFを再起動。 以上で、アドオンマネージャに自分の拡張機能が表示されるかと思いきや、表示されず悩んでおります。 #「ポインタファイル」というのは、正式な名称ではないのですね。失礼しました。 |
作成者: | Cai [ 2009年10月23日(金) 14:57 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
ten13 さんが書きました: アドバイスをありがとうございます。出来るだけ単純なケースを試したいと思い、今のところはパッケージ化せずに、より簡易的なインストールを試しております。
開発用ディレクトリをつくり、そこに install.rdf, content/ 等を作成。 ディレクトリ <my_profile_directory>/extensions に 開発用ディレクトリを指し示すテキストファイル <my_extension_ID_name> を作り、中には絶対パス C:\MyDocs\home\Firefox3\hello を書き込む。 パッケージ化しない手順としては合ってると思います。 アドオンマネージャにも出てこないとなると install.rdf あるいは chrome.manifest の中身がおかしいのではないでしょうか? chrome.manifest コード: content hello content/
overlay chrome://browser/content/browser.xul chrome://hello/content/overlay.xul content/ のスラッシュを忘れてるとか、オーバーレイの指定を間違えてるとか、あるいは install.rdf で ID 指定を間違えてるとか… |
作成者: | Ten13 [ 2009年10月23日(金) 16:32 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
返信をありがとうございます。参考にしたサイトをそのままコピー&ペイストしているので、間違いないと思いこんでしまっているフシはあるのですが。
の二点から、もしかしてFF3自体を再インストールした方がよいのか、とも考えております。 一応、配置した全ファイルを貼り付けてみます。 chrome.manifest コード: content hello content/ overlay chrome://browser/content/browser.xul chrome://hello/content/overlay.xul install.rdf コード: <?xml version="1.0"?> <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <RDF:Description RDF:about="urn:mozilla:install-manifest"> <em:id>hello@ntaku.development.rdf</em:id> <em:name>hello</em:name> <em:version>0.1</em:version> <em:description>SampleApplication</em:description> <em:creator>ntaku</em:creator> <em:targetApplication> <RDF:Description em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" em:minVersion="3.0" em:maxVersion="3.5.*" /> </em:targetApplication> </RDF:Description> </RDF:RDF> content/overlay.js コード: var Hello = { init: function(){ var doc = window.content.document; var p = doc.getElementById("hello-popup"); if(!p){ var popup = doc.createElement("div"); popup.setAttribute("id", "hello-popup"); doc.body.appendChild(popup); p = doc.getElementById("hello-popup"); } var s = p.style; s.position = "absolute"; s.top = 0; s.left = 0; s.width = "100%"; s.background = "#fff398"; p.innerHTML = "<div>Hello Work!</div>"; } }; content/overlay.xul コード: <?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="chrome://hello/content/overlay.js" /> <popup id="contentAreaContextMenu"> <menuitem id="hello-menu" label="HELLO!" oncommand="Hello.init();" /> </popup> </overlay> |
作成者: | mitsugu [ 2009年10月23日(金) 17:12 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
【ポインタファイルの件】 なるほど。Software Design 2007 年 4 月号の五味渕さんの記事に書かれてますね。気がつきませんでした。申し訳ありません。 ポインタファイルが関係しているかもしれませんので、ポインタファイル名とその内容も張り付けていただけますか? 参考までに五味渕さんが書かれたオリジナルの記事から抜粋します。 引用: まず,現在使用しているプロファイルのプロファイルフォルダ(注5)内の「extensions」というフォルダへ,インストールマニフェストへ記述したHelloworld拡張機能のID「helloworld@xuldev.org」をファイル名として,新規ファイルを作成します.次に,そのファイルに拡張機能のソースファイルを配置した作業用フォルダのフルパス「C:¥extensions¥helloworld」を記述します. なんとなくですが、ポインタファイル内のパス名の typo とかはないでしょうか。 【Firefox が素に起動されてしまう件】 オフトピになってしまうのですが Ten13さん さんが書きました: firefox.exe -ProfileManager を実行してもプロファイルマネージャーは立ち上がらず、代わりに新たにもう一つのFirefoxが立ち上がってしまう。
というのは単純に Firefox のプロセスが残存していないでしょうか?残存しているならタスクマネージャでプロセスを一度削除してみてください。 # プロファイルに直接ファイルを置こうとされているので、デバッグ中は多少は Firefox が不安定になるのは、やむを得ないと思います。 # 新規プロファイルでテストを継続されればよいかと思います。 |
作成者: | mitsugu [ 2009年10月23日(金) 18:12 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
環境は異なりますが、Ten13 さんが提示されたソースをコピペして動作しました。 以下ディレクトリ構成です。Ubuntu 上でテストしましたのでパス名を Ten13 さんの Windows 環境のものと適宜読みかえてください。 /home/user_name/hello /home/user_name/hello/chrome.manifest /home/user_name/hello/install.rdf /home/user_name/hello/content /home/user_name/hello/content/overlay.js /home/user_name/hello/content/overlay.xul ポインタファイルは以下のような感じです。Windows XP とは当然パスが異なります。 /home/user_name/.mozilla/firefox/qp3jpfih.test/extensions/hello@ntaku.development.rdf コード: /home/user_name/hello
ちょっと気になることを思い付きました。XP ならパス名に半角スペースが混ざってませんか?( ユーザのマイドキュメントが "Document and Settings" というディレクトリ以下にあったように記憶しています) もしそうならパス名をダブルコーテーションで囲むとどうなりますか? |
作成者: | Ten13 [ 2009年10月23日(金) 18:39 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
mitsugu さんが書きました: 【ポインタファイルの件】 ポインタファイルが関係しているかもしれませんので、ポインタファイル名とその内容も張り付けていただけますか? なんとなくですが、ポインタファイル内のパス名の typo とかはないでしょうか。 試行錯誤しているうちに、install.rdf の筈が index.rdf というファイル名で作ってしまっていたので(お恥ずかしい)以降、ファイル名も出来るだけ、コピーして作るようにしております。 hello@ntaku.development.rdf コード: C:\MyDocs\home\Firefox3\hello mitsugu さんが書きました: 【Firefox が素に起動されてしまう件】
オフトピになってしまうのですが Ten13さん さんが書きました: firefox.exe -ProfileManager を実行してもプロファイルマネージャーは立ち上がらず、代わりに新たにもう一つのFirefoxが立ち上がってしまう。 というのは単純に Firefox のプロセスが残存していないでしょうか?残存しているならタスクマネージャでプロセスを一度削除してみてください。 なるほど。デフォルトプロファイルでFirefoxを起動させた上で、上記のコマンドを入力しておりました。プロセスがない状態で入力したら、問題なくプロファイルマネージャーが起動し、この点は氷解しました。ありがとうございます。 |
作成者: | mitsugu [ 2009年10月23日(金) 18:51 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
以下のことを確認させてください。 1."C:\MyDocs" は Ten13 さんが作成され読み書きの権限を持っている 2."C:\MyDocs\home" は Ten13 さんが作成され読み書きの権限を持っている 3."C:\MyDocs\home\Firefox3" は Ten13 さんが作成され読み書きの権限を持っている 4."C:\MyDocs\home\Firefox3\hello" は Ten13 さんが作成され読み書きの権限を持っている 5.上記すべてに typo がない |
作成者: | Ten13 [ 2009年10月23日(金) 21:16 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
Windowsの「制限ユーザ」で試みていて上手くいかなかったので、「コンピュータの管理者」にアカウントの種類を変更した上で、昨日まで試していたので、確かにディレクトリのパーミッションは怪しい! ということで早速試してみました。 下記のフォルダそれぞれに、"新規テキスト ドキュメント.txt" C:\ C:\MyDocs\ C:\MyDocs\home\ C:\MyDocs\home\Firefox3\ C:\MyDocs\home\Firefox3\hello\ C:\MyDocs\home\Firefox3\hello\content を貼り付けることが出来たので、書き込み権限はあると思います。 が、フォルダのプロパティを参照してみると「読み取り専用」がチェックされており、サブフォルダも含めて読み取り専用属性を外しても、 もう一度プロパティを開いてみると、依然としてチェックされている状態です。 とすると、これはWindowsの設定の問題になるのでしょうか? |
作成者: | mitsugu [ 2009年10月24日(土) 06:11 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
ちょっと思い付いたんですが以下のようにするとどうなりますか? 1."hello" ディレクトリ内の全てのファイル、ディレクトリを、まるごとそのまま zip でアーカイブする 2.zip アーカイブファイルを hello.xpi というファイル名に変更 3.hello.xpi を Firefox に D&D 少なくとも上記の方法だと、環境依存のトラブルは生じないはずです。これにより問題を環境依存かそうでないかを切り分けることが期待できます。 # ちなみに zip ファイルの中身はこのような感じになります。 |
作成者: | Ten13 [ 2009年10月24日(土) 13:59 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
mitsugu さんが書きました: ちょっと思い付いたんですが以下のようにするとどうなりますか?
1."hello" ディレクトリ内の全てのファイル、ディレクトリを、まるごとそのまま zip でアーカイブする 2.zip アーカイブファイルを hello.xpi というファイル名に変更 3.hello.xpi を Firefox に D&D 少なくとも上記の方法だと、環境依存のトラブルは生じないはずです。これにより問題を環境依存かそうでないかを切り分けることが期待できます。 上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
#因みに、「今すぐインストール」をクリックする前に、いったん別のウィンドウをアクティブにしてからクリックしようとすると、新たにカウントダウンが為された後に、「今すぐインストール」ボタンが表示されます。 #このカウントダウンって何を行っているのでしょうか? |
作成者: | mitsugu [ 2009年10月24日(土) 15:40 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
Ten13さん さんが書きました: 上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
えっと、ひょっとしてフォルダごとアーカイブしていないでしょうか。フォルダごとアーカイブしてしまうと、そのようなメッセージが表示されます。 先に例示したようにフォルダの中身だけアーカイブされていますか。 Ten13さん さんが書きました: #因みに、「今すぐインストール」をクリックする前に、いったん別のウィンドウをアクティブにしてからクリックしようとすると、新たにカウントダウンが為された後に、「今すぐインストール」ボタンが表示されます。
#このカウントダウンって何を行っているのでしょうか? Firefox の仕様です。拡張をインストールさせる時に必ずワンクッション置くようになっています。効果があるかどうかはわかりませんが、拡張のインストールを一考させるために 3 秒間 ( で正しかったかどうか自信がありませんが ) はインストールボタンを押せないようになっています。 |
作成者: | Ten13 [ 2009年10月24日(土) 16:12 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
mitsugu さんが書きました: Ten13さん さんが書きました: 上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
えっと、ひょっとしてフォルダごとアーカイブしていないでしょうか。フォルダごとアーカイブしてしまうと、そのようなメッセージが表示されます。 先に例示したようにフォルダの中身だけアーカイブされていますか。 おっしゃる通り、hello/ をアーカイブしておりました。失礼致しました。 中身だけアーカイブして試したところ、めでたくインストールが正常終了しました。 正常終了しなかった場合は Firefox に問題があるわけですが、正常にインストールできたので、依然として切り分けは出来ないと言うことですよねぇ。 |
作成者: | mitsugu [ 2009年10月24日(土) 17:58 ] |
記事の件名: | Re: 拡張機能 Hello Work のテストインストール |
Ten13さん さんが書きました: 正常終了しなかった場合は Firefox に問題があるわけですが、正常にインストールできたので、依然として切り分けは出来ないと言うことですよねぇ。
"正常終了" というのがどれを指しているのかが分かりかねますが、少なくとも xpi ファイルにパッケージングしてインストールでき、動作したのであれば、これまでの問題の根源は、ポインタ・ファイルもしくは環境のいずれかであり、Hello Work 本体の問題ではなかった、と言えますね。一歩前進されたのではないでしょうか。 |
ページ 1 / 2 | All times are UTC + 9 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |