Mozillaでプログラミング(XUL) その3at TECH
Mozillaでプログラミング(XUL) その3 - 暇つぶし2ch1:デフォルトの名無しさん
06/11/27 20:00:38
オラ拡張作る。

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

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

前スレ
Mozillaでプログラミング(XUL) その2
スレリンク(tech板)
姉妹スレ
Geckoベースのブラウザを作ろう
スレリンク(tech板)l50

参考サイト
Mozilla Developer Center
URLリンク(developer.mozilla.org)
XULPlanet
URLリンク(www.xulplanet.com)

過去スレ
Mozillaでプログラミング(XUL)
スレリンク(tech板)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/12/06 17:27:14
すいません、ぐぐったら
URLリンク(www.xulplanet.com)
そのままありました。
しかし原因はわかりましたが、解決策がいまいちわかりません。
chromeにする、みたいなことがかいてあるんですが。どうするんだろ。

18:デフォルトの名無しさん
06/12/06 18:12:11
Mozillaでプログラミング(XUL) その2
スレリンク(tech板:952-956番)
952 名前:デフォルトの名無しさん 投稿日:2006/10/22(日) 22:35:33
user_pref("capability.principal.myapp.id","URLリンク(www.example.com));
user_pref("capability.principal.myapp.granted","UniversalXPConnect");

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


953 名前:デフォルトの名無しさん 投稿日:2006/10/23(月) 13:39:48
>952
これはどう?
URLリンク(piro.sakura.ne.jp)

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

URLリンク(developer.mozilla.org)

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

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

URLリンク(piro.sakura.ne.jp)

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

20:17
06/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
06/12/08 01:15:08
>>19
ああ、新しいレスがあったんですね。すみません。
今から読んでchromeとやらを勉強します。


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

URLリンク(www.xulplanet.com)
Arguments:
filePath: A string which specifies a full file path to a location.

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

そういや、
URLリンク(developer.mozilla.org)
にあるような特権の説明、XPCOMのセクションにも加えたほ方が良いのかな?

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

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

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

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

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

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

XUL Tutorial 日本語版
URLリンク(developer.mozilla.org)
XUL Wiki
URLリンク(wiki.fdiary.net)
XUL Apps > Tips&Technics - outsider reflex (やや古め?)
URLリンク(piro.sakura.ne.jp)

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

29:デフォルトの名無しさん
06/12/11 18:42:29
XULアプリケーション作成入門
URLリンク(www.mozilla.gr.jp)

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

31:デフォルトの名無しさん
06/12/13 18:52:01
Code snippets
URLリンク(developer.mozilla.org)

mozillaZineから移してるみたい
URLリンク(kb.mozillazine.org)

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

○拡張○
Extension Developer's Extension
URLリンク(ted.mielczarek.org)
XPXOMViewer
URLリンク(xpcomviewer.mozdev.org)

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

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

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

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

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

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

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

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

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

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

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

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

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

45:デフォルトの名無しさん
06/12/23 23:20:57
chrome://hoge/content/hoge.jarって、「jar」で必須?
URLリンク(developer.mozilla.org)
これだとjar圧縮は必要なくてrootディレクトリをzip→.xpiにリネームだけで済むらしい。
みんなどっち?

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

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

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

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

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

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


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


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


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

URLリンク(xul-app.hp.infoseek.co.jp)

55:デフォルトの名無しさん
06/12/27 11:39:19
実際に使うのは多分これだね
URLリンク(xul-app.hp.infoseek.co.jp)


56:デフォルトの名無しさん
06/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:デフォルトの名無しさん
06/12/27 22:32:39
> というカンジでしたが>>44>>45あたりのリンク
54、55ですね

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

59:デフォルトの名無しさん
06/12/30 12:27:49
>>58
URLリンク(piro.sakura.ne.jp)
の後半でどうですか?

60:デフォルトの名無しさん
06/12/30 16:07:47
>>59
まさにそれでした。ありがとう。

61:デフォルトの名無しさん
07/01/02 06:22:43
nsIStringBundleServiceのcreateBundleと同じような感じで、JavaScriptから
DTDファイルのローカライズされた文字列の一覧を取得することは可能でしょうか?

62:デフォルトの名無しさん
07/01/08 10:36:01
pc8.2ch.net→pc10.2ch.net
なんか鯖移転したみたいだけど、pc8のほうにはまだdatが残ってるぽい。

63:デフォルトの名無しさん
07/01/08 10:49:27
imageタグで画像を表示したらなんか引き伸ばされちゃったんですけど。
cssでの指定はどうすればいいですか。

64:デフォルトの名無しさん
07/01/08 11:26:52
>>63脳みそ腐ってたごめん。解決した。

65:デフォルトの名無しさん
07/01/22 01:26:37
flexなbox内に配置した要素のサイズがboxに引きずられて拡大縮小してしまうんだけど、どうすれば防げる?

<vbox flex="1">
<image src="xxx.png"/>
</vbox>

66:デフォルトの名無しさん
07/01/22 21:27:31
>>65
URLリンク(developer.mozilla.org)

67:デフォルトの名無しさん
07/01/23 00:21:43
>>66
さんくす

68:デフォルトの名無しさん
07/01/29 23:41:17
"@mozilla.org/process/ipc-buffer;1"
nsIIPCBuffer を使いたいのですが、自分で
作るしかないのでしょうか?

69:デフォルトの名無しさん
07/01/30 00:51:08
>>68
enigmail に入ってるやつ使えないかな

70:デフォルトの名無しさん
07/01/30 12:21:46
>>50
なぜ一般的か、っていうと、mozilla.orgの内部的な慣例ではそうなってるから、だね。
フォルダを一階層余分に付ける直接的な理由は、複数のパッケージを
同一のjarに入れたい場合があるから。

例えば、"example"という名前の拡張を作った場合、
example.jarの構成が、
content/foo/foo.xul
content/foo/foo.js
content/bar/barOverlay.xul
content/bar/barOverlay.js

で、アクセス方法が
chrome://foo/content/foo.xul
chrome://bar/content/barOverlay.xul
のような複合パッケージングがありうることを考えると、
「慣例」としては、一階層余分に付ける方が無難になる。
だって、chrome.manifestを
content foo jar:example.jar!/foo/
content bar jar:example.jar!/bar/
という風に書けるわけだから。

しかし、現実に拡張を作成する場合、そういう複雑なことをするよりは、
むしろjarを2つ作る方が便利だから、この慣例に従うメリットはない。
納得がいかなければ、en-US.jarとかを覗いてみると良くわかると思う。

まとめ
・jarに「しない」場合じゃなくて、jarに「する」場合のための慣例。
 (単に、解凍していない時のファイル構造を見る機会が少ない故の勘違いか)
 install.js時代は、インストールのスクリプトを書くのがすごく大変だったから、
 浅知恵でファイル構成を考えると、すぐインストール不可になっていたのも大きい。
・現状では無意味。

71:デフォルトの名無しさん
07/02/10 13:32:55
URLリンク(www.mozilla-japan.org)
これのScaling and rotationというスライドで紹介されているページの回転とかって
具体的にはどういう技術で可能になるのでしょうか?

72:デフォルトの名無しさん
07/02/10 13:51:20
cairo

73:デフォルトの名無しさん
07/02/10 14:39:18
じゃあ今のMinefieldでcairoをつかってTab Effect見たいなことできますか?

74:デフォルトの名無しさん
07/02/15 16:43:57
ところで
window {
background-color:transparent !important;
}
とやると、とたんに中身が全く表示されなくなるxul要素が結構あるみたいなんだが、これは仕様?バグ?それとも仕様という名のバグ?



75:デフォルトの名無しさん
07/02/15 19:18:23
>>74
それ 2.0.0.1 のバグじゃなかったっけ?

76:デフォルトの名無しさん
07/02/26 20:08:24
OSを作ってください><

77:74
07/03/20 17:31:11
>>75
あらら。Firefox2.0.0.2にあげたけど、ダメだったよ…。

78:デフォルトの名無しさん
07/03/31 07:27:20
>>77

79:デフォルトの名無しさん
07/03/31 08:02:04
>>77
仕様という名のバグとも言える仕様。
参考
URLリンク(bugzilla.mozilla.org)
URLリンク(blog.goo.ne.jp)
URLリンク(level.s69.xrea.com)
URLリンク(maguroban.s41.xrea.com)

まとめ
本来Fx3相当に入れるべき(?)patchを2.0.0.1に迷いながらも入れたので、特定のCSS指定でパフォーマンスの悪化、及び表示が狂うなどの現象が起きる。
このpatch自体は表現の幅を広げるが、告知がきちんと出来ていなかった為に一部のTheme職人がアタフタ。
拡張機能の互換性に関わるAPIの変更はマイナーバージョンでは入れないみたいだけど、Themeは無視ですか?その辺の認識を統一よろ。>開発者

Theme作者界隈ではそこそこの話題になったけどね。
機能として入ったものが引き起こした問題だから、2.0.0.1 - ALLが該当する。
個人的には、2に入れようが3に入れようが、Theme作者でmozilla.orgのアナウンスをこまめにチェックする人以外はどうせ同じ所でハマると思う。
今回はアナウンスがアレだったからね……。

それより俺はwindowの背景をtransparentして何がしたいのか聞きたい。

80:77
07/04/01 21:21:14
windowを透明にする
  ↓
背景画像を萌え絵にする

うっせー! なにかもんくあるかー!!

81:デフォルトの名無しさん
07/04/02 01:55:19
すいません。質問です。
有るウェブページをみていて、そのwebページのソースコードを取得したいんですが、
何か良い方法は有りますでしょうか?
例えば、有るページをみていてそこに書いてあるMozillaと言う文字を読み込んだ瞬間に
もじらみたいに変える方法を捜しているんですが良く分からないんです。

82:デフォルトの名無しさん
07/04/02 01:59:50
Grease Monkey でも使っとけ

83:デフォルトの名無しさん
07/04/02 02:06:23
>>82
Grease Monkeyではどのようにすれば取得できるのでしょうか?

84:デフォルトの名無しさん
07/04/02 02:19:49
理解できました。
すいません。

85:デフォルトの名無しさん
07/04/03 02:44:21
JavaScriptの呼び出しについての質問です。

overlay.xulというXULファイルがあって、
<?xml version="1.0"?>
<overlay id="helloworldOverlay"
xmlns="URLリンク(www.mozilla.org)
<menupopup id="menu_ToolsPopup">
<menuitem id="helloworldMenuitem"
label="Hello, World!"
insertbefore="sanitizeSeparator"
oncommand="hoge();" />
</menupopup>
</overlay>

Hello, World!というメニューをクリックしたら、
同じcontentディレクトリのファイルhoge.jsの
以下のようなスクリプトを実行したいのですが、
どうすればoncommandで呼び出せるのでしょうか?

function hoge (){
window.alert("hogehoge");
}


86:デフォルトの名無しさん
07/04/03 05:33:55
scriptタグでインポート

87:デフォルトの名無しさん
07/04/03 06:21:35
>>86
idを使って呼び出すことは出来ないのでしょうか?

88:デフォルトの名無しさん
07/04/03 06:32:22
id?
何の話?

89:デフォルトの名無しさん
07/04/03 07:42:58
>>87
overlay.xulで<overlay~の行の次に追加。もちろん、hogehogeはあくまで例だが。

<script type="application/x-javascript" src="chrome://hogehoge/content/hoge.js"/>

idが何を指すかはよく分からんが、もし相対パスでやろうとしてるなら止めとけ。
例えば、それをbrowser.xulにoverlayしてるんなら、
<script type="application/x-javascript" src="hoge.js"/>
という記述は次のように解釈される。(多分。テストはめどいのでしてない)
<script type="application/x-javascript" src="chrome://browser/content/hoge.js"/>
つまり、overlay先(ここではchrome://browser/content/browser.xul)を基準にした相対パスになる可能性があるので、素直に全部書いた方がいいよ。

で、俺も質問していいか?
hack本なんかには「chrome内のscriptではtype="application/x-javascript"にせよ」みたいな事が書いてあるけど何故?
古いバージョン(text/javascriptをサポートしないバージョン)の為だったらchrome.manifest形式のみの拡張とかにはいらんよな……と思ったんだがどうよ?

90:デフォルトの名無しさん
07/04/03 08:42:14
>>89
経験上、相対パスでおk

91:デフォルトの名無しさん
07/04/03 13:39:10
Firefoxで、ツールバーアイコンとか動的に表示が変わるタイプのアイコンは
chrome://browser/skin/Toolbar.pngみたいな集合体から
-moz-image-regionで切り出す場所を変えて使ってるケースが多いようだけど
これは各アイコンを別ファイルで持っておくより効率がいいんかな

92:デフォルトの名無しさん
07/04/03 14:31:01
アイコン画像がメモリ上に読み込まれるのはその要素が表示される
タイミングなので、hoverとかの状態ごとにファイルを分けてると
ボタンに最初にmouseoverした時にファイルの読み込みが発生して
一瞬真っ白なアイコンになってしまうので、その回避と思われ

93:デフォルトの名無しさん
07/04/03 15:06:13
なるほどthx

94:デフォルトの名無しさん
07/04/03 16:18:36
ファイルの数も抑えられるしファイルを1つ開いただけでエフェクトによる変化を見較べやすいのもあるんじゃないかと思った>画像

95:デフォルトの名無しさん
07/04/04 19:19:29
キャレットの色とか変える事できますか?
探しているのですがなかなかそれらしい物が見つからないのです

96:デフォルトの名無しさん
07/04/05 17:13:06
拡張ムズカシイぽ
でもがんばるぽ

97:デフォルトの名無しさん
07/04/06 08:02:33
defaults/preferences/の設定用JavaScriptの名前ってどうしてる?
俺は"defaults.js"にしてるけど知人は"prefs.js"にしてる。ちなみに俺は"prefs.js"なんてダサいと思うけど知人は"defaults.js"なんt(ry
で他人様の拡張機能ばらしたら(拡張機能名).jsが多いっぽい……。
何らかのガイドラインでもあるの?

98:デフォルトの名無しさん
07/04/06 10:31:57
>>97
<app install dir>/defaults/pref/*.js で
firefox.js, inspector.js, mailnews.js とかになってるからだろうな。
extensions/ 以下ならどうでもいいんだろうけど、
一応他と区別できる名前の方がいいんでないの?

99:デフォルトの名無しさん
07/04/06 20:07:30
>>9

100:デフォルトの名無しさん
07/04/06 20:09:01
>>98
thx.

>>99は俺のミス。すまん。

101:デフォルトの名無しさん
07/04/07 13:56:51
Function.prototype.foo = function(){}
for( i in a )
dump( i+" : "+a[i]+"\n" );

とやっても、Functionオブジェクトに、fooメソッドが追加されていない。
ブラウザ上では、きちんと追加されているみたいなんだが…。
Functionオブジェクトだけ拡張を認めないとか、そんな規則あったっけ?
一応環境はWinXP、Firefox2.0.0.3で。

102:デフォルトの名無しさん
07/04/07 15:42:29
>>101
なんか bugzilla ごちゃごちゃしてよくわからんが、たぶんバグ
URLリンク(bugzilla.mozilla.org)
[Adding properties to Function prototype fails in chrome]
URLリンク(bugzilla.mozilla.org)
[XUL chrome precompiled functions don't inherit from current window's Function.prototype]
このへんかなぁ

URLリンク(bugzilla.mozilla.org)
[Function.prototype disappears after several seconds of browser's work. (chrome)]
似た症状なんだけど、こっちは治ってる。謎

103:101
07/04/07 15:54:53
>102
ふぅむ。なんか結構根幹的なところでバグも残っているのね。
なんとかコレ使わないでいける様に頑張ってみます。
ありがとうございます。

104:97
07/04/15 00:19:42
>>97-100
自己レス。
スタンドアロンXULアプリケーションではない場合(拡張機能)、install.jsでdefaults/preferences/*.jsをコピペして利用する際に、
区別できる名前だった方が拡張機能のデフォルト説明を見つけやすい
defaults.jsとかだと重複する可能性がある
などの理由から独自の名前の方がいいっぽい。(他にもあるかも)
別に拒否する理由もないから拡張機能名.jsにするよ、本当にthanks.

105:デフォルトの名無しさん
07/04/21 12:59:46
もしかしてMDC-en落ちてる?

106:デフォルトの名無しさん
07/04/22 01:28:50
>>105
今日はMediaWikiアップグレードの日らしいよ
URLリンク(www.bitstampede.com)

今は表示できるから、もうセットアップ終わったのかな

107:デフォルトの名無しさん
07/04/22 14:01:06
browser要素へaddProgressListener使ってnsIWebProgressListenerを取り付ると
ブラウザ内で読み込んだページや画像データなどのデータ受信状況を監視できますが、
ページ内で使用したXMLHttpRequestによるデータ受信状況は監視対象とはなりませんか?

108:デフォルトの名無しさん
07/04/28 02:38:24
>>105-106
MDC実験版(AMOで言うpreviewなヤツ)
URLリンク(developer-stage.mozilla.org)
幾つかテンプレート系の変更が起きてるから翻訳かじってる奴は注意。

109:デフォルトの名無しさん
07/05/19 00:48:54
よく「nsIXXX型」という言い方をしますが、これは厳密には
「Components.interfaces.nsIXXXインタフェースを実装したオブジェクト」
という意味になりますでしょうか?

110:デフォルトの名無しさん
07/05/19 12:36:56
Components.interfaces.nsIXXXインタフェースという型、だろ

111:デフォルトの名無しさん
07/05/22 13:09:00
nsIWebBrowserPersist のsaveURIでhttpで何らかのファイルをダウンロードするときに、httpのステータスコードの取得の仕方をわかる方いますか?

403のページとかが返って来ても、ダウンロードが完了したということになってしまっています。

112:デフォルトの名無しさん
07/05/22 21:49:23
プラグインの開発中、ファイルを編集するたびに

 プラグイン削除→再起動→プラグイン導入→再起動→テスト

とするの激面倒なんですが、再起動無しにプラグインだけリロードって
できませんか?


113:デフォルトの名無しさん
07/05/22 22:15:38
>>112
jar でなくフォルダにインストールされるようにして、
URLリンク(piro.sakura.ne.jp)
XUL Cache を無効にして新規 window 開け

114:デフォルトの名無しさん
07/05/23 00:24:10
リロード面とは別の話だが、開発中はインストールしたフォルダを直接弄ったほうが早いよね。
あと、chromeフォルダ以下のjarも展開状態のままで。

115:デフォルトの名無しさん
07/05/23 01:01:57
>>112
本当にエクステンションじゃなくプラグインを開発してるなら話はマタ違ってくるが
エクステンションなら普通ソースでインストールしとくだろう。
まあ、再起動が必要かどうかはまた別の問題だけど....
別ウインドウを開けばOKとか、再起動必要ない場合も結構有るよ。

116:デフォルトの名無しさん
07/05/23 06:54:02
つ Extension Developer's Extension

117:デフォルトの名無しさん
07/05/24 00:42:42
>>113,116
ナイスアドバイスアリガトンです。

XPIにせずフォルダのままロードできるよっていう拡張(プラグインだと
別の意味でした)を見つけて「これで楽になる~」と思っていたら
新規ウィンドウを開こうが何しようが再起動以外にXULの編集結果反映がされず
困ってましたが、それで無事解決できました!

これでようやく本格的にXUL開発に飛び込める・・・

118:デフォルトの名無しさん
07/05/24 08:36:07
URLリンク(developer.mozilla.org)
のドキュメントや
URLリンク(kokogiko.net)
のコメント欄にあるような、独自のヘッダをリクエスト毎に付けようとしています。
とりあえず独自ヘッダは付くようになりました。

ただ、リクエストするHTMLがframeやimgを含んでいると
ブラウザが勝手にframeやimgのリクエストをしますが
そのリクエストには上記独自ヘッダが付きません。

要するに自分でURL欄にアドレスを入力してEnterを押した
リクエストの一回だけにしか独自ヘッダが付きません。
全てのリクエストに付くようにするにはどうすれば良いのでしょうか?

119:118
07/05/24 10:30:40
リクエスト毎にヘッダが付かない、は勘違いでした。
独自ヘッダを付加する前に、条件判定用のヘッダの取得をしています。

var head = oHttp.getRequestHeader("Authorization");
oHttp.setRequestHeader("X-HOGE", "huga", false);

Authorizationのヘッダの内容を取得しようとして失敗し
後続のコードが実行されていないだけでした。

という訳で質問を変更します。Authorizationヘッダを
毎リクエスト正しく取得するにはどうすれば良いのでしょうか?

120:デフォルトの名無しさん
07/05/28 19:54:26
既存のコンポーネント(バイナリ)をJavaScriptのXPCOMでoverrideするには
どうすれば良いのでしょうか?
例えば"@mozilla.org/network/protocol/about;1?what=blank"を
独自の処理に置き換えたいと思っています。
URLリンク(www.mozdev.org)
とかは一応読みました。
interface nsIMyExam : nsIAboutModule
{
    nsIChannel newChannel(nsIURI URI);
};

function MyComponent() {}
MyComponent.prototype = {
    newChannel: function () { dump("My Test\n"); },

という風に継承(上書き)定義すれば良いのでしょうか?

あと、同じscheme名のメソッドをoverride出来たとして、
そのメソッドの中でオリジナルのメソッドを実行するにはどうすれば良いのでしょうか?
URLリンク(www.xuldev.org)
にあるような、既存の関数の置き換え例はちらほら見掛けるのですが…

以上、ご存知の方がいらっしゃいましたら、宜しくご教示お願い致します。

121:デフォルトの名無しさん
07/06/17 13:29:35
昨日のDevConでそういう話が出ていたような・・・
URLリンク(www.ne.jp)
Enhanced Feed PreviewではファクトリーのregisterSelfで起動時に毎回
コンポーネントを上書きしてる?とか言ってた気がする

122:デフォルトの名無しさん
07/06/19 15:49:13
XPCOMコンポーネントをCで作ったら邪道?Java嫌いなんだよね

123:デフォルトの名無しさん
07/06/19 16:02:34
べつにいいんじゃないの?

124:デフォルトの名無しさん
07/06/19 17:04:39
なんでJavaがでてくるんだ?

125:デフォルトの名無しさん
07/06/19 20:28:14
>>124
XULもJavaもクロスプラットフォーム

126:デフォルトの名無しさん
07/06/19 22:42:24
JavaXPCOMもPyXPCOMも実際に使われてる例は知らないが、C++は王道中の王道だろ。
ただ各プラットフォーム用のバイナリを配るのが面倒だ。

127:デフォルトの名無しさん
07/06/19 22:53:10
Cで作るにはC++のABIに気をつけないといけないはず。

128:デフォルトの名無しさん
07/06/20 05:04:15
Adaをつかいまつ

129:デフォルトの名無しさん
07/06/20 11:42:04
JavaScriptよりLiveScriptのほうがかっこいいじゃん

130:デフォルトの名無しさん
07/06/23 14:07:36
prefwindowではonbeforeunloadイベントは使えませんか?
それから、XULのどの要素がどのイベントを持っているかはどうやって調べますか?

131:デフォルトの名無しさん
07/06/29 01:36:10
“ もじら組スタッフは、以前からスタッフだったyukichiさんをもじら組から除名することを決めた。
URLリンク(eto.tumblr.com)
kazhik.tech:もじら組スタッフの除名
URLリンク(sabakan.tumblr.com)
kazhik.tech:もじら組スタッフの除名
URLリンク(plnet.jp)
もじら組スタッフの除名
URLリンク(blog.livedoor.jp)


132:デフォルトの名無しさん
07/06/29 02:25:13
>>131
それって何か大事なの?
ってか yukichi って誰?
何やらかしらの?

133:デフォルトの名無しさん
07/06/29 03:22:29
ggr

134:デフォルトの名無しさん
07/06/29 09:45:56
tumblr を貼る意味が分からない

135:デフォルトの名無しさん
07/06/29 17:15:22
>>131
もじら組で今起こっていること
URLリンク(amigomr.dw.land.to)
Re: もじら組で今起こっていること
URLリンク(d.hatena.ne.jp)
[Web] もじら組除名事件でWikipedia批判が再燃か?
URLリンク(d.hatena.ne.jp)
【百科事典】Wikipedia ウィキペディア ゆきちスレ
スレリンク(hobby板)

136:デフォルトの名無しさん
07/06/29 17:32:41
>>135に追加。
福澤俊とは - はてなダイアリー
URLリンク(d.hatena.ne.jp)
>自分が知らなければ、要出典タグを貼りに行く、もしくは「こんな単語をはじめて聞いた」などの発言を執拗に繰り返す利用者の一人でもある。
>2007年5月6日には問題のエントリーに投稿されたキリカに対するKasumoererのコメントを一括削除したことで話題となる。
>JCA-NETなどの極左団体および特定アジア団体とウィキペディア日本語版の関係は、よほど知られたくない事項の様子である。

137:デフォルトの名無しさん
07/06/29 18:49:36
この Kasumoerer って奴の私怨で FA ?

138:デフォルトの名無しさん
07/06/29 19:11:02
FA

139:デフォルトの名無しさん
07/06/30 11:05:17
>>137-138
何この酷い自演

140:デフォルトの名無しさん
07/06/30 16:10:32
>>137-138
笑える

141:デフォルトの名無しさん
07/07/02 23:20:10
Thunderbirdの拡張機能を作って、何人かの人に使ってもらっているのですが、正しく動作しないとの報告がありました。
原因を調査中なのですが、設定情報を保存するあたりにバグがあるのではないかと思いました。
設定情報の保存は、以下のようなクラスを作っているんですが、何かおかしな所があれば指摘してほしいです。
よろしくお願いします。
---
PrefUtil = {
  PREF : Components.classes['@mozilla.org/preferences;1'].getService(Components.interfaces.nsIPrefBranch),
  KEY : "hogehoge",
  getPref : function() {
    try{
      var type = PrefUtil.PREF.getPrefType(PrefUtil.KEY);
      const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
      switch (type) {
        case nsIPrefBranch.PREF_STRING:
          return PrefUtil.PREF.getCharPref(PrefUtil.KEY);
        case nsIPrefBranch.PREF_INT:
          return PrefUtil.PREF.getIntPref(PrefUtil.KEY);
       case nsIPrefBranch.PREF_BOOL:
        default:
          return PrefUtil.PREF.getBoolPref(PrefUtil.KEY);
      }
    }catch(e){
      return "";
    }
  },
  setPref : function(str) {
    PrefUtil.PREF.setCharPref(PrefUtil.KEY, str);
  }
}
---
var str = Pref.getPref();
のような感じで使います。

142:デフォルトの名無しさん
07/07/03 00:14:32
>>141
日本語が入った文字列を getCharPref/setCharPref で出し入れしようとしてないか?
そうなら代わりに getComplexValue/setComplexValue を使うべき。
それと特別な事情がない限り PrefUtil.PREF や PrefUtil.KEY じゃなく
this.PREF や this.KEY にするのが普通じゃないか?


143:デフォルトの名無しさん
07/07/03 12:11:22
>>141-142
URLリンク(nanto.asablo.jp)
この方法を使えばgetComplexValue/setComplexValueつかわなくてもいけるよ

144:デフォルトの名無しさん
07/07/03 12:12:41
あとgetは型を自動判別してるのにsetは文字列型限定って何か意味あるの?

145:sage
07/07/03 23:01:04
141です。ご指摘ありがとうございます。
>142
現在は日本語はつかっておりません。
また、ご指摘の通りthis.PREFのほうがいいですね。
>143
そんな方法が。参考になります。
>144
特に意味はありません。。getを張り切って作ったけど、結局setでは文字列しか
ありえないな、、と思って手を抜いてしまいましたorz

なお、不具合に関しては別の箇所が原因だと言うことがわかり一件落着しました。
ご協力ありがとうございましたm(..)m

146:デフォルトの名無しさん
07/07/04 10:30:38
うっふん

147:デフォルトの名無しさん
07/07/08 03:01:41
event.screenX, event.screenYを使わずに現時点のマウスカーソルの位置を知る方法ありますでしょうか?

148:デフォルトの名無しさん
07/07/12 05:06:30
>>147
xpcomコンポーネントを作ればできるよ

149:デフォルトの名無しさん
07/08/05 22:44:41
overflow:autoでスクロールバーを表示させた要素のスクロール位置を
動的に調整することはできますか?

150:デフォルトの名無しさん
07/08/27 00:44:59
よーし、Firefoxの拡張の中身見てXUL勉強しちゃうゾーとpiroさんのサイトの色々表示させる設定をしたところ、いきなり詰まってしまいました。すみませんが教えてください。テキストボックスをクリックするたびに Auto Copy 0.6.4 と言う拡張が jsコンソールに
エラー: target.textbox has no properties
ソースファイル: chrome://autocopy/content/autocopyOverlay.js
行: 653
とエラーを表示します。これを表示させないようにするにはどう書き換えればいいでしょうか。
function Autocopy_isTargetEditable(target)~
if(target)
{
if(target.toString().match(/object XUL/i))
{
ココ→if(target.textbox.value)
{
return true;
}
}
}

151:デフォルトの名無しさん
07/08/27 20:31:29
target に textbox が存在しない事がエラーの原因なら
value を参照する前に textbox が null でないかチェックすればエラーは回避できる

if (target.textbox && target.textbox.value)

152:デフォルトの名無しさん
07/08/28 02:05:43
>>151
ありがとうございます。エラーが出なくなりました。
これで Fx でググったりサイト眺めながら拡張を見れます。
ありがとうございました。

153:デフォルトの名無しさん
07/09/05 20:34:42
jQuery だとか prototype.js だとか、そっち系のライブラリはもういいよってくらい氾濫してるくせに、
ぜんぜん XPCOM をラップするライブラリがないぜ?いや、jslib とか mozlib とかはあるけどさ・・・
Components だか Interfaces だか、 ns...みたいなプリフィックスとか見るだけで吐き気がするぜ。
XULRunner だってさ、.xul を D&D で投げるだけでとりあえず実行してくれたら、お手軽で素敵じゃないか?

154:デフォルトの名無しさん
07/09/05 22:22:50
つ FUEL

一応Firefox2にもバックポートできるようにするみたいなこと言ってたような気がする…

155:デフォルトの名無しさん
07/09/09 11:01:02
文字コードの自動判定ってどーやればいいんだろーか

156:デフォルトの名無しさん
07/09/09 22:47:18
>>155
Mozillaのuniversalchardetはscriptableじゃないインターフェイスらしいので、それをどうにかするか、それをCライブラリ化したものがあるからそれを使うか……。

157:デフォルトの名無しさん
07/09/09 23:40:22
>>156
あら、そーなんだ。うーん、複数の文字コードでとりあえず一度変換させて、
U+FFFDの数で推測する手もなくはないけどねぇ。貴重な情報どーも㌧クス。

158:デフォルトの名無しさん
07/09/11 22:42:48
mozStorageにデータを入れて、サイドバーにmozStorageから取得したデータを
表示させたいと思っています。

もし各ウィンドウのサイドバーごとにデータベースへの接続を持たせると、複数のウィンドウが
開かれている状態などでは、同時にデータベースへアクセスする可能性が有るので
URLリンク(developer.mozilla.org)
You can not access a single database from multiple connections from different threads.
に引っかかると思います。

こういう拡張を作成する場合、どのようにしてmozStorageを扱うのが良いのでしょうか?

159:デフォルトの名無しさん
07/09/12 01:01:54
JSからXPCOM経由でデータベース接続する分には「different threads」には引っかからないのでは。
もちろんFirefoxのプロセスはひとつだけという条件付きですけど。

160:デフォルトの名無しさん
07/09/12 02:33:34
各 window は個別にスレッドを持ってたと思う。
components/ に その拡張専用の storage service(singlton) を持つ
JS XPCOM をつくっておいて、
サイドバー XUL からはそのサービスを介してだけアクセスすればいいんじゃないかな。
Places(history,bookmarks) もそんなかんじだし。

161:158
07/09/12 03:01:47
なるほど、XPCOMを作れば解決出来そうですね。
調べてみます。有難うございました。

162:デフォルトの名無しさん
07/09/12 17:02:11
XUL チュートリアル(和訳)
URLリンク(xul-app.hp.infoseek.co.jp)
上のページは、元々「有限会社エヌアイティー技術情報部」というサイトに
あったものでした。
URLリンク(web.archive.org)

なぜか2002年に突然削除されてしまいましたが。このXULスレの初代のころです。

昨日、その元サイトの移転先を見つけました。断言はできませんが、状況から
見て、どうやら訳者様は亡くなっておられるようです。
URLリンク(www.geocities.jp)
URLリンク(www.geocities.jp)

合掌。


163:デフォルトの名無しさん
07/09/19 15:14:45
URLリンク(www.mozilla.gr.jp)
例えばこれでtextbox内でENTERを押すとHELLOボタンが押されたことにしたい場合ってどうしたらいいんでしょうか。
すいませんが教えてください。

164:デフォルトの名無しさん
07/09/19 16:05:36
>>163
textbox に onkeypress="if(event.keyCode==13)hello()" とかすれば?

165:デフォルトの名無しさん
07/09/19 16:17:58
ところで DOM_VK_RETURN じゃなく DOM_VK_ENTER が出てくる環境ってあるの?

166:デフォルトの名無しさん
07/09/19 17:01:38
>>164
おおできたできた!ありがとうございます。
っていうかこれjavascriptスレで聞いたほうがよかったかもですね。

167:164
07/09/19 21:06:07
>>163
用途次第では onchange の方が適切な場合もあると思うけどまぁいろいろ試してくれ

168:デフォルトの名無しさん
07/09/24 16:53:14
大昔に野良拡張を作った経験があります。
色々な所で Gran Paradiso のことを目にするようになったので
先ほどα8を入れてみました。
ローカルディスクから拡張機能をインストールしようとしたらはねられて困ったのですが
とりあえずupdateURLを削除した状態で開発すれば良いんですかね。
色々と面倒になりましたな。

169:デフォルトの名無しさん
07/09/25 15:50:56
>>168
McCoy


170:デフォルトの名無しさん
07/09/26 14:17:48
about:config 風に、ロケーションバーに about:hogehoge と打ち込むと、
カレントタブの中に chrome が読み込まれるような拡張というのは
どんなことをヒントにすればよいですか?

171:デフォルトの名無しさん
07/09/26 15:33:32
>>170
MR Tech About:About をパクればいいんじゃないか?

172:デフォルトの名無しさん
07/09/26 16:45:30
>>171
非常に参考になりました。ありがとうございました。

173:デフォルトの名無しさん
07/09/29 07:25:22
>>171
今はnsIAboutModuleインターフェースが
変更されたからそのままだとtrunkで使えない気が。
getURIFlagsメソッドも実装しないといけないんじゃないの?
URLリンク(mxr.mozilla.org)

174:デフォルトの名無しさん
07/09/29 10:29:08
Browser#reload()でページのリロードができると思うんだけど、リロードじゃなくて、
ダウンロード済みのソースからDOMの再構築ってできないのかな?
リロードしちゃうとサーバに再リクエストしちゃうんで、セッション管理しているサーバで
ちょっと困っているんだけど。

175:デフォルトの名無しさん
07/09/30 01:44:57
DOMParserとか使ってみるといいかも

176:デフォルトの名無しさん
07/09/30 02:32:23
document.bodyをcloneNodeでコピーしておいて差し替えるとか、
あるいはdocument.body.innerHTMLをコピーしておいて差し替えるとか

177:デフォルトの名無しさん
07/10/19 23:37:01
>>303
これだな。とりあえずXHTMLのscript要素で代用しとけ。
URLリンク(bugzilla.mozilla.org)

178:デフォルトの名無しさん
07/10/19 23:38:01
微妙に誤爆しました。ごめんなさい。

179:デフォルトの名無しさん
07/11/02 22:52:17
IBM の developerWorks に XUL の記事きた。

「XUL を使ったブラウザー拡張機能、第 1 回: ユーザー・インターフェース機能を持つ Firefox のブラウザー拡張機能を作成する」

URLリンク(www-128.ibm.com)

180:デフォルトの名無しさん
07/11/03 02:39:56
XULRunner って響きが取っ付き易くないからいっそ Prism だったらよかったのにと思う11月の秋

181:デフォルトの名無しさん
07/11/03 03:36:16
URLリンク(labs.mozilla.com)

182:デフォルトの名無しさん
07/11/03 10:18:17
やっぱむずかしいよな。言うほど簡単じゃねぇよ、これ。
様々な難解技術の集合体じゃねえか。

183:デフォルトの名無しさん
07/11/03 14:07:29
browser.jsとか、タブ系拡張とかでの
content.focus(); と、_content.focus(); との違いは何?(頭のアンダーバー)
元のやつを上書きしてるって事?

184:デフォルトの名無しさん
07/11/03 20:54:14
>>183
歴史的理由。互換性。

185:デフォルトの名無しさん
07/11/03 21:09:52
>>183
どっちでも動くから気にしないでOK

186:デフォルトの名無しさん
07/11/12 20:57:34
大した事じゃないのですが、ちょっとお聞きしますね。

XPCOMを作っていて名前をどう付けるのが良いのか迷っています。
具体的にはContractIDとインターフェイス等の名前のプレフィックスについてで、
ContractIDは、いくつかの拡張を見たところ全部@mozilla.org/some-component;1となっていました。
プレフィックスは、Mozillaのソースではnsで始まるのが慣習のようでした。

Mozillaプロジェクトと直接関係がない拡張なのに、何故この様(mozilla.orgとかnsとか)に
なっているのか分かりません。
皆さんならどうされますか/してらっしゃいますか?

187:デフォルトの名無しさん
07/11/12 22:05:37
関係ないのにns~とか@mozilla.orgとか書くのは厳密には詐称だよね
Mozilla内の物でもインターフェース名がmozI~という物はいくつかあるし
適当に付けたらいいんじゃないの?


188:デフォルトの名無しさん
07/11/13 00:14:36
>>186
XPCOMだけにxpcIxxx~とかcpIxxx~とかどうよ?ださいけどな。

189:デフォルトの名無しさん
07/11/13 00:24:00
>>186
MDCのサンプルでは、
nsIHelloWorld
@dietrich.ganx4.com/helloworld
URLリンク(developer.mozilla.org)
でも個人的にはnsを付けるのはやめた方がいいと思う。
nsはNetScapeの略だとこのスレで以前に教わった。

190:デフォルトの名無しさん
07/11/13 05:51:48
(*゚ω゚)ノ∩へぇへぇ

191:デフォルトの名無しさん
07/11/13 10:14:10
接頭辞xpcはXPConnect関係で使われてるからよくないな。
作者名または拡張名から取るのがいいだろう。
例えばXUL/Migemoの場合、接頭辞はp(作者名Piroから?)、
コントラクトIDは@piro.sakura.ne.jp/xmigemo/から始まっている。
URLリンク(www.cozmixng.org)

192:デフォルトの名無しさん
07/11/14 00:31:47
自サイトではなくAMOでしか公開していない場合のコントラクトIDは?

193:デフォルトの名無しさん
07/11/14 01:40:49
同じ。AMO かどうかと、contruct ID は関係ない。

194:186
07/11/14 18:01:51
やはり、独自のprefix/ContractIDを付けた方が良さそうですね。
皆さん、助言ありがとうございます。

195:デフォルトの名無しさん
07/11/16 14:29:55
ここが適切かわかりませんが質問です。

IEで動作するActiveXのプラグインがあるのですが、これをFirefoxへ簡単に移植する方法はないでしょうか?
Windows以外のOSへの移植は考えていないので、ラッパーのDLLか拡張を作るという手でも構いません。

196:デフォルトの名無しさん
07/11/16 21:52:17
>>195
Firefox 1.5までなら、プラグインがありますよ

Mozilla ActiveX Project
URLリンク(www.iol.ie)

ソースコード
URLリンク(lxr.mozilla.org)

197:デフォルトの名無しさん
07/11/18 15:16:24
今、外部テキストファイルの読み書きをしているんですが、
全角文字を書き出しor読み込みすると文字化けしてしてしまいます。
文字コードの変換なども試したのですが上手くいきませんでした。
何か解決方法はないでしょうか?

198:デフォルトの名無しさん
07/11/18 15:33:00
どうやってどううまくいかなかったのかを書かないと
エスパーにしか解決方法はわからないと思われ

199:デフォルトの名無しさん
07/11/18 16:43:05
URLリンク(piro.sakura.ne.jp)
ここを参考にやらしていただきましたが、ファイルの書き出しなどを行った際、
日本語ではなく文字コードとして出力されてしまいます。

200:デフォルトの名無しさん
07/12/09 10:07:00
Fxのエクステンションを作ろうと思ってFxまとめWikiのチュートリアルを見ながら作業してたんですが、
contents.rdfってのは何のためにあるんですか?解説がなく、MDC見てもよく分からなかったんですが。

201:デフォルトの名無しさん
07/12/09 10:13:23
まとめにも書いてあるじゃないか

202:デフォルトの名無しさん
07/12/09 17:19:07
>>200

古い contents.rdf 形式のマニフェスト
URLリンク(developer.mozilla.org)

203:デフォルトの名無しさん
07/12/09 18:31:49
>>202
ありがとうございます。最新のFxをターゲットにする場合は不要なんですね。

204:デフォルトの名無しさん
07/12/10 17:47:01
ちょこちょこと拡張をいじったりしてみてます。
Firefox2.0.0.11なんですが、タブを右クリックした場合の
コンテキストメニューを拡張するにはどうしたらいいのでしょう・・・


205:デフォルトの名無しさん
07/12/10 18:08:04
で、あなたはまずご自分で何を調べられて何を試されたのですか?

206:デフォルトの名無しさん
07/12/10 19:42:16
>>205
CopyUrlPlusとTabMixPlus、ContextMenu拡張のアーカイブを展開して
内部を調べてみました。
しかしCopyUrlPlusではタブを右クリックしたメニューの拡張を行って無く、
TabMixPlusとContextMenu拡張は読み切れませんでした。OTZ

MDCのコードサンプル、DOMインターフェースリファレンスも調べましたが、
該当のものを見つけられませんでした。

207:デフォルトの名無しさん
07/12/10 23:38:49
>>206
userChrome.js のスクリプトあされば出てくるが…まぁ大ヒント。
document.getAnonymousElementByAttribute(gBrowser, 'anonid', 'tabContextMenu');

208:デフォルトの名無しさん
08/01/10 00:42:41
久しぶりにXUL弄ろうとおもって遊んでいたんですが
いつの間にかmakeURI関数って使えなくなっていませんか?
Mozilla開発コミュニティは相変わらずのクオリティだなと思った。嫌いじゃないけど

209:デフォルトの名無しさん
08/01/10 11:55:04
プラットフォーム書いてくれ。
firefox なら 2 でも trunk でも使えるはずだけど<makeURI
URLリンク(mxr.mozilla.org)
seamonkey だと前は2引数だったが trunk とかだと3引数なのを注意。
URLリンク(mxr.mozilla.org)
Prism, XULRunner なら contentAreaUtils.js 入れないとどーもならん、
つか実質3行なので自分で書け。

210:デフォルトの名無しさん
08/01/10 17:31:12
サイドバーを使うFirefox拡張の作り方がさっぱり分かりません。
どこかにサンプルとかありませんか?

211:デフォルトの名無しさん
08/01/10 18:09:07
sageとか

212:デフォルトの名無しさん
08/01/10 18:37:14
URLリンク(developer.mozilla.org)

213:デフォルトの名無しさん
08/01/10 20:37:30
>>212
おお、ありがとうございます!
すっかり見落としてました

214:デフォルトの名無しさん
08/01/16 17:22:29
var listbox = document.getElementById('searchResultList');
for(var i = 0; i < 10; i++) {
  var listitem = document.createElement('listitem');
  listitem.label = "foo";
  listbox.appendChild(listitem);
}

このようなコードを実行すると、listboxにアイテムは追加されるんですが、真っ白でlabelの内容が表示されません。
DOM Inspectorで見ればちゃんとlabelにfooが入ってるんですが…
どこに問題があるんでしょうか。

215:デフォルトの名無しさん
08/01/16 17:33:10
appendChild(...)でなくappendItem(...)としてみる

216:デフォルトの名無しさん
08/01/16 17:41:19
>>215
ありがとうございます。appendItem()でできました。
richlistboxだとappendChild()でできたのでついlistboxでもできるのかと思ってました。

217:デフォルトの名無しさん
08/01/21 17:12:44
groupbox
 - button
 - button
 - button

みたいな感じに、ある要素の子要素が複数あるときに、これ全部を一気に取り除く方法ってありますか?
やっぱりひとつずつ消してかなきゃダメ?

218:デフォルトの名無しさん
08/01/21 21:44:41
DOM2 Rangeつかうといいかも

219:デフォルトの名無しさん
08/01/23 11:51:44
>>218
ありがとうございます。
var range = document.createRange();
range.selectNodeContents(element);
range.deleteContents();
でできました。

220:デフォルトの名無しさん
08/01/31 11:46:40
Javascriptでaddonを書いています。
このaddon内部から、起動プロファイル名を取得することは可能でしょうか?
(firefox -P fuga の fugaを取得)
モノはFirefox 2.xです。


221:デフォルトの名無しさん
08/01/31 12:27:10
nsIToolkitProfileServiceを使えば可能。
toolkitのprofileSelection.jsが良い例題になる。

222:220
08/01/31 13:30:22
おおおズバリ。
名回答TNX.

223:デフォルトの名無しさん
08/01/31 23:24:20
firefoxの拡張作成に挑戦しようと思い、
URLリンク(piro.sakura.ne.jp)
の通りに自分で作成したものはツールのところにHello,Worldが表示されません。
アドオンの一覧には表示されています。
このサンプルコードであるURLリンク(piro.sakura.ne.jp)
はちゃんとツールのページの情報の下に表示されます。
両方のコードを見比べても自分でみた限り違いはありませんでした。
変更した部分は<em:maxVersion>2.0.0.*</em:maxVersion>だけです。
firefoxのバージョンは2.0.0.11です。

どこが問題か教えていただけますでしょうか?


224:デフォルトの名無しさん
08/02/01 15:16:30
お前が見た限りの情報で分かるエスパーはいねーよ馬鹿
教えて欲しいならコード載せろ

225:デフォルトの名無しさん
08/02/01 16:12:17
>>224
おっしゃるとおりです。すいませんでした。
コードはここにうpしました。
URLリンク(www.uploda.net)
どうかよろしくおねがいします。

226:デフォルトの名無しさん
08/02/01 16:50:26
>>225
すべての構成ファイルの文字コードUTF-8のBOMなしかどうか確認

227:220
08/02/01 18:09:46
profileSelection.jsは起動時にでてくるプロファイル選択画面みたいだ。

const C = Components.classes;
const I = Components.interfaces;
var p = C["@mozilla.org/toolkit/profile-service;1"];
alert(p);

ここでいきなりundefinedなのだが。
なんででしょう?
いや、classes配列にないのはわかるが、他のサービス(directory-service)とかだと
getService()できる。

firefox/components/*
firefox/chrome/*
は一応調べた。grepだけど。



228:デフォルトの名無しさん
08/02/01 18:11:16
>>226
すべての構成ファイルの文字コードを改めてUTF8BOMなしで保存し、
インストールしてみましたがやはりできませんでした。
エディタはTerapadを使っています。

229:デフォルトの名無しさん
08/02/01 18:48:55
>>228
>にすべての構成ファイルの文字コードを改めてUTF8BOMなしで保存し、
>インストールしてみましたがやはりできませんでした。

chrome.manifestをUTF-8のBOMなしで保存したら動作するけど...
エディタが勝手に変なことするんじゃない?

230:デフォルトの名無しさん
08/02/01 19:35:31
スレチな質問だとは思うんですが
UTF-8BOMなしで保存して、開きなおしたらUTF-8BOMなしで開くものですよね?
TerapadでもEmEditorでも開きなおすとSJISになってしまうんです。
他のUTF-8のファイルはちゃんとUTF-8で開くのですが...

231:デフォルトの名無しさん
08/02/01 19:50:22
BOMついてるのはバイナリエディタで確認できる
でchrome.manifest BOMついてますね。

エディタの件だが, 自動判定はあまり信用しない方がよろしいかと,
特にファイルに含まれる文字数が少ない場合は失敗する確率が高い,
BOMついてないUTF-8は特に判定が難しい。

使用エディタ変える方がいいんじゃない, 秀丸エディタとかNotepad++とか

232:デフォルトの名無しさん
08/02/01 19:55:06
>>230
TeraPadはUTF-8(BOMなし)を扱える。
君のTeraPadの設定がおかしい可能性が高い。
オプションの文字コード関係の設定をよく見直して。
これ以上はTeraPadスレで。

233:デフォルトの名無しさん
08/02/01 20:04:52
>>231
再度保存してみたものです。
バイナリエディタでみたところ各ファイルBOMはついてないようです。
URLリンク(www.uploda.net)

chrome.manifestを直したものはツールのところにhello world出てるってことですよね?

>エディタの件だが, 自動判定はあまり信用しない方がよろしいかと,
>特にファイルに含まれる文字数が少ない場合は失敗する確率が高い,
>BOMついてないUTF-8は特に判定が難しい。
なるほど。勉強になります。

234:デフォルトの名無しさん
08/02/01 20:37:02
連投失礼いたします。

直接extensionsフォルダから拡張を削除しもう一度インストールしたらできるようになりました。
どうもお騒がせしました。

235:220
08/02/06 14:31:27
結局
URLリンク(developer.mozilla.org)
を見て、プロファイルディレクトリが取れたのでよしとしました。


236:デフォルトの名無しさん
08/02/14 05:04:30
おまえらデバックする時どうしてる?
自分は書庫化し直してるんだが、これって一般的な方法?
どうも面倒くさい

237:デフォルトの名無しさん
08/02/14 05:08:44
>>236
アドオン開発環境のセットアップ
URLリンク(developer.mozilla.org)

238:デフォルトの名無しさん
08/02/14 06:26:53
>>236
>>237 の開発用の設定にして、jarに圧縮せず、-console オプションを付けて起動。

239:デフォルトの名無しさん
08/02/14 06:30:05
どもども

240:デフォルトの名無しさん
08/03/01 09:21:56
xulをプラットフォームとして使おうと思ったら、Firefox起動しない状態でも、ファイルをダブルクリックしたらXULアプリケーションが起動するような環境が必要だと思うのだが・・・

241:デフォルトの名無しさん
08/03/01 13:47:17
>>240
思うのだが?続きはなんでしょう?
URLリンク(developer.mozilla.org)

242:デフォルトの名無しさん
08/03/06 21:34:29
Firefox3でopenPopupの直後だとpanelのサイズが取得できない……。
2ではshowPopupの直後でもpopupのサイズ取得できたのになあ……。

それでもなんとかして取得したいんだが、どうすればいい?
欲を言えば、openPopup(showPopup)の前(非表示状態のとき)に
取得できるとなお良いんだが。

要はウィンドウ中央に表示させたいんだよね。

243:デフォルトの名無しさん
08/03/07 22:50:06
ポップアップは非同期になったんじゃなかったけ?
popupshowingかpopupshownで取得できるんじゃない?

244:デフォルトの名無しさん
08/03/08 00:13:50
>>243
できたよありがとう!

245:デフォルトの名無しさん
08/03/10 03:47:11
>241
…空が、青いなぁ…


orz

246:デフォルトの名無しさん
08/03/11 12:16:32
もともとのステイタスバーの上にテキストボックスとボタンを配置したいのですが
hboxにid属性をつけると表示されません。どうしてでしょうか?
以下ソースです。汚いですが。。。

<?xml version="1.0"?>

<overlay id="inputhelperOverlay"
xmlns="URLリンク(www.mozilla.org)">
<popup id="contentAreaContextMenu">
<menuitem id="show_InputHelper" label="InputHelper"
insertafter="context-undo" oncommand="show_IH()"/>
</popup>
<script src="Overlay.js" />
<hbox insertbefore="status-bar" id="ihbox">
<textbox multiline="true" width="400" rows="4" />
<button label="Copy"
oncommand="copy(); return false;"/>
</hbox>
</overlay>
</overlay>

247:デフォルトの名無しさん
08/03/11 14:42:51
>>246
オーバーレイを適用する親要素がない。

URLリンク(developer.mozilla.org)

248:デフォルトの名無しさん
08/03/11 14:47:06
<overlay id="inputhelperOverlay"
xmlns="URLリンク(www.mozilla.org)">
<popup id="contentAreaContextMenu">
<menuitem id="show_InputHelper" label="InputHelper"
insertafter="context-undo" oncommand="show_IH()"/>
</popup>
<script src="Overlay.js" />
<window id="main-window">
<hbox insertbefore="status-bar" id="ihbox">
<textbox multiline="true" width="400" rows="4" />
<button label="Copy"
oncommand="copy(); return false;"/>
</hbox>
</window>
</overlay>

これでどう?

249:デフォルトの名無しさん
08/03/11 16:19:32
>>247,248
できました!ありがとうございます!


250:デフォルトの名無しさん
08/03/14 23:39:42
addons.mozilla.org について教えてほしいのですが
・作者の項目にニックネームを表示する方法
・登録した拡張の削除の仕方
これらはどうやってやるのでしょうか?

作者がニックネームの人も居るので出来るかと思ったら
アカウントを作ったときの姓名が表示されてしまうし、
ファイルを削除は出来ても、登録された拡張は削除できないし、
わけわかめな状態になってます。

251:デフォルトの名無しさん
08/03/15 10:30:04
ログインした状態で右上の「アカウント」って所からニックネーム設定できるよ。
あと登録された拡張の削除はシステム的にできないみたい。
ファイルを消せばユーザからは見えなくなるのでそれで我慢するしかないぽ。
漏れなんて、この間からシステムの不調でアップロードが上手く行かなくて
管理画面上ではIncomplete - No Filesで同じバージョンの項目が3つ並んでる。


252:250
08/03/17 20:20:17
>>251
レスどうもです。

アカウントでニックネームを設定してみたのですが、
開発者用コンパネでは作者に姓名の方が表示されています。
作者の追加でも、アカウントから勝手に作者名を探すみたいで、
名前を自由に入れたりは出来ないみたいだし。
とりあえず姓名の方を適当に変更する事にします。

削除は出来ないんですね。
自分も同じバージョンのIncomplete - No Filesが3つ並んでますw

253:デフォルトの名無しさん
08/04/04 22:26:35
webサービス開発系のプログラマーは目の的!
firefox開発者って対して取り上げられていなくてかわいそうに
だっせぇwww

254:デフォルトの名無しさん
08/04/04 22:34:33
めのまと?

255:デフォルトの名無しさん
08/04/04 23:09:51
>>253
日本語でおk

256:デフォルトの名無しさん
08/04/04 23:42:29
めのてき(←なぜか変換できない)

257:デフォルトの名無しさん
08/04/04 23:57:14
目の敵と目の的の関係は既出と外出のそれに同じか。

258:デフォルトの名無しさん
08/04/05 10:23:56
Firefox 3のbrowser.jsのズーム機能のコードを眺めていたら
こんなふうにdeleteを使っているのですが、どういった意味があるのでしょうか?

// Content Pref Service
get _cps FullZoom_get__cps() {
delete this._cps;
return this._cps = Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
},


259:デフォルトの名無しさん
08/04/05 11:55:09
何かのタイミングで FullZoom._cps が書き換えられていても、
確実に ContentPrefService を返す。

ちなみに修正前はこんなコード
__cps: null,
get _cps() {
if (!this.__cps)
this.__cps = Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
return this.__cps;
},

URLリンク(bugzilla.mozilla.org) 修正前
URLリンク(bugzilla.mozilla.org) 修正後
URLリンク(mxr.mozilla.org) 現コード

260:デフォルトの名無しさん
08/04/05 13:32:00
御回答ありがとうございます。でも、なぜこうやらないんですか?
get _cps() {
return Cc["@mozilla.org/content-pref/service;1"].
getService(Ci.nsIContentPrefService);
},

261:デフォルトの名無しさん
08/04/05 23:07:54
getterが最初の一回のみ実行されるようにじゃないの
delete this._cps; によってgetterが削除されて
以降はthis._cpsに格納されたnsIContentPrefServiceを参照するようになる

262:デフォルトの名無しさん
08/04/06 00:20:04
なるほど。ありがとうございました。

263:デフォルトの名無しさん
08/04/07 22:15:25
gzip圧縮されたdiskキャッシュをnsIStreamConverterServiceの
convertで展開しようとしてるんだけどうまくいかのよね。

264:デフォルトの名無しさん
08/06/12 17:51:13
Firefoxを多重起動したときに連動するように
したいんだが、どうすりゃいいんだ??

265:デフォルトの名無しさん
08/06/15 18:24:36
RDFから作成したlistboxをもう一度、RDFから作成しなおす方法はありませんか?

266:デフォルトの名無しさん
08/06/15 21:24:53
よくわからんが、builder.rebuild()じゃだめなの?
XUL:Property:builder - MDC
URLリンク(developer.mozilla.org)

267:デフォルトの名無しさん
08/06/16 22:18:32
ありがとうございます。
builder.rebuild()ではファイルからの再読み込みはしないようです。
別の方法を考えます・・・・。

268:デフォルトの名無しさん
08/06/17 23:14:24
>>267
多分nsIRDFServiceのUnregisterDataSourceでいったんデータソースを開放しないとダメ。

269:デフォルトの名無しさん
08/06/18 00:24:07
leakmonitorを入れてみたら、以下のようなコードもリークしてるよと
報告されました。
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function(e) {
if (e.target == this) myextension.showContextMenu(this);}, false);

やっぱりちゃんと handleEvent メソッドを備えたオブジェクトをリスナーとして登録して、
window の unload 時に removeEventListener した方がいいんでしょうか?

まだまだ良く分かっていないので、とんちんかんな質問かもしれませんがよろしくお願いします。

270:デフォルトの名無しさん
08/06/18 01:04:47
>>269
handleEventを使う必要はないと思うけど
removeEventListenerはしておいた方が安全そう

271:デフォルトの名無しさん
08/06/22 06:11:08
 <tabbox id="tabBox" orient="vertical" flex="1">
  <tabs>
   <tab label="tab1" id="tab1"/>
   <tab label="tab2" id="tab2"/>
   <!-- 以下、tabたくさん -->
  </tabs>
  <tabpanels id="pagePanels" flex="1">
   <tabpanel id="1">
    <html:iframe type="content" id="iframe1" src="~" flex="1"/>
   </tabpanel>
   <tabpanel id="2">
    <html:iframe type="content" id="iframe2" src="~" flex="1"/>
   </tabpanel>
   <!-- 以下、tabpanelたくさん -->
  </tabpanels>
 </tabbox>

このようなXULをウィンドウコンテント領域に表示させると、
多数のタブのブラウザに入りきらない部分が見切れてしまい、
矢印キーなどでフォーカスは当たるが表示されない状態になってしまいました。
また、それに合わせてtabpanelも広がってしまい、右端の部分が表示されません。

これを、タブを多段表示にする、またはスクロールバーなどを出す、など
何らかの方法でブラウザ内に収まりきるようにしたいのですが
どうしたらいいんでしょうか?
flexを外したりorientをhorizontalにしたりしても
tabpanelが縮んだりタブが縦に広がったりとうまくいきません。
また、cssでwidth:100%などしても効果がありませんでした…。

272:デフォルトの名無しさん
08/06/22 08:03:49
それこそtabbrowser.xmlを参考にしてみたらいいんじゃない?>スクロール
Tab Mix Plus等のコードを見てみれば多段表示についてもヒントが得られるかと。

273:デフォルトの名無しさん
08/07/14 21:18:52
レビューでバグについて報告があったんだけど、
自分の環境では再現されない。
この場合どういう反応をすればいいんだろうか。

274:デフォルトの名無しさん
08/07/14 22:20:59
TMPの作者に倣ってみるとか
URLリンク(tmp.garyr.net)
URLリンク(tmp.garyr.net)

275:デフォルトの名無しさん
08/07/15 01:12:56
>>274
どうも。とりあえず
他のアドオン無効でチェックしてみて、まだ問題あるなら連絡してくれ
という意味(のつもり)の文を書いといたよ。
あんだけの文章でどれだけ時間掛けてるんだ俺……英語力のなさに失望orz

276:デフォルトの名無しさん
08/07/26 10:35:19
ボタンを通常のクリックしたときとミドルクリックしたときで実行する処理を分けたい場合
どうすればいいですか?
oncommandでevent.buttonの値を調べてもundefinedとなってしまいます。

277:デフォルトの名無しさん
08/07/27 03:49:37
onclickでやるしかないんじゃないかな
通常クリック→oncommandで捕捉
ミドルクリック→onclickで捕捉(通常クリックは無視)

278:デフォルトの名無しさん
08/07/27 12:21:07
>>277
その方法でいけそうです。ありがとうございました。

279:デフォルトの名無しさん
08/09/25 04:44:00
>>592
設定出来ない。
ツール(外部アプリ)でいじれるかも知れない。

>>593
saveImageURLって何
URLリンク(forums.mozillazine.jp)
URLリンク(forums.mozillazine.org)
スレリンク(tech板)
で聞く方が良いのでは?

拡張機能で同様の機能を持つものはいくらでもあるけど。

280:279
08/09/25 04:45:25
誤爆した。

281:デフォルトの名無しさん
08/09/29 00:44:10
Visual Basic2008にXULRUNNERを組み込もうとしています
表示まではあっさり行ったのですが、プログラムでブラウザをコントロールするところがうまくいきません

ページ上の各要素に対してコントロールしたいのですが
IEのように、各種Htmlコントロールでコントロール出来ないのです
ここからサンプル--------------------------------
'ブラウザメモリ確保
IE = New WebBrowser
Moz1 = New AxMOZILLACONTROLLib.AxMozillaBrowser
Moz2 = New AxMOZILLACONTROLLib.AxMozillaBrowser
Dim heOut As HtmlElementCollection

heOut = Moz2.Document   '代入した瞬間にエラー
'heOut = IE.Document.All'うまくいく

heOut.GetElementsByName("srchtxt")(0).InnerText = "検索用です"
heOut.GetElementsByName("srchbtn")(0).InvokeMember("click")
ここまでサンプル--------------------------------
HTMLコントロールはIE用に用意されているので、何らかのキャストが必要かと思うのですが
MOZILLA側で、各要素をコントロールするにはどうすればいいのでしょう
MOZILLAのメソッドを色々探しているのですがなかなか見つからず難儀しています

282:plus7 ◆DHcM3x9Sng
08/09/29 12:33:01
HtmlElementCollectionにHtmlDocument代入しようとすればエラーになるのは当然では
あと微妙にスレ違い

283:デフォルトの名無しさん
08/09/29 19:28:57
いやまあ・・エラーになって当然なんだけど
Mozillaでも似たようなクラス無いのかなぁ・・・と。

目的はプログラムから直接画面上のテキストやらボタンやらにアクセスしたいんです
すれ違いなの?

284:plus7 ◆DHcM3x9Sng
08/09/29 22:51:58
GeckoのActiveXコントロールはわざわざIEコンポーネントの機能を
エミュレーションしているので、一部(つーか大半)使えない機能がある。
だが、document.allには対応してそうな感じ。
URLリンク(mxr.mozilla.org)
getElementsByNameは見た限りでは見つからない。innerTextはいけるっぽい。
URLリンク(mxr.mozilla.org)

とまあ苦労するのが目に見えているので、.NETでGeckoをより深く制御したいならこのコンポーネントを使ったほうがいい。
URLリンク(code.google.com)

>すれ違いなの?
>>1は読んだのかね?

285:デフォルトの名無しさん
08/09/30 00:55:40
283です
ありがとうございます。
そんなコンポーネントを作ってる人がいるとは。
週末に試すようにします。

姉妹スレ できけってことかと思うんですが、ブラウザ自体を作りたいわけではなかったので・・・
あ、でもこちらは拡張の作り方か・・・すいません。

286:デフォルトの名無しさん
08/10/04 17:20:26
ちょっと紹介させてください。
XULのUIデザイナみたいなものを作ってみました。
まだ不安定ですが、よかったらどうぞ。
URLリンク(kukuru.s7.xrea.com)

287:デフォルトの名無しさん
08/10/04 19:32:33
>>286
マルチプラットフォームのようですが、何で作られたんですか?
あと、Mac 版はないのでしょうか?

288:286
08/10/04 19:56:30
>>287
XULの実行環境であるXULRunnerを使って作りました。
XULRunnerはMac版もあるので、動くと思うのですが、
手元にMacがないのと、実行の仕方がちょっと違うので、
少し考えているところです。XULRunnerのページが参考になると思います。
URLリンク(developer.mozilla.org)

289:デフォルトの名無しさん
08/10/04 20:15:44
Firefox 3があるなら
Firefox -app application.ini で起動できるんじゃない?

290:デフォルトの名無しさん
08/10/19 00:37:24
下のプログラムなんですが、WEBサーバに配置してみると動かなくなります。
signed.applets.codebase_principal_supportをtrueにする以外の方法(正規の方法?)
で動くようにするにはどうしたらよいのでしょうか?
署名スクリプトなんでしょうか?・・

<html>
<head>
<title>Execute Any Process</title>
<script>
function executeFile() {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var file =
Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\windows\\notepad.exe");
var process =
Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file);
var args = ["test.txt"];
process.run(false, args, args.length);
} catch (e) {
alert(e);
}

}
</script>
</head>
<body>
<input type="button" value="Run a process" onclick="executeFile()"/>
</body>
</html>

291:デフォルトの名無しさん
08/10/19 01:51:04
正気?

292:デフォルトの名無しさん
08/10/20 01:00:52
なんで?

293:デフォルトの名無しさん
08/10/26 09:11:24
>>290
file.initWithPath("c:\\windows\\notepad.exe");
こんなことやろうと思うのはXULだからだろうか。
いや、別にいいと思うんだ。いろいろ自動化できるし。
でもなんでサーバーに置こうとか思うんだろう。
無理に決まってるだろ。セキュリティ的に。


俺は何を言おうとしたんだろう。辺なののこって他。
ーーーーーーーーーーーーーーーーーーーー
PyXPCOM Mozillaの3万近いファイルを全部ビルドせないかん
→ javaXPCOM これもいっしょ
→ XULRunner HTMLのような定義ファイル+javaScript

XPConnectなら標準機能だが、JavaScriptのみのサポート


294:デフォルトの名無しさん
08/10/27 17:02:35
Firefoxタブの挙動の検知を利用したプログラムを作成したいと考えているのですが、
どうすればそのような検知が可能でしょうか?

現在何番目のタブを開いている(閉じた)であるとか、タブの位置を何番目に移動したなどを検知したいです。
そのような手法、あるいは似たプログラム等ご存知の方教えて頂けないでしょうか。
よろしくお願いします。

295:デフォルトの名無しさん
08/10/27 18:46:09
>>294
URLリンク(developer.mozilla.org)

296:デフォルトの名無しさん
08/10/28 12:16:08
>>295さん
ありがとうございます!参考にして作成してみます。

297:デフォルトの名無しさん
08/11/07 09:59:13
about:blankが表示される度に実行するプログラムを作成したいのですが
どんなコードを書けばできるのかわかりません。



298:デフォルトの名無しさん
08/11/07 10:42:52
ページの読み込みを監視するとか?
新しくタブを開いたらまずabout:blankが表示されるからその分は除外しないといけないけど。(canBackを見るなどして)


299:297
08/11/07 11:23:54
>>298
すみません、言葉が足りませんでした。
about:blankの判定する方法がよくわからないんです。
loadURI == null
で試してみたのですが

ページの読み込みってProgressListenerを使えばいいんでしたっけ?


300:デフォルトの名無しさん
08/11/07 11:39:17
var tab = gBrowser.selectedTab;
if (tab.linkedBrowser.currentURI.spec == 'about:blank' && tab.linkedBrowser.sessionHistory.count > 1) {
...
}
任意でabout:blankを読み込んだ時はこれで判定できるはず。新規タブの場合も含めるなら二つ目の条件は不要。
ページ読み込み監視はProgressListenerを使ってもいいし、gBrowserでDOMContentLoadedイベントを拾ってもいけるんじゃないかと。
gBrowser.addEventListener('DOMContentLoaded', function(aEvent) { alert(aEvent.originalTarget.defaultView.location.href); }, true);


301:デフォルトの名無しさん
08/11/07 12:03:09
>>300
ありがとうございます。参考にさせていただきます。
卒研でXULに挑戦しているのですが助かりました。


302:デフォルトの名無しさん
08/11/22 15:35:55
質問です。

1年ぐらい前にXUL勉強してて、最近やり直そうと思い

URLリンク(developer.mozilla.org)

↑見ながら再び勉強してるんですが、
chrome以下にディレクトリ作って、manifestファイル置いただけでは
例えば以下のように、

chrome://findfile/content/findfile.xul

chrome経由でブラウザで確認ってできなくなってますか?
拡張としてインストールしてからでないとだめなんでしょうか。




303:デフォルトの名無しさん
08/11/22 16:44:13
manifestファイルはどう書いた?
以下のように書いてあればいけるはず

XULファイルの場所:
C:\Program Files\Mozilla Firefox\chrome\testfiles\findfile.xul

manifestファイルの場所:
C:\Program Files\Mozilla Firefox\chrome\testfiles.manifest

testfiles.manifestの内容:
content findfile testfiles/


304:デフォルトの名無しさん
08/11/22 17:07:09
なんでprogram files直下に置くの?
プロファイルのextensionsディレクトリにおけばいいよね?

305:デフォルトの名無しさん
08/11/23 22:56:56
>>303
>>304

レスサンクス。
マニフェストファイルには、パスを
file:///findfile/content/
て書いてたんですが、file:///除去して、後文字コード見直したらうまくいきました。

306:デフォルトの名無しさん
08/11/25 13:32:56
もう解決したようだからいいんだけど、file:に書くのは絶対パスだよ。
>303の位置だったら、相対パス指定で testfiles/ と書いている部分を絶対パスで書くと
file:///C:/Program%20Files/Mozilla%20Firefox/chrome/testfiles/
になる。


307:デフォルトの名無しさん
08/12/02 03:51:25
Firefox 3.1b1で
XULのtextboxのwrap="off"が反映されず、右端で自動改行されてしまいます。
CSSのwrap周辺が変更された影響だと思うんですが
どう対応すればいいんでしょうか?

まったく同じコードで3.0.4では自動改行されません。

style属性でwhite-space:pre;としても変化ありません。


308:デフォルトの名無しさん
08/12/02 12:50:28
君が試しているのがベータ版だということが認識できていれば、
とるべき行動は自ずと明らかではないだろうか。

309:307
08/12/02 17:08:11
>>308
?????

バグ報告ですか?


バグならバグでいいんですが
そう断定するにはそれなりに情報を集める必要があるので

・既知の問題かどうか
・試してみるべきことはあるか
・バグの可能性があるか
・ハック的なものでもいいので回避策があるか

などの次のステップにつながる情報を
いただけるかと思い質問してみたんですが・・・


310:デフォルトの名無しさん
08/12/02 22:53:43
ベータを扱っててどうすればいいんでしょうかもクソもないだろ
ベータを何だと思ってんの?馬鹿なの?死ぬの?

311:デフォルトの名無しさん
08/12/02 23:04:48
>>309
Bugzilla@Mozilla
URLリンク(bugzilla.mozilla.org)
自分で調べる。

312:デフォルトの名無しさん
08/12/02 23:11:50
>>311
bugzillaはざっと見てみましたがwrap関係の報告はあるものの
今回の件に該当するものがないっぽいです。

で同じような状況の人がいないかなーと書き込みを


こういうのもダメ? >>310

313:デフォルトの名無しさん
08/12/02 23:24:12
>>307
以下をExample.xulと言う名で保存, FxにD&D,
別に問題ないように見えるけど, 何が問題でどうしたいの?
バグ報告するにしてもそれなりにしないと相手にしてもらえないよ。

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="example-window" title="Example"
xmlns:html="URLリンク(www.w3.org)"
xmlns="URLリンク(www.mozilla.org)">
<textbox multiline="true" wrap="off"
value="XULのtextboxのwrap="off"が反映されず、右端で自動改行されてしまいます。CSSのwrap周辺が変更された影響だと思うんですがどう対応すればいいんでしょうか?"/>
</window>

314:デフォルトの名無しさん
08/12/02 23:43:35
>>313
試しました。

3.0.4では自動改行されず水平スクロールバーが出ます。
3.1b1では自動改行されて水平スクロールバーは出ません。



315:デフォルトの名無しさん
08/12/02 23:45:59
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.1b3pre) Gecko/20081201 Minefield/3.1b3pre
問題ない

316:デフォルトの名無しさん
08/12/02 23:46:46
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5pre) Gecko/2008120105 GranParadiso/3.0.5pre ID:2008120105
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3pre) Gecko/20081201 Shiretoko/3.1b3pre ID:20081201204426
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20081201 Minefield/3.2a1pre ID:20081201202728

で試したけど, 全部同じ結果で問題ないよ。

>>314
3.1b1って何? そんなどこにもないぞ

317:デフォルトの名無しさん
08/12/02 23:47:58
古すぎるものでバグ出されても無死されるだけだぜ

318:デフォルトの名無しさん
08/12/03 00:06:03
>>315,316,317
↓これで試していました。
URLリンク(www.mozilla.com)
Mozilla/5.0 (Windows; U; Windows NT 5.1; en; rv:1.9.1b1) Gecko/20081007 Firefox/3.1b1

確かに古いようです。
最新で試してきます。

319:デフォルトの名無しさん
08/12/03 00:16:56
人に言われないと古いという根本的な問題に気付かないような人はベータ使うのやめた方がいいと思うよ

320:デフォルトの名無しさん
08/12/03 01:18:45
>>319
激しく同意。

321:デフォルトの名無しさん
08/12/04 08:50:30
XULの拡張を作ってます。
タブごとのセッション情報を保持したいと思っているのですが、どんな方法があるのでしょうか。

322:デフォルトの名無しさん
08/12/04 09:17:44
URLリンク(addons.mozilla.org)
中にある tab_history.js を見れ

323:デフォルトの名無しさん
08/12/04 10:38:07
Firefoxのインストール先の componentsフォルダにある
nsSessionStore.js の中を見るのがいいと思う

324:デフォルトの名無しさん
08/12/08 08:36:15
AMOの統計ダッシュボードの今週のデータおかしくない?
確認したアドオンすべてでアクティブユーザ数が
軒並み-95%ぐらいになってるんだが

水曜に集計してデータに反映されるまでタイムラグあるから
そのうち正常値にもどるかと思ってたが今のとこ変化なし。

325:デフォルトの名無しさん
08/12/16 03:49:57
Firefox3のJavascriptのXPCOM内で
与えられたあるフォルダのサブフォルダも含めた
ファイル一覧を取得しようとしています。

現在再起処理では問題なく実現できていますが
ファイル数が多いと重くなってしまいます。

非同期で処理したいのですが何を使えばいいんでしょうか?



326:325
08/12/16 06:09:26
自己解決しました。
nsITimerでいけますね。

327:デデフォルトの名無しさん
08/12/19 12:59:03
XULでツールバーにボタンをつくってそれに戻る、進むの処理をさせた
いんですけど、どうすればわかりません。よければ教えてください。

328:デフォルトの名無しさん
08/12/19 18:58:13
よくないので教えません

つか、戻る進はもうあるじゃん

329:デフォルトの名無しさん
08/12/19 19:07:24
>>327
command に
Browser:BackOrBackDuplicate
Browser:ForwardOrForwardDuplicate
を登録すればよいんジャマイカ
後はその他色々

330:デフォルトの名無しさん
08/12/21 02:12:07
「パスみえ」のようなUIを実現したいのですが、どうしたらいいか見当もつかず困っています
何かヒントをいただけませんか

331:デフォルトの名無しさん
08/12/21 17:25:18
パスみえとやらのソースをもらって解析してみればいいんじゃないでしょうか

332:デフォルトの名無しさん
08/12/21 18:05:05
URLリンク(quickware.a-quest.com)
これか? 右クリックとか D&D にこだわらなければ楽だ。用途にもよるが

333:デフォルトの名無しさん
08/12/21 19:18:27
>>331
パスみえを解析してもXULプログラミングは出来ないと思います

>>332
D&Dでドロップターゲットを取得するところまでが分かりません
右クリックは使用しません

334:デフォルトの名無しさん
08/12/21 21:07:03
似たような拡張のコードは見たのか?普通にあると思うけど

335:デフォルトの名無しさん
08/12/22 11:06:18
URLリンク(developer.mozilla.org)
汎用にするとしたらdragendでドロップ位置を取って座標で要素を取得すればいいと思ったけど
Firefox 3.0.5で試してみたけどdragendではscreenX, screenYはどちらも0になるので難しそう。

Firefox上で表示されてるパスワード入力欄についてだけパスみえのように動作するアドオンを作りたいのなら
こんな感じでどうだろう。
1.draggestureかdragstartイベントで以下の事をやる。
 ・application/x-pasumie-targetのような独自の型でデータを登録する。
 ・全ウィンドウの全フレームのパスワード入力欄に、この型のデータを受け取るdragdropかdropのイベントリスナを登録する。
2.ドロップ先要素のdragdropかdropのイベントリスナでドロップされたパスワード入力欄を特定して、パスワードを表示させる。
3.ドラッグ元要素のdragendで、全ウィンドウの全フレームのパスワード入力欄に登録したイベントリスナをremoveEventListenerする。


336:デフォルトの名無しさん
08/12/22 11:08:54
>全ウィンドウの全フレームのパスワード入力欄に
全ウィンドウの全フレーム だけでよかったスマソ

337:330
08/12/22 20:42:18
>>336
今回はまさにFirfox内の要素のみを対象として考えていました
大変分かりやすい解説をありがとうございました

338:デフォルトの名無しさん
09/01/08 19:15:35
コマンドラインのフロントエンドを作ろうとしてます。
nsIProcessだと実行しかできないようですが、
標準出力を拾う方法は無いでしょうか?

339:デフォルトの名無しさん
09/01/08 21:16:03
>>338
以前調べた限りでは
URLリンク(www.mozdev.org)
にそういう機能があるらしいけど使ったことがないから何とも言えない。

URLリンク(bugzilla.mozilla.org)
でこれをMozillaに入れるとか入れないとかしているみたい。

340:デフォルトの名無しさん
09/01/09 00:00:18
>>339
ありがとうございます。
連休にでも読んでみようと思います。

しかし、標準のままじゃできないんですね…

341:デフォルトの名無しさん
09/01/16 15:03:56
contentフォルダにsample.xulとsample.jsファイルをいれてます。
sample.jsのプログラムがうまく動きません。他に必要なファイルがあれば教えてください。

342:デフォルトの名無しさん
09/01/21 04:47:13
try {
  Components.classes["@mozilla.org/browser/sessionstore;1"]
    .getService(Components.interfaces.nsISessionStore)
    .persistTabAttribute('hoge');
} catch (e) { }

browser.sessionstore.enabled が false のときエラーになると聞いて try-catch したのに
どっちにしろ謎のエラーが・・・
ちゃんと pref 見ないとだめか

343:デフォルトの名無しさん
09/02/01 01:14:09
URLリンク(hg.mozdev.org)
こーゆーモジュールをガシガシ書いてもらって標準化してほしいぜ(それなんて jslib
FUEL はいったい何を目指しているのか…このスレを加速させる燃料にもならないぜ…

344:デフォルトの名無しさん
09/02/02 17:12:42
FUELはただのラッパだよ。正露○じゃないよ。

345:デフォルトの名無しさん
09/02/02 23:53:32
そういえばFirefox 2系が公式にサポート切れたからFUELがんがん使ってももう問題ないんだな


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch