― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 20 件の記事 ]  ページ移動 1, 2  次へ
作成者 メッセージ
投稿記事Posted: 2009年10月23日(金) 01:48 
Windows XP Pro SP3 + FF3.5.3 を使っております。

簡単な拡張機能を作ってみようと、新規プロファイル test を作成し、デバグ用に about:config で設定した上で、
先ずはBuilding an Extensionの代わりに、より単純そうなadd-on 開発入門
を試して再起動させてみたのですが、アドオンマネージャには何も現れません。
エラーコンソールを確認したところ、「すべて」を表示させても、アドオンに関するメッセージは特に出力されず。

新たに別のプロファイルを作成して試みたところ、一度だけアドオンマネージャーに所望のアドオンが表示されたのですが、
一旦ポインタファイルを移動させて再起動させた後、再び元のディレクトリに戻して再起動させても、
二度とそのアドオンが表示されることはなく、再現させられないという状況です。

ポインタファイルの作成の仕方を誤っているのか、それ以降の手順で間違いを犯しているのか、問題の切り分けのために、アドバイスを頂けませんでしょうか?

# 拡張機能開発の話題と判断しましたので、トピックを移動しました。by Moderator Hide


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 05:28 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 考えることのできるケースとしては以下のようなものでしょうか ( 他にもあるかもしれませんが )。
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" でいろいろパラメータを変更するより楽ですよ。まぁ、同じ状態になる、というだけの話しですが。

# ポインタファイルとは何でしょう?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 14:38 
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を再起動。

以上で、アドオンマネージャに自分の拡張機能が表示されるかと思いきや、表示されず悩んでおります。

#「ポインタファイル」というのは、正式な名称ではないのですね。失礼しました。


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 14:57 
オフライン
Administrator

登録日時: 2005年6月23日(木) 23:29
記事: 2743
お住まい: 東京
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 指定を間違えてるとか…

_________________
[Desktop] Windows 10 Pro 22H2 (64bit) / Intel Core i7-2600 / Nvidia GeForce GTX 1650 GDDR6 / 32 GB Memory
[Laptop] Windows 10 Pro 22H2 (64bit) / Intel Core i5-520M vPro / Intel HD Graphics / 8 GB Memory
[Android] Android 13.0 (arm64) / Xperia 5 III (XQ-BQ42)
常用環境: Firefox ベータ版、リリース版 (Win64 x86-64, Android), Thunderbird ベータ版、リリース版 (Win64 x86-64)
テスト環境: Firefox (ESR, Nightly, Win64 x86-64, Android)

Cai/1.0 (Homo sapiens; N; Homo sapiens chemist; male; rv:0.0.4.2+)
-- いつまでたっても nightly


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 16:32 
返信をありがとうございます。参考にしたサイトをそのままコピー&ペイストしているので、間違いないと思いこんでしまっているフシはあるのですが。

    アドオンマネージャに一旦は表示された後、アンインストールの後に再インストールを試みても、再現されない。
    firefox.exe -ProfileManager を実行してもプロファイルマネージャーは立ち上がらず、代わりに新たにもう一つのFirefoxが立ち上がってしまう。

の二点から、もしかして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>


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 17:12 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
【ポインタファイルの件】
 なるほど。Software Design 2007 年 4 月号の五味渕さんの記事に書かれてますね。気がつきませんでした。申し訳ありません。
 ポインタファイルが関係しているかもしれませんので、ポインタファイル名とその内容も張り付けていただけますか?
 参考までに五味渕さんが書かれたオリジナルの記事から抜粋します。
引用:
 まず,現在使用しているプロファイルのプロファイルフォルダ(注5)内の「extensions」というフォルダへ,インストールマニフェストへ記述したHelloworld拡張機能のID「helloworld@xuldev.org」をファイル名として,新規ファイルを作成します.次に,そのファイルに拡張機能のソースファイルを配置した作業用フォルダのフルパス「C:¥extensions¥helloworld」を記述します.

 なんとなくですが、ポインタファイル内のパス名の typo とかはないでしょうか。


【Firefox が素に起動されてしまう件】
 オフトピになってしまうのですが
Ten13さん さんが書きました:
firefox.exe -ProfileManager を実行してもプロファイルマネージャーは立ち上がらず、代わりに新たにもう一つのFirefoxが立ち上がってしまう。

というのは単純に Firefox のプロセスが残存していないでしょうか?残存しているならタスクマネージャでプロセスを一度削除してみてください。

# プロファイルに直接ファイルを置こうとされているので、デバッグ中は多少は Firefox が不安定になるのは、やむを得ないと思います。
# 新規プロファイルでテストを継続されればよいかと思います。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 18:12 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 環境は異なりますが、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" というディレクトリ以下にあったように記憶しています)
 もしそうならパス名をダブルコーテーションで囲むとどうなりますか?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 18:39 
mitsugu さんが書きました:
【ポインタファイルの件】
 ポインタファイルが関係しているかもしれませんので、ポインタファイル名とその内容も張り付けていただけますか?
 なんとなくですが、ポインタファイル内のパス名の typo とかはないでしょうか。

試行錯誤しているうちに、install.rdf の筈が index.rdf というファイル名で作ってしまっていたので(お恥ずかしい)以降、ファイル名も出来るだけ、コピーして作るようにしております。
hello@ntaku.development.rdf
コード:
C:\MyDocs\home\Firefox3\hello


mitsugu さんが書きました:
【Firefox が素に起動されてしまう件】
 オフトピになってしまうのですが
Ten13さん さんが書きました:
firefox.exe -ProfileManager を実行してもプロファイルマネージャーは立ち上がらず、代わりに新たにもう一つのFirefoxが立ち上がってしまう。

というのは単純に Firefox のプロセスが残存していないでしょうか?残存しているならタスクマネージャでプロセスを一度削除してみてください。

なるほど。デフォルトプロファイルでFirefoxを起動させた上で、上記のコマンドを入力しておりました。プロセスがない状態で入力したら、問題なくプロファイルマネージャーが起動し、この点は氷解しました。ありがとうございます。


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 18:51 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 以下のことを確認させてください。
1."C:\MyDocs" は Ten13 さんが作成され読み書きの権限を持っている
2."C:\MyDocs\home" は Ten13 さんが作成され読み書きの権限を持っている
3."C:\MyDocs\home\Firefox3" は Ten13 さんが作成され読み書きの権限を持っている
4."C:\MyDocs\home\Firefox3\hello" は Ten13 さんが作成され読み書きの権限を持っている
5.上記すべてに typo がない


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月23日(金) 21:16 
Windowsの「制限ユーザ」で試みていて上手くいかなかったので、「コンピュータの管理者」にアカウントの種類を変更した上で、昨日まで試していたので、確かにディレクトリのパーミッションは怪しい!
ということで早速試してみました。

下記のフォルダそれぞれに、"新規テキスト ドキュメント.txt"
C:\
C:\MyDocs\
C:\MyDocs\home\
C:\MyDocs\home\Firefox3\
C:\MyDocs\home\Firefox3\hello\
C:\MyDocs\home\Firefox3\hello\content
を貼り付けることが出来たので、書き込み権限はあると思います。

が、フォルダのプロパティを参照してみると「読み取り専用」がチェックされており、サブフォルダも含めて読み取り専用属性を外しても、
もう一度プロパティを開いてみると、依然としてチェックされている状態です。
とすると、これはWindowsの設定の問題になるのでしょうか?


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月24日(土) 06:11 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 ちょっと思い付いたんですが以下のようにするとどうなりますか?

1."hello" ディレクトリ内の全てのファイル、ディレクトリを、まるごとそのまま zip でアーカイブする
2.zip アーカイブファイルを hello.xpi というファイル名に変更
3.hello.xpi を Firefox に D&D

 少なくとも上記の方法だと、環境依存のトラブルは生じないはずです。これにより問題を環境依存かそうでないかを切り分けることが期待できます。

# ちなみに zip ファイルの中身はこのような感じになります。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月24日(土) 13:59 
mitsugu さんが書きました:
 ちょっと思い付いたんですが以下のようにするとどうなりますか?

1."hello" ディレクトリ内の全てのファイル、ディレクトリを、まるごとそのまま zip でアーカイブする
2.zip アーカイブファイルを hello.xpi というファイル名に変更
3.hello.xpi を Firefox に D&D

 少なくとも上記の方法だと、環境依存のトラブルは生じないはずです。これにより問題を環境依存かそうでないかを切り分けることが期待できます。


上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
    Firefox はファイルをインストールできませんでした。原因: インストールスクリプトが見つかりません
と表示されます。

#因みに、「今すぐインストール」をクリックする前に、いったん別のウィンドウをアクティブにしてからクリックしようとすると、新たにカウントダウンが為された後に、「今すぐインストール」ボタンが表示されます。
#このカウントダウンって何を行っているのでしょうか?


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月24日(土) 15:40 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
Ten13さん さんが書きました:
上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
    Firefox はファイルをインストールできませんでした。原因: インストールスクリプトが見つかりません
と表示されます。

 えっと、ひょっとしてフォルダごとアーカイブしていないでしょうか。フォルダごとアーカイブしてしまうと、そのようなメッセージが表示されます。 先に例示したようにフォルダの中身だけアーカイブされていますか。

Ten13さん さんが書きました:
#因みに、「今すぐインストール」をクリックする前に、いったん別のウィンドウをアクティブにしてからクリックしようとすると、新たにカウントダウンが為された後に、「今すぐインストール」ボタンが表示されます。
#このカウントダウンって何を行っているのでしょうか?

 Firefox の仕様です。拡張をインストールさせる時に必ずワンクッション置くようになっています。効果があるかどうかはわかりませんが、拡張のインストールを一考させるために 3 秒間 ( で正しかったかどうか自信がありませんが ) はインストールボタンを押せないようになっています。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年10月24日(土) 16:12 
mitsugu さんが書きました:
Ten13さん さんが書きました:
上記を試したところ「ソフトウェアのインストール」ウィンドウが表示され、「今すぐインストール」を選択すると
    Firefox はファイルをインストールできませんでした。原因: インストールスクリプトが見つかりません
と表示されます。

 えっと、ひょっとしてフォルダごとアーカイブしていないでしょうか。フォルダごとアーカイブしてしまうと、そのようなメッセージが表示されます。 先に例示したようにフォルダの中身だけアーカイブされていますか。

おっしゃる通り、hello/ をアーカイブしておりました。失礼致しました。
中身だけアーカイブして試したところ、めでたくインストールが正常終了しました。

正常終了しなかった場合は Firefox に問題があるわけですが、正常にインストールできたので、依然として切り分けは出来ないと言うことですよねぇ。


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2009年10月24日(土) 17:58 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
Ten13さん さんが書きました:
正常終了しなかった場合は Firefox に問題があるわけですが、正常にインストールできたので、依然として切り分けは出来ないと言うことですよねぇ。

 "正常終了" というのがどれを指しているのかが分かりかねますが、少なくとも xpi ファイルにパッケージングしてインストールでき、動作したのであれば、これまでの問題の根源は、ポインタ・ファイルもしくは環境のいずれかであり、Hello Work 本体の問題ではなかった、と言えますね。一歩前進されたのではないでしょうか。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 20 件の記事 ]  ページ移動 1, 2  次へ

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[30人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean