5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Mozillaでプログラミング(XUL) その3

1 :デフォルトの名無しさん:2006/11/27(月) 20:00:38
オラ拡張作る。

XULはXMLベースのUI記述言語です。
Mozilla、Firefox、Thunderbird、Netscape等の
Gecko系のソフトウェアために開発されました。

このスレはXUL、JavaScriptで利用できるXPCOM、
拡張の作り方などを主に話しあうスレです。

前スレ
Mozillaでプログラミング(XUL) その2
http://pc8.2ch.net/test/read.cgi/tech/1102172958/
姉妹スレ
Geckoベースのブラウザを作ろう
http://pc5.2ch.net/test/read.cgi/tech/1023546699/l50

参考サイト
Mozilla Developer Center
http://developer.mozilla.org/
XULPlanet
http://www.xulplanet.com/

過去スレ
Mozillaでプログラミング(XUL)
http://pc5.2ch.net/test/read.cgi/tech/1019704370/

>>2-50あたりに関連リンク、近況などがあるかも。

2 :デフォルトの名無しさん:2006/11/27(月) 20:11:57
ずるしてらくしてかれいに2げっとかしらかしら〜

3 :デフォルトの名無しさん:2006/11/27(月) 22:45:42
XULはMozilla Corporationの商標だぞ
勝手に使うなよ

4 :デフォルトの名無しさん:2006/11/27(月) 22:50:46
There is no data.
There is only xul.

5 :デフォルトの名無しさん:2006/11/27(月) 23:30:50
>>3
商標についての知識が皆無のようだね。

6 :デフォルトの名無しさん:2006/11/28(火) 08:52:48
XUL® でいいのか?

7 :デフォルトの名無しさん:2006/11/28(火) 16:36:43
2chって™とか ™ って表示されないんだっけ?
♥は出るのにな

8 :デフォルトの名無しさん:2006/11/28(火) 16:38:01
お 出るじゃんXUL™

9 :デフォルトの名無しさん:2006/12/01(金) 14:56:41
そもそも>>3も勝手に使ってる件w

10 :デフォルトの名無しさん:2006/12/02(土) 22:59:39
var foo.prototype = {
hoge: function foo_hoge(){
...
}
}
のような書き方をよく目にしますが、foo_hogeにはどういう意味があるのでしょうか?

11 :デフォルトの名無しさん:2006/12/02(土) 23:59:19
foo_hogeでググれ

12 :デフォルトの名無しさん:2006/12/03(日) 00:23:28
いや、
foo.prototype = {
hoge: function(){
...
}
};
ではなく、
foo.prototype = {
hoge: function foo_hoge(){
...
}
};
とすることに意味はあるのか、ということを知りたいのです。

13 :デフォルトの名無しさん:2006/12/03(日) 02:28:12
デバッグがしやすくなる。
XPConnectに絡んだエラーが出たときとか、
関数名があればそれがエラーコンソールに出てくるから、
それを見ただけで大体の場所がわかる。

14 :デフォルトの名無しさん:2006/12/03(日) 04:35:35
>>11
ちょっとワラタ

15 :デフォルトの名無しさん:2006/12/04(月) 01:30:41
>11
思ったより検索結果が少ないことに驚いてるぜ俺。

16 :デフォルトの名無しさん:2006/12/06(水) 17:16:32
XUL Tutorialを読んでXPCOMを試しているんですけど、エラーになって困ってます。
TutorialのXPCOMのページにある最初の例
var aFile = Components.classes["@mozilla.org/file/local;1"].createInstance();
if (afile) aFile.queryInterface(Components.interfaces.nsILocalFile);
を試しているんですけど、
Error: uncaught exception: Permission denied to get property UnnamedClass.classes
というエラーがでてしまい、先に進めません。
どうやら Compoments.classes というところでエラーになっているようです。
alert(Components.classes); // これでエラーになる
どなたかアドバイスお願いします。


17 :デフォルトの名無しさん:2006/12/06(水) 17:27:14
すいません、ぐぐったら
http://www.xulplanet.com/tutorials/xulqa/q_pdenyucc.html
そのままありました。
しかし原因はわかりましたが、解決策がいまいちわかりません。
chromeにする、みたいなことがかいてあるんですが。どうするんだろ。

18 :デフォルトの名無しさん:2006/12/06(水) 18:12:11
Mozillaでプログラミング(XUL) その2
http://pc8.2ch.net/test/read.cgi/tech/1102172958/952-956
952 名前:デフォルトの名無しさん 投稿日:2006/10/22(日) 22:35:33
user_pref("capability.principal.myapp.id","http://www.example.com/");
user_pref("capability.principal.myapp.granted","UniversalXPConnect");

こんな感じでローカルファイルではなくて外部のURLにXPConnectの特権を与えることはできないのでしょうか?


953 名前:デフォルトの名無しさん 投稿日:2006/10/23(月) 13:39:48
>952
これはどう?
ttp://piro.sakura.ne.jp/latest/blosxom.cgi/webtech/javascript/2006-06-27_unsinged-script.htm

19 :デフォルトの名無しさん:2006/12/07(木) 22:07:45
>>16

http://developer.mozilla.org/ja/docs/XUL_Tutorial:Manifest_Files

を参考に、マニフェストファイルを作成して、適当なディレクトリを
chrome に登録する。

そこに、置いたファイルが chrome: で始まる URL でアクセスできたら、XPCOM の例は
確認できると思うけど、その前に、

ttp://piro.sakura.ne.jp/xul/tips/x0000-2.html

を読んでおいた方が無用な苦労をしなくてすむかも。

20 :17:2006/12/08(金) 01:13:34
>>18をヒントにいろいろ検索し、以下のようにすることでできるようになりました。
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
ただし、毎回確認ダイアログがでます。署名付きスクリプトにすればいいみたいですが、よくわかりません。
ローカルのxulファイルを実行しているときは、他のローカルファイルにもアクセスできてほしいんですけど、きっとそういうわけにはいかないんでしょうね。

それで、今度はnsILocalFileオブジェクトの使い方がわかりません。XULPlanetのXPCOMリファレンスを参考にしているのですが、エラーになります。
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var aFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
aFile.initWithPath('example.txt'); // ここでエラー

エラー内容は次のとおりです。
Error: uncaught exception: [Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)
[nsILocalFile.initWithPath]" nsresult: "0x80520001
(NS_ERROR_FILE_UNRECOGNIZED_PATH)" location: "JS frame :: file://localhost/Users/wada/tmp/xul/tut1.xul :: test1 :: line 218" data: no]

UNRECOGNIZED_PATHだとあるんですけど、どういう意味でしょうか。もちろんexample.txtは存在します。
教えてくんで申し訳ありませんが、アドバイスいただけないでしょうか。


21 :17:2006/12/08(金) 01:15:08
>>19
ああ、新しいレスがあったんですね。すみません。
今から読んでchromeとやらを勉強します。


22 :デフォルトの名無しさん:2006/12/08(金) 01:17:59
>>20
ちゃんとnsILocalFileで検索したのかな?
XULPlanetのインターフェースリファレンスを見ればいいんだけど。

http://www.xulplanet.com/references/xpcomref/ifaces/nsILocalFile.html#method_initWithPath
Arguments:
filePath: A string which specifies a full file path to a location.

23 :デフォルトの名無しさん:2006/12/08(金) 04:23:32
20>>
22>>
チュートリアルにも加えておきました。

そういや、
http://developer.mozilla.org/ja/docs/XUL_Tutorial:Templates
にあるような特権の説明、XPCOMのセクションにも加えたほ方が良いのかな?

なんで、テンプレートにあるんだろうと思ったら、
昔はテンプレートの方が XPCOM より前のセクションだったみたいですね。

24 :デフォルトの名無しさん:2006/12/08(金) 21:03:03
XPCOMで遊ぶならMCRでidl定義を見るのもいい方法だ
ttp://lxr.mozilla.org/mozilla/

25 :デフォルトの名無しさん:2006/12/08(金) 21:50:16
というかドキュメントが糞過ぎて見ないと分らない罠。

26 :デフォルトの名無しさん:2006/12/09(土) 10:47:09
最終的にはソースを読むことになるんだけどな

27 :デフォルトの名無しさん:2006/12/10(日) 16:27:45
そーっすね

28 :デフォルトの名無しさん:2006/12/11(月) 16:44:13
>>1に追加すべき日本語の資料って

XUL Tutorial 日本語版
http://developer.mozilla.org/ja/docs/XUL_Tutorial
XUL Wiki
http://wiki.fdiary.net/xul/
XUL Apps > Tips&Technics - outsider reflex (やや古め?)
http://piro.sakura.ne.jp/xul/tips/

あたりかな?ほかになんかある?

29 :デフォルトの名無しさん:2006/12/11(月) 18:42:29
XULアプリケーション作成入門
http://www.mozilla.gr.jp/~kazhik/xul/tutorial.html

30 :デフォルトの名無しさん:2006/12/11(月) 18:43:45
連投になってスマソ
Mozilla 資料 - コアアーキテクチャ: XUL
http://www.mozilla-japan.org/catalog/architecture/xul/

31 :デフォルトの名無しさん:2006/12/13(水) 18:52:01
Code snippets
ttp://developer.mozilla.org/en/docs/Code_snippets

mozillaZineから移してるみたい
ttp://kb.mozillazine.org/Category:Example_code

32 :デフォルトの名無しさん:2006/12/13(水) 19:11:53
便利かもしれない開発ツール

○拡張○
Extension Developer's Extension
http://ted.mielczarek.org/code/mozilla/extensiondev/
XPXOMViewer
http://xpcomviewer.mozdev.org/

○Eclipse○
EclipseXUL(XULRunnerアプリの開発向け)
http://eclipsexul.sourceforge.net/
XulBooster(Firefox用拡張の開発向け)
http://cms.xulbooster.org/

33 :デフォルトの名無しさん:2006/12/13(水) 19:13:59
ぎゃあ、XPXOMViewerってなんだよ・・・
元のページのタイトルが間違ってんじゃん・・・
正しくはXPCOMViewerってことで

34 :デフォルトの名無しさん:2006/12/14(木) 00:44:13
>>33
言われるまで気づかなかった

35 :デフォルトの名無しさん:2006/12/14(木) 14:18:20
これってXPCOM Component Viewerとは別物なの?

36 :デフォルトの名無しさん:2006/12/14(木) 23:26:03
Component Object Model Component Viewer って変な感じ

37 :デフォルトの名無しさん:2006/12/17(日) 21:33:36
地域化(locale)が全く出来ません。
.batファイルでスクリプトを書いてパックしてるんだけど・・・
パック後じゃないと内容は確認できないの?

38 :デフォルトの名無しさん:2006/12/18(月) 23:15:53
chrome.manifestかinstall.rdfが間違ってるんじゃないの?

39 :デフォルトの名無しさん:2006/12/18(月) 23:30:13
デバッグ中はxpiにしなくても良い

40 :デフォルトの名無しさん:2006/12/19(火) 21:51:57
じゃぁデバッグ中はchrome.menifestとかcontent.rdfは関係ないの?

41 :デフォルトの名無しさん:2006/12/19(火) 23:00:03
関係ある。chrome.manifestとinstall.rdfは必須。
content.rdfなんてものは捨ててしまえ。

42 :デフォルトの名無しさん:2006/12/19(火) 23:00:34
もっと素朴な疑問
そもそも拡張機能のデバッグってどうやってるの?

43 :デフォルトの名無しさん:2006/12/20(水) 20:15:35
dumpでエラーを監視する

44 :デフォルトの名無しさん:2006/12/23(土) 14:25:15
>>41
やってみる

45 :デフォルトの名無しさん:2006/12/23(土) 23:20:57
chrome://hoge/content/hoge.jarって、「jar」で必須?
http://developer.mozilla.org/ja/docs/Building_an_Extension#.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E5.8C.96
これだとjar圧縮は必要なくてrootディレクトリをzip→.xpiにリネームだけで済むらしい。
みんなどっち?

46 :デフォルトの名無しさん:2006/12/23(土) 23:37:50
そもそもいろいろなことに目をつむれば圧縮する必要すらないわけだが。

47 :デフォルトの名無しさん:2006/12/23(土) 23:55:36
jarは必須ではない。

48 :デフォルトの名無しさん:2006/12/24(日) 02:05:50
>>45
圧縮しなくてもいいが圧縮(無圧縮ね)したほうがパフォーマンスがいい

49 :デフォルトの名無しさん:2006/12/24(日) 10:39:30
jarにしない場合、
chromeFiles/content/xxx/
chromeFiles/skin/xxx/
っていうディレクトリ構成が一般的だが、chrome.manifestが正しければ
content/
skin/
でも問題ない。

50 :デフォルトの名無しさん:2006/12/24(日) 11:11:51
>>49
その一般的って言うのはどこかで推奨されてる?
Greasemonkeyがそんな構成になってたと思うけど
そうする明確な理由があるなら知りたい。

51 :デフォルトの名無しさん:2006/12/24(日) 12:35:18
>>50
chrome.manifestの指定に従ってるだけだから
別にどう作ってもいいんじゃね
拡張ごとにてんでバラバラじゃん
デフォルト値だけはdefaults/preferences/default.jsに決まっているみたいだけど


52 :デフォルトの名無しさん:2006/12/26(火) 02:21:49
ファイルのドラッグ&ドロップに反応したいのですが、内部のjsファイルとXPCOM Referenceを見ながら探してもどうすればいいのか分からないのですが…
私ってダメな子なんでしょうか…orz


53 :デフォルトの名無しさん:2006/12/26(火) 19:23:51
XULチュートリアルのドラッグ&ドロップの章を
見ながらやってみるといいと思う


54 :デフォルトの名無しさん:2006/12/27(水) 00:43:50
ドラッグ&ドロップは、チュートリアルには難しいという
ことなのか、最近のものでは外れていますんで、
日本語訳を読みたいのなら MDC ではなく、旧訳の方をどうぞ...

ttp://xul-app.hp.infoseek.co.jp/xultu-janit/dragdrop.html

55 :デフォルトの名無しさん:2006/12/27(水) 11:39:19
実際に使うのは多分これだね
ttp://xul-app.hp.infoseek.co.jp/xultu-janit/dragwrap.html


56 :デフォルトの名無しさん:2006/12/27(水) 22:31:39
今までの流れです

XPCOM Reference でDrag and DropのAPI群を見つける
     ↓
これだけだと何のことか分からないのでjsファイルを全文検索
     ↓
nsDragAndDropを発見、さらに検索
     ↓
onDrop属性発見、onDrop="alert('Hello,Drop')"とか書いて試してみる、がなんか動かない
     ↓
ondragover="nsDragAndDrop.dragOver(event,textObserver)"とかやればいいのね、アラ、動かない。
     ↓
直しては試しながら、頓挫

というカンジでしたが>>44>>45あたりのリンクのおかげで解決いたしました。
なんというか、努力不足でした、スイマセン。


57 :デフォルトの名無しさん:2006/12/27(水) 22:32:39
> というカンジでしたが>>44>>45あたりのリンク
54、55ですね

58 :デフォルトの名無しさん:2006/12/30(土) 00:57:48
chrome://xxx/content/test.jsからchrome://xxx/content/file.txtのファイルを
読みたいのですが、ファイルパスを得るにはどのようにすればよいでしょうか?
nsIDirectoryServiceを使ってProfDからextensionsフォルダ、GUIフォルダと探った
としてもその先がわかりません。

15 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)