1 名前:デフォルトの名無しさん [02/06/08 23:31] Mozillaも1.0がでてAPIが固定されたことだし、ここいらでGeckoベースのブラウザを開発してみませんか?
411 名前:デフォルトの名無しさん mailto:sage [03/05/22 20:10] ↑ 「ブラウザから」ってのが意味不明。 画面の実測の大きさ?WYSIWYGは10年前に崩壊したよ。
412 名前:デフォルトの名無しさん mailto:sage [03/05/23 01:04] CSS2を解するブラウザが現れたならprint系のプロパティを解釈してくれるでしょうけどね
413 名前:山崎渉 mailto:(^^) [03/05/28 12:58] ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
414 名前:デフォルトの名無しさん [03/06/04 04:23] この中でVC++使える人いる? いいブラウザのソースあるんだけど
415 名前:デフォルトの名無しさん mailto:sage [03/06/10 18:17] 399をインストールしました。 ですが、TGeckoBrowserだけを貼り付けて実行してみたのですが function TGeckoBrowser.GetCurrentProfile: WideString;の rv := sProfileService.GetCurrentProfile(str);部分でエラーが出てしまいます。 CurrentProfileNameも指定しているのですが、なぜでしょうか? こちらの環境はwin2k、Delphi6、Mozilla1.です。 あと、英語ですが良さそうなページがあったので張っておきます。(流し読みしたからもしかしたら関係ないページかも……) www.mozilla.org/projects/xpcom/book/cxc/
416 名前:デフォルトの名無しさん [03/06/17 22:57] なんなとなく、あげ
417 名前:デフォルトの名無しさん mailto:sage [03/06/18 19:11] C++でGeckoをやり始めたんですが、 NS_InitXPCOM2は成功するのにNS_InitEmbeddedが失敗します。 質問というより報告ですが、何か心当たりがある方は情報いただけると嬉しいです。
418 名前:417 mailto:sage [03/06/22 19:12] Geckoの基本を教えてください。環境はWindows2000+MozillaFirebird0.6です。 nsCOMPtr<nsIWebBrowser> webBrowser(do_CreateInstance(NS_WEBBROWSER_CONTRACTID)); でnsIWebBrowserを得るまでのプロセスが分かりません。 調べたところ、NS_InitEmbeddingを行えばよさそうですが、これに失敗します。 現状では、 NS_InitXPCOM2は成功します。 NS_GetComponentRegistrar、NS_GetServiceManager、NS_GetComponentManagerは成功します。 nsIComponentRegistrar#AutoRegisterは失敗します。(NS_InitEmbeddingの失敗の原因はこれのようです) do_CreateInstanceは失敗します。 どなたかご教授ください。
419 名前:417 mailto:sage [03/06/25 14:25] 自己解決しました。どうやらMozillaFirebird0.6ではダメみたいです。 何故かDOSプロンプトからC:\Program Files\MozillaFirebirdにCDできなかったので、 もしやと思いGRE入れてやってみたらうまくいきました。 #CDできないのはすごく謎
420 名前:デフォルトの名無しさん mailto:sage [03/06/27 01:52] ディレクトリ名にスペースが入ってるからだろ>Program Files。 ショートネームにしる。
421 名前:417 mailto:sage [03/06/27 05:28] >>420 いえいえ、そこまで阿呆じゃないつもりです。ショートネームでも無理ぽ。 C:\Progra~1> DIR /X (ry 2003/06/22 02:47 <DIR> MozillaFirebird 2002/10/01 03:25 <DIR> NETMEE~1 NetMeeting 2003/06/21 12:08 <DIR> nsmsgs (ry C:\PROGRA~1>cd MozillaFirebird ディレクトリの指定が違います. C:\PROGRA~1>cd Mozill~1 ディレクトリの指定が違います. C:\PROGRA~1>cd NetMeeting ディレクトリの指定が違います. C:\PROGRA~1>cd NetMee~1 C:\PROGRA~1\NETMEE~1>cd .. C:\PROGRA~1>cd nsmsgs C:\PROGRA~1\NSMSGS>
422 名前:417 mailto:sage [03/06/27 05:38] 長々と貼ってすいません。結局、DIR /Xで見たところショートネームが定義されてないんです。 #よく考えたら結構阿呆なことかも。windows板かPC初心者板逝ってきます。 ところで質問です。 現在、Windows2000+GRE 1.4f_2003062408+C++でやっているんですが、 nsIBaseWindow#Createで固まってしまいます。 nsCOMPtr<nsIBaseWindow> baseWindow = do_QueryInterface(webBrowser); baseWindow->InitWindow(nativeWindow, nsnull, 10, 10, 100, 100); baseWindow->Create(); 原因が分かる方、心当たりのある方はいらっしゃいませんか? こちらの情報が少ないですが、何が必要な情報なのかよく分かりません。 取り敢えずNS_InitEmbedding,do_CreateInstance(NS_WEBBROWSER_CONTRACTID)は成功しています。
423 名前:デフォルトの名無しさん mailto:sage [03/06/27 10:22] >>422 www.mozilla.org/projects/embedding/embedoverview/EmbeddingBasics14.html 見ただけだけど、NS_InitEmbedding() から nsIBaseWindow#InitWindow のあいだの手順は ちゃんとやってる?
424 名前:417 mailto:sage [03/06/27 13:08] >>423 nsIBaseWindow#Create(); までで異なる点はSetContainerWindowするクラスです。 CBrowserImpl は nsIInterfaceRequestor, nsIWebBrowserChrome, nsIWebBrowserChromeFocus, nsIEmbeddingSiteWindow, nsIWebProgressListener, nsIContextMenuListener, nsSupportsWeakReference, nsISHistoryListener nsIStreamListener, nsITooltipListener, nsIURIContentListener をimplementしていますが、こちらのWebBrowserSiteObjectは nsIWebBrowserChromeのみimplementしています。 今What You Provideを眺めていたところ、nsIEmbeddingSiteWindow,nsIWebProgressListener が must be implementedだったのに気付いたので今からやってみます。
425 名前:417 mailto:sage [03/06/27 13:30] nsIWebBrowserChrome、nsIEmbeddingSiteWindow、nsIWebProgressListenerを実装してみましたが、 全てのメソッドがnsIBaseWindow#Createまでに一度も呼ばれていませんでした(関数コールするとexitするようにしています) もう少しがんばってみます(できたら稚拙なページで最小限の手順を公開させていただきます)
426 名前:417 mailto:sage [03/06/28 15:04] www.mozilla.org/projects/embedding/PublicAPIs.html の www.mozilla.org/projects/embedding/public-apis-image3.gif にWebBrowserSiteObject, nsIWebBrowserChrome, nsIEmbeddingSiteWindow, nsIWebProgressListener, nsIContextMenuListener, nsIPrompt をimplementしなければならないと書いてあったので、これらのインターフェイスを exitするコードにしましたが、結果は同じようにnsIBaseWindow#Createで固まりました。 何が足らないんだろう。。次のレスで今の状態を書きますので「お前はアフォか」と思われる点があれば指摘してください。
427 名前:デフォルトの名無しさん mailto:sage [03/06/28 15:07] 結論:初心者がWebブラウザ作りたい時は、VBにIEコンポーネントをぺたり。
428 名前:417 mailto:sage [03/06/28 15:10] WNDCLASSEX wc RegisterClassEx(&wc); //いつものアレ nsCOMPtr<nsILocalFile> appDir; NS_NewLocalFile(NS_LITERAL_STRING("D:\\program\\mozilla\\GRE"), 0, getter_AddRefs(appDir)); // GREディレクトリ取得 NS_InitEmbedding(appDir, nsnull); // 初期化 HWND hWnd = CreateWindow(szClassNme, "", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, ghInstanceApp, NULL); // 窓を作る ShowWindow(hWnd, SW_SHOW);UpdateWindow(hWnd); // 表示 // 以下メッセージループ(winEmbed.cppから流用) HANDLE hFakeEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL); PRBool active = PR_TRUE; while (active) { while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { if (!::GetMessage(&msg, NULL, 0, 0)) { active = PR_FALSE; break; } PRBool wasHandled = PR_FALSE; ::NS_HandleEmbeddingEvent(msg, wasHandled); if (!wasHandled) { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } } ::MsgWaitForMultipleObjects(1, &hFakeEvent, FALSE, 100, QS_ALLEVENTS); } ::CloseHandle(hFakeEvent);
429 名前:417 mailto:sage [03/06/28 15:17] // で、作った窓のウィンドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (左クリックされたら) { newWnd = CreateWindow(szClassNme, "", WS_CHILD | WS_VISIBLE |WS_BORDER|WS_VSCROLL, 0, 0, 400, 400, hWnd, NULL, ghInstanceApp, NULL); // ウェブブラウザ nsCOMPtr<nsIWebBrowser> webBrowser; NS_ENSURE_TRUE(webBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID), NS_ERROR_FAILURE); // サイトオブジェクト(WebBrowserSiteObject implement >>426 webBrowserSiteObject = new WebBrowserSiteObject; NS_ENSURE_TRUE(webBrowserSiteObject, NS_ERROR_OUT_OF_MEMORY); NS_ADDREF(webBrowserSiteObject); // クローム登録 NS_ENSURE_SUCCESS(webBrowser->SetContainerWindow(NS_STATIC_CAST(nsIWebBrowserChrome*, webBrowserSiteObject)), NS_ERROR_FAILURE); // セットアップ(まだよく分かってません) nsCOMPtr<nsIWebBrowserSetup> setup; NS_ENSURE_TRUE(setup = do_QueryInterface(webBrowser), NS_ERROR_FAILURE); setup->SetProperty(nsIWebBrowserSetup::SETUP_IS_CHROME_WRAPPER, PR_TRUE); // ベースウィンドウ nsCOMPtr<nsIBaseWindow> baseWindow; NS_ENSURE_TRUE(baseWindow = do_QueryInterface(webBrowser), NS_ERROR_FAILURE); // 新しく作った子ウィンドウで初期化 NS_ENSURE_SUCCESS(baseWindow->InitWindow(nsNativeWidget(newWnd), nsnull, 10,10,100,100),NS_ERROR_FAILURE); // Create(ここが無限ループになる) cout << "出力される" <<endl; NS_ENSURE_SUCCESS(baseWindow->Create(), NS_ERROR_FAILURE); cout << "出力されない" <<endl; } 以上です。何かあればよろしくお願いします。
430 名前:417 mailto:sage [03/06/28 15:26] >>426 間違えてました。must be implementedなのはnsIWebBrowserChromeと nsWebBrowserSiteWindowの2つだけでした。失礼。
431 名前:417 mailto:sage [03/06/28 16:51] うぅ・・・自己解決しました。 GRE使うのをやめてmozilla1.0.1にするとnsIBaseWindow#Createが無事帰ってきました。 mozilla1.4rc3でも試しましたが、きちんとnsIBaseWindow#Createは帰ってきました。 まだ何故かnsIBaseWindow#SetVisibility(PR_TRUE), nsIWebNavigation#LoadURIをしても表示されませんが、 一歩前進した感じです。(GREはまだ手を出しちゃいけないのかな)
432 名前:デフォルトの名無しさん [03/06/28 18:50] 長文コピペウザイ。
433 名前:417 mailto:sage [03/06/28 19:31] >>432 すみません。Geckoの処理は長いので丸コピしたわけではないです。(見れば分かると思いますが) 必要な部分だけ選んだんですがそれでも長いですね。
434 名前:417 mailto:sage [03/06/30 01:44] 取り敢えず動くようになりましたのでこれで消えます。長々と失礼しました。
435 名前:デフォルトの名無しさん [03/06/30 22:41] 還元無しかよ!
436 名前:417 mailto:sage [03/06/30 23:15] >>435 いや、>>425 で言った通り、ページを作ってますよ。 取り敢えず極限まで小さくしたソースはこちらにあります。 ttp://www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/cpp_index.html 今解説(らしきもの)を書いてます。
437 名前:デフォルトの名無しさん mailto:sage [03/07/01 16:43] >>417 ガンガレ
438 名前:デフォルトの名無しさん mailto:sage [03/07/01 22:47] Geckoを使って、モジラよりショボイWebブラウザ作って何がしたいのだろう。
439 名前:デフォルトの名無しさん mailto:sage [03/07/01 23:26] >>438 Mozilla糞 pc2.2ch.net/test/read.cgi/software/1020350827/
440 名前:デフォルトの名無しさん mailto:sage [03/07/02 00:03] >>438 別にブラウザしか作れないわけじゃないだろう。 Geckoはブラウザじゃなくてただのレンダリングエンジン。
441 名前:デフォルトの名無しさん mailto:sage [03/07/03 15:12] >>436 のアドレス変わりました。 www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/MinimumGecko.html です。解説は www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/ で、トップは www004.upp.so-net.ne.jp/rcl/program/gecko/ です。
442 名前:デフォルトの名無しさん [03/07/03 17:09] >>441 おつかれ〜。いろいろ参考にさしてもらうね。
443 名前:デフォルトの名無しさん mailto:sage [03/07/03 23:08] >>440 Geckoを使った、Webブラウザ以外のAPって何かある?
444 名前:デフォルトの名無しさん mailto:sage [03/07/03 23:22] >>443 www.oeone.com/
445 名前:デフォルトの名無しさん mailto:sage [03/07/03 23:34] >>443 # Komodo (IDE) # Chatzilla (IRCクライアント) # Games (MozInvaders、Xultris、その他) # Jabberzilla (インスタント・メッセージ) 使ってないからどんなものかは知らんけどね。 と、2chブラウザとかもある。あっ、あれはXULアプリか。
446 名前:デフォルトの名無しさん mailto:sage [03/07/04 14:02] >>443 ByzantineOS (アプリかって言われると微妙だけど)
447 名前:デフォルトの名無しさん [03/07/05 00:11] >>446 ByzantineOSって、linuxのディストリビューション?
448 名前:デフォルトの名無しさん mailto:sage [03/07/05 00:46] >>446 XULでUIを実現していてて、CD1枚入れれば起動できるOSだったよな。 ドンキーコングが遊べるのが謎。 ネタ用にいつも持ち歩いてるよ。
449 名前:デフォルトの名無しさん mailto:sage [03/07/05 12:08] XULってGeckoが処理するの?
450 名前:デフォルトの名無しさん mailto:sage [03/07/05 12:38] 表示はね
451 名前:デフォルトの名無しさん mailto:age [03/07/13 20:52] 保守
452 名前:デフォルトの名無しさん mailto:sage [03/07/13 21:43] >>ドンキーコングが遊べるのが謎 著作権違反だろ
453 名前:デフォルトの名無しさん mailto:sage [03/07/14 04:58] windows2000でMinGW-3.0.0-rc-1, gecko-sdk-win32-1.4, mozilla-source-1.4を用いて ttp://www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/MinimumGecko.html にある最小のソースをコンパイルしてみたのですが失敗しました。 ディレクトリ構成は以下のようにしています。 gecko-sdk/ mozilla/ MinimumGecko/ ここでmakeしています。 Makefileに不備があるのでしょうか。分かる方、お願いします。 以下にMakefileとエラーを示します。
454 名前:453 mailto:sage [03/07/14 05:00] # 使用したMakefile CPP = g++.exe CC = gcc.exe OBJ = main.o $(RES) LINKOBJ = main.o $(RES) LIBS = -L"D:/MinGW/lib" \ -L"../gecko-sdk/embed_base/bin" -L"../gecko-sdk/embedstring/bin" -L"../gecko-sdk/nspr/bin" \ -L"../gecko-sdk/xpcom/bin" -luser32 -lgdi32 -lembed_base_s -lembedstring -lplc4 -lxpcom INCS = -I"D:/MinGW/include" CXXINCS = -DMOZILLA_STRICT_API -DDEBUG -I"D:/MinGW/include/3.2.3" -I"D:/MinGW/include/3.2.3/mingw32" \ -I"D:/MinGW/include/3.2.3/backward" -I"D:/MinGW/include" \ -I"../gecko-sdk" -I"../gecko-sdk/embed_base/include" \ -I"../gecko-sdk/embedstring/include" -I"../gecko-sdk/nspr/include" \ -I"../gecko-sdk/string/include" -I"../gecko-sdk/webbrwsr/include" \ -I"../gecko-sdk/xpcom/include" -I"../mozilla/docshell/base" \ -I"../mozilla/embedding/browser/webBrowser" \ -I"../mozilla/string/public" -I"../mozilla/widget/public" \ -I"../mozilla/xpcom/base" -I"../mozilla/xpcom/components" BIN = MinimumGecko.exe CXXFLAGS = $(CXXINCS) CFLAGS = $(INCS) $(BIN): $(LINKOBJ) $(CPP) $(LINKOBJ) -o "MinimumGecko.exe" $(LIBS) main.o: main.cpp $(CPP) -c main.cpp -o main.o $(CXXFLAGS)
455 名前:453 mailto:sage [03/07/14 05:02] 以下コンパイルエラーです。 In file included from ../gecko-sdk/string/include/nsAString.h:36, from ../gecko-sdk/xpcom/include/nsILocalFile.h:20, from ../gecko-sdk/embed_base/include/nsEmbedAPI.h:28, from main.cpp:2: ../gecko-sdk/string/include/nsCharTraits.h:383: ISO C++ forbids declaration of `difference_type' with no type ../gecko-sdk/string/include/nsCharTraits.h:383: `::difference_type' is not a valid declarator ../gecko-sdk/string/include/nsCharTraits.h:383: parse error before `;' token ../gecko-sdk/string/include/nsCharTraits.h:409: ISO C++ forbids declaration of `value_type' with no type ../gecko-sdk/string/include/nsCharTraits.h:409: `::value_type' is not a valid declarator ../gecko-sdk/string/include/nsCharTraits.h:409: parse error before `*' token ../gecko-sdk/string/include/nsCharTraits.h:417: type specifier omitted for parameter `difference_type' ../gecko-sdk/string/include/nsCharTraits.h:417: parse error before `)' token ../gecko-sdk/string/include/nsCharTraits.h:418: ISO C++ forbids defining types within return type ../gecko-sdk/string/include/nsCharTraits.h:418: two or more data types in declaration of `advance' ../gecko-sdk/string/include/nsCharTraits.h:418: semicolon missing after declaration of `struct nsCharSourceTraits<InputIterator>' ../gecko-sdk/string/include/nsCharTraits.h:421: parse error before `}' token ../gecko-sdk/string/include/nsCharTraits.h:473: non-template type ` nsCharSourceTraits' used as a template ../gecko-sdk/string/include/nsCharTraits.h:474: confused by earlier errors, bailing out make: *** [main.o]
456 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/14 13:37] gecko-sdk-winはgccでコンパイルできないんですよ。cl.exeを使うとできます。 VC++を持ってなければ、NET Framework SDKを使うと良いと思います。 どうしてもgccでやるなら、gecko-sdk-winの*.libとgecko-sdk-linuxの*.hを使うといけるかも・・・。
457 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/14 13:45] ごめん。>>456 の最後多分無理だわ。やっぱWin上ではcl.exe使うしかないかも。
458 名前:??? [03/07/14 23:50] ッ゚ホ(`Д´*)
459 名前:デフォルトの名無しさん mailto:sage [03/07/15 02:02] mingw の場合は一度 mozilla を build するとできる mozilla/dist/sdk 内を 使えばいいのかも。 embed_base_s.lib -> libembed_base_s.a embedstring.lib -> libembedstring.a plc4.lib -> plc4.dll xpcom.lib -> xpcom.dll と思われるので注意(つーか自信ない、やってみるべか…)
460 名前:459 mailto:sage [03/07/15 08:51] ちょっとやってみた。 ・/cygdrive/e/build 内に mozilla/ を展開、 www5e.biglobe.ne.jp/~level0/mozilla/news200304.html#20030519_MinGW を参考にMozillaをbuild (CVS checkout もしたのでソースは最新) ・/cygdrive/e/build/MinimumGecko/ 以下にMakefileを作成、 >>453-455 と違って、Mingw-2.0.0-3 を使用。 ・ んで Make したら、以下のエラーメッセージ main.cpp: In function `int main()': main.cpp:60: invalid conversion from `const wchar_t*' to `const PRUnichar*' main.cpp:60: initializing argument 1 of `nsEmbedString::nsEmbedString(const PRUnichar*)' make: *** [main.o] Error 1 あと一息かな?
461 名前:459 mailto:sage [03/07/15 08:55] #使った Makefile MINGW= /cygdrive/c/mingw GECKO_SDK= ../mozilla/dist/sdk MOZ_INC= ../mozilla/dist/include CPP= g++ CC= gcc OBJ= main.o $(RES) LINKOBJ= main.o $(RES) LIBS= -L$(MINGW)/lib -L$(GECKO_SDK)/embed_base/bin \ -L$(GECKO_SDK)/embedstring/bin -L$(GECKO_SDK)/nspr/bin \ -L$(GECKO_SDK)/xpcom/bin -luser32 -lgdi32 -lembed_base_s -lembedstring -lplc4 -lxpcom INCS= -I$(MINGW)/include CXXINCS= -DMOZILLA_STRICT_API -DDEBUG -I$(MINGW)/include/c++/3.2.2 \ -I$(MINGW)/include/c++/3.2.2/mingw32/bits -I$(MINGW)/include/c++/3.2.2/backward \ -I$(MINGW)/include -I$(GECKO_SDK) -I$(GECKO_SDK)/embed_base/include \ -I$(GECKO_SDK)/embedstring/include -I$(GECKO_SDK)/nspr/include \ -I$(GECKO_SDK)/string/include -I$(GECKO_SDK)/webbrwsr/include \ -I$(GECKO_SDK)/xpcom/include -I$(MOZ_INC)/docshell -I$(MOZ_INC)/webbrwsr \ -I$(MOZ_INC)/string -I$(MOZ_INC)/widget -I$(MOZ_INC)/xpcom BIN= MinimumGecko.exe CXXFLAGS= $(CXXINCS) CFLAGS= $(INCS) $(BIN): $(LINKOBJ) $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) main.o: main.cpp $(CPP) -c main.cpp -o main.o $(CXXFLAGS)
462 名前:山崎 渉 mailto:(^^) [03/07/15 09:39] __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
463 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/15 09:51] >>460 やべー。そのエラーを見る限り俺が間違ってるっぽい。 L""はwchar_t*なんだけど、PRUnicharがwchar_tになってないからだと思う。 PRUnicharの型が何になってるのか、プリプロセスだけやって調べてみてもらえないかな。(prtypes.h#471辺りを参考 多分typedef PRUint16 PRUnicharになってると思うんだけど。 うーん。結構Stringには悩まされたんだよなあ。ドキュメントも古いし。
464 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/15 10:01] ところで>>455 のエラーの原因は何だった? Mingw-2.0.0-3に変えたから起きなくなっただけなのかな。 それともbuildせないかんかった? >>455 はただの構文解析エラーだから*.libには関係ないと思うんだけど。 #ちなみにMakefileは貼らなくてもいいと思うよ。
465 名前:459 mailto:sage [03/07/15 12:07] >>463 gcc -E でプリプロセス出してみたら # 234 "../mozilla/dist/sdk/xpcom/include/nscore.h" typedef PRUint16 PRUnichar; ってなってたんで lxr.mozilla.org/mozilla/source/xpcom/base/nscore.h#234 見て -D_WIN32 つけたらオブジェクトファイルのコンパイルは通りましたぁ。 でも exe 作る段階で、 main.o(.eh_frame+0x12):main.cpp: undefined reference to `___gxx_personality_v0' /cygdrive/c/mingw/lib/libstdc++.a(vterminate.o)(.text+0xaf): undefined reference to `__Unwind_SjLj_Register' /cygdrive/c/mingw/lib/libstdc++.a(vterminate.o)(.text+0x127): undefined referenc e to `__imp___iob' /cygdrive/c/mingw/lib/libstdc++.a(vterminate.o)(.text+0x17e): undefined referenc e to `__imp___iob' /cygdrive/c/mingw/lib/libstdc++.a(new_opv.o)(.text+0x2f): undefined reference to `__Unwind_SjLj_Register' .....以下ぞろぞろとエラーが(T_T) Mingw 固有の問題っぽいのでbug 203303見直してみますわ...
466 名前:459 mailto:sage [03/07/15 13:06] 言い忘れてたけど、わたしゃ >>453-455 とは別人っすよー
467 名前:459 mailto:sage [03/07/15 14:02] スマソ、大ボケかましてましたわ。 MingwのPATHをcygwinの前に通しておくの忘れてた(汗 無事にコンパイル完了、mozilla/dist/bin に入れたら起動できました〜
468 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/15 22:59] >>466 ああ、そうでしたか。何とタイムリーな。。。 では>>464 の質問は>>453-455 宛ということでよろしく。
469 名前:453 mailto:sage [03/07/15 23:50] どうも453です。 >>はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro;さん >ところで>>455 のエラーの原因は何だった? STL関係がおかしいのかと思い、STLportを入れたりしたのですがエラー内容は変わりませんでした。 MinGW-3.0.0-rc-1の前に試したMingw-2.0.0-3でも同じで原因はよくわかりません。 >gecko-sdk-winはgccでコンパイルできないんですよ。cl.exeを使うとできます。 >VC++を持ってなければ、NET Framework SDKを使うと良いと思います。 .NET Frame SDKでcl.exeが使えるって初めて知りました。早速インストールしてみます。 >>459 さん >mingw の場合は一度 mozilla を build するとできる mozilla/dist/sdk 内を >使えばいいのかも。 そうか、その手がありました。 さっそく色々試してみたいと思います。 はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro;さん、459さん色々と情報ありがとうございました。
470 名前:459=467 mailto:sage [03/07/16 18:43] 作ったMinimumGecko.exeをmozilla/dist/greのほうにつっこめないかなーと 思ってやってみたら、 ・dist/bin/components/ 以下 gkwidget.dll, xpconnect.xpt, jsdom.dll を dist/gre/components にコピる。 ・dist/bin/chrome/ , dist/bin/res/ , dist/bin/defaults/ 以下を dist/gre/ 以下にコピる。 (ftpにあるembed-win32.zip 内の上の3フォルダのほうが中身が少なくてすむ) これでめでたくMinimumGecko.exeが動いた。 syleraもこの調子でgreのみで動かせないかなーと思ったら、マニュアルに --------------------------------------------- Mozilla1.4インストーラ付やNetscape7.1では上記の方法ではSyleraは起動しません。 これらでSyleraを使用する場合は C:\Program Files\Common Files\mozilla.org\GRE\1.4f_2003062408(最後のフォルダ名は数字やアルファベットが異なる可能性があります) に、sylera.lzhを展開してできたファイル全てと mozilla.exe又はnetscape.exeのあるフォルダ(C:\Program Files\mozilla.org\Mozilla or C:\Program Files\Netscape)にある「chrome」「default」「res」という3つのフォルダをコピーして下さい これで使用できるようになります。 ----------------------------------------- きちんと書いてあるし(汗 components\ 以下のもので足りないものは無い様子。 installer を普段使わないんで、GRE\<ver no.>\ 以下と該当3フォルダのみ 適当なフォルダにコピって中にsylera置けば普通に使えるようだ。 GREの使い方でした〜>はしのえみ好き〜(略っ)さま
471 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/18 12:17] >>470 おお!素晴らしい! 早速今晩試してみてページの方を更新しておきます。 ありがとう!
472 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/18 20:39] GRE入れて試してみました。1.5b_2003071708 defaultsさえあれば取り敢えず動きますね。 >>431 はこれが原因だったのですね。 ちなみにchromeはUI関係(消すとスクロールバーが無くなる)で resはcss関係(消すとレンダリングがおかしくなる)ですね。色々削れそう。 とにかくホントにありがとう>>459 =467=470さま
473 名前:デフォルトの名無しさん mailto:sage [03/07/18 21:03] &rlo; ッ゚ホ(`Д´*) &lro;
474 名前:デフォルトの名無しさん mailto:age [03/07/20 02:12] うざったい荒らしが減るのなら。
475 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/20 22:31] 質問です。 nsIWebBrowserChrome#SetStatus(ステータスバー変更通知)が呼ばれないのですが、何が原因でしょうか? nsIWebBrowser#SetContainerWindowはしてあり、 nsIEmbeddingSiteWindow#SetTitle(タイトル変更通知)は呼ばれます。 nsIWebBrowserChrome#SetStatusについて、API Referenceでは >Called when the status text in the chrome needs to be updated (e.g., when mousing over a link). と書いてあるのでリンクにマウスをhoverさせると呼ばれるように思えるんですが。
476 名前:470 mailto:sage [03/07/20 23:30] >>475 nsIWebBrowserChrome#SetStatus の実装で update するメソッドを呼ぶ必要があります。 lxr.mozilla.org/mozilla/source/embedding/tests/mfcembed/BrowserImpl.cpp#144 環境依存するので、独自に実装する必要があるようです。 lxr.mozilla.org/mozilla/source/embedding/tests/mfcembed/BrowserFrameGlue.cpp#64 lxr.mozilla.org/mozilla/source/embedding/tests/winEmbed/winEmbed.cpp#1207
477 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/20 23:52] >>476 レスどうも。 ところが、UpdateStatusBarTextを呼ぶためのSetStatusが呼ばれないので困っているんですが。 私、何か勘違いしてるんでしょうか?
478 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 03:22] うーん。nsIInterfaceRequestorの実装等をしていたら急にSetStatusが呼ばれるようになりました。 原因調べるのが面倒なので>>475-の質問はなかったことに。。。
479 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 03:31] あぅ。面倒とか言いながらやってしまいました。 やっぱりnsIInterfaceRequestorを実装しないとnsIWebBrowserChrome#SetStatusが呼ばれないようです。 NS_IMETHODIMP WebBrowserChrome::GetInterface(const nsIID& aIID, void** aInterface) { return QueryInterface(aIID, aInterface); } これだけでも良いみたいです。スレ汚し失礼しました。
480 名前:デフォルトの名無しさん mailto:sage [03/07/22 07:57] nsCOMPtr.hにあるdo_QueryInterface(nsI***)をしようとすると、 「Link2005 nsQueryInterface::nsQueryInterfaceは既に定義されています。」というエラーが出ます。 要するに、embed_base_s.libと、xpcom.lib(xpcom.dll)の両方にあるのが問題なんでしょうが、 なんかいい方法ないですかね。
481 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 10:29] >>480 XPCOM_GLUEを定義していませんか? gecko-sdkのバイナリを使う時はこれを定義してはいけないようです。 www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/init_term.html のTipsにも一応書いてあります。
482 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 10:32] すいません。訂正です。 www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/build.html のTipsです。
483 名前:デフォルトの名無しさん mailto:sage [03/07/22 14:00] >>481 素早いお返事ありがとうございます。 でも、きっかけが、geckoSDKだけでなんとかならないかな? ってことだったので、XPCOM_GLUEを外してしまうと意味がないのです。 nsIBaseWindow.hとnsIWebNavigationはちょっと敷居が高いので諦めて拾ってきましたが、 nsComponentManagerUtils.hはなくても大丈夫なようですね。 If文の中身がこんな感じになりましたが、無事動いてます。 ::ShowWindow(hWnd, SW_SHOW); nsIWebBrowser* webBrowser; nsCOMPtr<nsIComponentManager> compMgr; nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); if (compMgr){ status = compMgr->CreateInstanceByContractID("@mozilla.org/embedding/browser/nsWebBrowser;1", nsnull, NS_GET_IID(nsIWebBrowser), (void**)&webBrowser); } else if (NS_SUCCEEDED(status))status = NS_ERROR_UNEXPECTED; if ( NS_FAILED(status) )::MessageBox(hWnd,"error!","minibrowser", MB_OK); nsIBaseWindow* baseWindow; (nsISupports *)webBrowser -> QueryInterface(NS_GET_IID(nsIBaseWindow),(void**) &baseWindow); RECT r; // ちょっと色気を出してGeckoをクライアント領域の大きさに合わせてみる ::GetClientRect(hWnd, &r); ・・・・・・・・・・・
484 名前:デフォルトの名無しさん mailto:sage [03/07/22 14:09] あ、スマートポインタで。
485 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 19:50] >>483 なるほど。私もGeckoSDKだけでどこまでやれるかやってみますね。 とりあえず、>>480 の重複シンボルはlink.exeに-forceを渡して解決しました。
486 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 19:53] 間違えました。>>485 訂正です(訂正多いな・・俺) >とりあえず、>>480 の重複シンボルはlink.exeに-forceを渡して解決しました。 これは DEBUG を定義した場合です。 つまり、-D MOZILLA_STRICT_API -D XPCOM_GLUE -D DEBUGの場合は-forceで(一応)回避できます。 DEBUGを外せば-D MOZILLA_STRICT_API -D XPCOM_GLUEで普通にリンクできます。 (ただしnsDebugのメッセージが出なくなりますが)
487 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 20:55] >>483 XPCOM_GLUEを使ってgecko-sdkのみでやってみました。↓のリンク先を参照。 gecko-sdkのみで最小のGecko www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/MinimumGecko2.html
488 名前:デフォルトの名無しさん mailto:sage [03/07/22 21:21] >>487 グッジョブです。 ところで、nsLiteralString.hは誰が使ってるんですか? geckoSDKからは、#includeで参照されてないようですが…
489 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/22 22:05] >>488 >ところで、nsLiteralString.hは誰が使ってるんですか? さあ?EmbedApplicationじゃないかな。 mozilla/embedding/tests/winEmbed/ や mozilla/embedding/tests/mfcembed/ で使ってるけど。 まあnsEmbedStringを使っておけばいいんじゃないのかな。多分。 ちょっとstring関連は分かりにくいですね。 真面目にstringのマニュアル読むべきかもしれないけど、少し古いっぽい気がする。
490 名前:デフォルトの名無しさん mailto:sage [03/07/22 23:51] // From mozilla/string/public/nsLiteralString.h #ifdef HAVE_CPP_2BYTE_WCHAR_T #define NS_LL(s) L##s #else #define NS_LL(s) s #endif の部分ですけど、 win32のgeckoSDKではNS_LL(s)を検索してもヒットしないので、 なんで必要なのかな、と疑問に思っただけです。 なくてもビルドできますよね?
491 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/23 00:14] >>490 え、ビルドできるんですか。 PRUnichar*をどうやって得ました?直にL""と?
492 名前:デフォルトの名無しさん mailto:sage [03/07/23 14:13] コード゙を整理してたら、ビルドできなくなってました。 しかし、自分の不注意でビルドできてしまった経験は稀なので、 なんかトリックがありそうな気はしますが…
493 名前:デフォルトの名無しさん mailto:sage [03/07/24 07:10] 質問です。 www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/MinimumGecko.html にある最小のgeckoでは問題なかったのですが www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/WebBrowserSiteObject.html をコピぺしてSetStatusを実装してみたところ、GetInterfaceの出力が出たあとで 「〜の命令が〜のメモリを参照しましたメモリがreadになることはできませんでした」 とエラーが出ておちてしまいます。 原因はなんでしょうか? 環境はwin2000, gecko-sdk-win32-1.4, mozilla-source-1.4, mozilla-win32-1.4-talkback, platformSDK, NET Framework SDKのcl.exeとlink.exeです。 コンパイルを通すため、以下のようにしています。 MakefileのLDFLAGSに -nodefaultlib:msvcprt.lib を加えています。 また、コンパイル時にmain.cppの nsCOMPtr<WebBrowserSiteObject> webBrowserSiteObject(new WebBrowserSiteObject());で 「../gecko-sdk\xpcom\include\nsCOMPtr.h(539) : error C2594: '引数' : 'WebBrowserSiteObject *' から 'nsISupports *' への変換はあいまいです。」 とエラーがでたため、nsIWebBrowserChrome.h、nsIInterfaceRequestor.hの 〜 : public nsISupports { を 〜 : virtual public nsISupports { に変更しました。 コンパイルを通すために行った変更部分が原因なのでしょうか?
494 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/24 10:48] >>493 「〜 : public nsISupports { 」のままでも 「../gecko-sdk\xpcom\include\nsCOMPtr.h(539) : error C2594: '引数' : 'WebBrowserSiteObject *' から 'nsISupports *' への変換はあいまいです。」 なんてエラーは出ませんね。.NET Framework SDKのcl.exeを使っています。 win2000, gecko-sdk-win32-1.4, VC++6のSDK、NET Framework SDKのcl.exeとlink.exe という環境では以下のソースで正常にコンパイル・リンク・実行できます。確認してみてください。 www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/test/main.cpp www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/test/WebBrowserSiteObject.h www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/test/WebBrowserSiteObject.cpp www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/test/Makefile
495 名前:デフォルトの名無しさん mailto:sage [03/07/25 03:32] virtualの実体を参照しようとするのは、絵に描いた餅で雑煮をつくるようなもんだぞ。
496 名前:デフォルトの名無しさん mailto:sage [03/07/25 03:37] >>495 ?
497 名前:デフォルトの名無しさん mailto:sage [03/07/30 17:48] geckoで縦書きできないかなぁ
498 名前:デフォルトの名無しさん mailto:sage [03/07/30 17:53] >>497 bugzilla.mozilla.org/show_bug.cgi?id=145503 是非
499 名前:デフォルトの名無しさん mailto:sage [03/07/30 20:27] いくらvoteしても、パッチなんて出なさそうなんだけど。 lxr.mozilla.org/seamonkey/source/layout/html/forms/src/nsTextControlFrame.cpp このへんかなぁ?
500 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/31 03:29] >>493 遅レスですが。 「'引数' : 'WebBrowserSiteObject *' から'nsISupports *' への変換はあいまいです。」 ってのは多重継承の弊害なので、 WebBrowserSiteObject*→nsIWebBrowserSiteObject*と明示的にキャストすれば nsISupports*まで辿り着けます。 で、自分で書いといて何ですが、 nsCOMPtr<WebBrowserSiteObject> webBrowserSiteObject(new WebBrowserSiteObject());で と言うコードは書かない方がいいです。 WebBrowserSiteObject* temp = new WebBrowserSiteObject(); nsCOMPtr<nsIWebBrowserSiteObject> webBrowserSiteObject CallQueryInterface(NS_STATIC_CAST(nsIWebBrowserChrome*, temp), webBrowserSiteObject); とすべきです。(書き方は色々ですが) jt.mozilla.gr.jp/projects/xpcom/nsCOMPtr.html
501 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/07/31 03:31] CallQueryInterface(NS_STATIC_CAST(nsIWebBrowserChrome*, temp), webBrowserSiteObject); ↓ CallQueryInterface(NS_STATIC_CAST(nsIWebBrowserChrome*, temp), getter_AddRefs(webBrowserSiteObject)); スマソ
502 名前:山崎 渉 mailto:(^^)sage [03/08/02 02:30] (^^)
503 名前:デフォルトの名無しさん [03/08/06 00:58] hosh
504 名前:はしのえみ好き〜&rlo;ッ゚ホ(`Д´*)&lro; mailto:sage [03/08/06 01:25] 丁度上がっているので質問です。 form要素が使えないのですが、どうすれば使えるようになるんでしょうか? もちろん自分で調べますが、知ってる方がいらっしゃれば先に教えていただけると楽なんですが。 #未だにnsIWebBrowserChromeとnsIEmbeddingSiteWindowの役割が分からん・・・。
505 名前:デフォルトの名無しさん mailto:sage [03/08/06 20:25] >>504 all.js に pref("security.warn_submit_insecure", false); つければいいんじゃないかな。 dialog(nsIPromptServece) が出せないんで止まるんだと思う httpsとかで必要ならこのへんも pref("security.warn_entering_secure", false); pref("security.warn_entering_weak", false); pref("security.warn_leaving_secure", false); pref("security.warn_viewing_mixed", false);
506 名前:デフォルトの名無しさん mailto:sage [03/08/07 01:01] >#未だにnsIWebBrowserChromeとnsIEmbeddingSiteWindowの役割が分からん・・・。 それは、nsIBaseWindowをつかってるからでは?
507 名前:はしのえみ好き〜@仕事が詰まってるぞ mailto:sage [03/08/07 03:00] >>505 ,>>506 レスありがとうございます。 >>505 わー!すごーい!できました! なるほど、本来なら送信セキュリティチェックのダイアログが出ているんですね。 そりゃ実装してなかったら先へ進めませんわな。 本当にありがとう! >>506 んっと、「nsIBaseWindowをつか」うとはどういう意味でしょう?確かに nsIWebBrowserChrome#SizeBrowserTo,DestroyBrowserWindow, nsIEmbeddingSiteWindow#SetVisibility,GetTItle,GetSiteWindow でnsIBaseWindowは使ってますが。。 nsIBaseWindowにタッチしない方が良いという意味でしょうか? (Get|Set)Dimensions,(Get|Set)Visibilityとかで悩んでますね。 どこのやつを取ってこればええのー?って感じで。 ポップアップウィンドウを開く時に親ウィンドウのGetDimensionsが呼ばれるんですが それ一体何に使うねん。みたいな状態で・・・(ソース調べてないだけなんですが
508 名前:デフォルトの名無しさん [03/08/08 16:41] Geckoエンジンブラウザを、VisualC++のプロジェクト(ソリューション)で ビルドできる段階になっているサンプルってないですか? 参考にしたいのです。 よろしくおねがいします
509 名前:デフォルトの名無しさん mailto:sage [03/08/08 19:04] ありますよ。
510 名前:508 [03/08/09 00:22] >>509 名前か参考URLを教えていただけませんか よろしくおねがいします
511 名前:デフォルトの名無しさん mailto:sage [03/08/09 01:07] このスレを はしのえみ で検索