C++でGeckoをやり始めたんですが、
NS_InitXPCOM2は成功するのにNS_InitEmbeddedが失敗します。
質問というより報告ですが、何か心当たりがある方は情報いただけると嬉しいです。
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は失敗します。
どなたかご教授ください。
自己解決しました。どうやらMozillaFirebird0.6ではダメみたいです。
何故かDOSプロンプトからC:\Program Files\MozillaFirebirdにCDできなかったので、
もしやと思いGRE入れてやってみたらうまくいきました。
#CDできないのはすごく謎
ディレクトリ名にスペースが入ってるからだろ>Program Files。
ショートネームにしる。
>>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>
長々と貼ってすいません。結局、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 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だったのに気付いたので今からやってみます。
nsIWebBrowserChrome、nsIEmbeddingSiteWindow、nsIWebProgressListenerを実装してみましたが、
全てのメソッドがnsIBaseWindow#Createまでに一度も呼ばれていませんでした(関数コールするとexitするようにしています)
もう少しがんばってみます(できたら稚拙なページで最小限の手順を公開させていただきます)
結論:初心者がWebブラウザ作りたい時は、VBにIEコンポーネントをぺたり。
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);
// で、作った窓のウィンドウプロシージャ
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;
}
以上です。何かあればよろしくお願いします。
>>426間違えてました。must be implementedなのはnsIWebBrowserChromeと
nsWebBrowserSiteWindowの2つだけでした。失礼。
うぅ・・・自己解決しました。
GRE使うのをやめてmozilla1.0.1にするとnsIBaseWindow#Createが無事帰ってきました。
mozilla1.4rc3でも試しましたが、きちんとnsIBaseWindow#Createは帰ってきました。
まだ何故かnsIBaseWindow#SetVisibility(PR_TRUE), nsIWebNavigation#LoadURIをしても表示されませんが、
一歩前進した感じです。(GREはまだ手を出しちゃいけないのかな)
432 :
デフォルトの名無しさん:03/06/28 18:50
長文コピペウザイ。
>>432 すみません。Geckoの処理は長いので丸コピしたわけではないです。(見れば分かると思いますが)
必要な部分だけ選んだんですがそれでも長いですね。
取り敢えず動くようになりましたのでこれで消えます。長々と失礼しました。
435 :
デフォルトの名無しさん:03/06/30 22:41
還元無しかよ!
Geckoを使って、モジラよりショボイWebブラウザ作って何がしたいのだろう。
>>438 別にブラウザしか作れないわけじゃないだろう。
Geckoはブラウザじゃなくてただのレンダリングエンジン。
442 :
デフォルトの名無しさん:03/07/03 17:09
>>441 おつかれ〜。いろいろ参考にさしてもらうね。
>>440 Geckoを使った、Webブラウザ以外のAPって何かある?
>>443 # Komodo (IDE)
# Chatzilla (IRCクライアント)
# Games (MozInvaders、Xultris、その他)
# Jabberzilla (インスタント・メッセージ)
使ってないからどんなものかは知らんけどね。
と、2chブラウザとかもある。あっ、あれはXULアプリか。
>>443 ByzantineOS
(アプリかって言われると微妙だけど)
447 :
デフォルトの名無しさん:03/07/05 00:11
>>446 ByzantineOSって、linuxのディストリビューション?
>>446 XULでUIを実現していてて、CD1枚入れれば起動できるOSだったよな。
ドンキーコングが遊べるのが謎。
ネタ用にいつも持ち歩いてるよ。
XULってGeckoが処理するの?
表示はね
保守
>>ドンキーコングが遊べるのが謎
著作権違反だろ
# 使用した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)
以下コンパイルエラーです。
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]
gecko-sdk-winはgccでコンパイルできないんですよ。cl.exeを使うとできます。
VC++を持ってなければ、NET Framework SDKを使うと良いと思います。
どうしてもgccでやるなら、gecko-sdk-winの*.libとgecko-sdk-linuxの*.hを使うといけるかも・・・。
ごめん。
>>456の最後多分無理だわ。やっぱWin上ではcl.exe使うしかないかも。
ッ゚ホ(`Д´*)
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
と思われるので注意(つーか自信ない、やってみるべか…)
ちょっとやってみた。
・/cygdrive/e/build 内に mozilla/ を展開、
http://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
あと一息かな?
#使った 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)
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
>>460 やべー。そのエラーを見る限り俺が間違ってるっぽい。
L""はwchar_t*なんだけど、PRUnicharがwchar_tになってないからだと思う。
PRUnicharの型が何になってるのか、プリプロセスだけやって調べてみてもらえないかな。(prtypes.h#471辺りを参考
多分typedef PRUint16 PRUnicharになってると思うんだけど。
うーん。結構Stringには悩まされたんだよなあ。ドキュメントも古いし。
ところで
>>455のエラーの原因は何だった?
Mingw-2.0.0-3に変えたから起きなくなっただけなのかな。
それともbuildせないかんかった?
>>455はただの構文解析エラーだから*.libには関係ないと思うんだけど。
#ちなみにMakefileは貼らなくてもいいと思うよ。
>>463 gcc -E でプリプロセス出してみたら
# 234 "../mozilla/dist/sdk/xpcom/include/nscore.h"
typedef PRUint16 PRUnichar;
ってなってたんで
http://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見直してみますわ...
スマソ、大ボケかましてましたわ。
MingwのPATHをcygwinの前に通しておくの忘れてた(汗
無事にコンパイル完了、mozilla/dist/bin に入れたら起動できました〜
どうも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さん色々と情報ありがとうございました。
作った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の使い方でした〜>はしのえみ好き〜(略っ)さま
>>470 おお!素晴らしい!
早速今晩試してみてページの方を更新しておきます。
ありがとう!
GRE入れて試してみました。1.5b_2003071708
defaultsさえあれば取り敢えず動きますね。
>>431はこれが原因だったのですね。
ちなみにchromeはUI関係(消すとスクロールバーが無くなる)で
resはcss関係(消すとレンダリングがおかしくなる)ですね。色々削れそう。
とにかくホントにありがとう
>>459=467=470さま
&rlo;
ッ゚ホ(`Д´*)
&lro;
うざったい荒らしが減るのなら。
質問です。
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 レスどうも。
ところが、UpdateStatusBarTextを呼ぶためのSetStatusが呼ばれないので困っているんですが。
私、何か勘違いしてるんでしょうか?
うーん。nsIInterfaceRequestorの実装等をしていたら急にSetStatusが呼ばれるようになりました。
原因調べるのが面倒なので
>>475-の質問はなかったことに。。。
あぅ。面倒とか言いながらやってしまいました。
やっぱりnsIInterfaceRequestorを実装しないとnsIWebBrowserChrome#SetStatusが呼ばれないようです。
NS_IMETHODIMP WebBrowserChrome::GetInterface(const nsIID& aIID, void** aInterface) {
return QueryInterface(aIID, aInterface);
}
これだけでも良いみたいです。スレ汚し失礼しました。
nsCOMPtr.hにあるdo_QueryInterface(nsI***)をしようとすると、
「Link2005 nsQueryInterface::nsQueryInterfaceは既に定義されています。」というエラーが出ます。
要するに、embed_base_s.libと、xpcom.lib(xpcom.dll)の両方にあるのが問題なんでしょうが、
なんかいい方法ないですかね。
>>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); ・・・・・・・・・・・
あ、スマートポインタで。
>>483 なるほど。私もGeckoSDKだけでどこまでやれるかやってみますね。
とりあえず、
>>480の重複シンボルはlink.exeに-forceを渡して解決しました。
間違えました。
>>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 グッジョブです。
ところで、nsLiteralString.hは誰が使ってるんですか?
geckoSDKからは、#includeで参照されてないようですが…
>>488 >ところで、nsLiteralString.hは誰が使ってるんですか?
さあ?EmbedApplicationじゃないかな。
mozilla/embedding/tests/winEmbed/
や
mozilla/embedding/tests/mfcembed/
で使ってるけど。
まあnsEmbedStringを使っておけばいいんじゃないのかな。多分。
ちょっとstring関連は分かりにくいですね。
真面目にstringのマニュアル読むべきかもしれないけど、少し古いっぽい気がする。
// 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)を検索してもヒットしないので、
なんで必要なのかな、と疑問に思っただけです。
なくてもビルドできますよね?
>>490 え、ビルドできるんですか。
PRUnichar*をどうやって得ました?直にL""と?
コード゙を整理してたら、ビルドできなくなってました。
しかし、自分の不注意でビルドできてしまった経験は稀なので、
なんかトリックがありそうな気はしますが…
質問です。
http://www004.upp.so-net.ne.jp/rcl/program/gecko/cpp/MinimumGecko.html にある最小のgeckoでは問題なかったのですが
http://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 {
に変更しました。
コンパイルを通すために行った変更部分が原因なのでしょうか?
virtualの実体を参照しようとするのは、絵に描いた餅で雑煮をつくるようなもんだぞ。
geckoで縦書きできないかなぁ
>>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);
とすべきです。(書き方は色々ですが)
http://jt.mozilla.gr.jp/projects/xpcom/nsCOMPtr.html
CallQueryInterface(NS_STATIC_CAST(nsIWebBrowserChrome*, temp), webBrowserSiteObject);
↓
CallQueryInterface(NS_STATIC_CAST(nsIWebBrowserChrome*, temp), getter_AddRefs(webBrowserSiteObject));
スマソ
(^^)
503 :
デフォルトの名無しさん:03/08/06 00:58
hosh
丁度上がっているので質問です。
form要素が使えないのですが、どうすれば使えるようになるんでしょうか?
もちろん自分で調べますが、知ってる方がいらっしゃれば先に教えていただけると楽なんですが。
#未だにnsIWebBrowserChromeとnsIEmbeddingSiteWindowの役割が分からん・・・。
>>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);
>#未だにnsIWebBrowserChromeとnsIEmbeddingSiteWindowの役割が分からん・・・。
それは、nsIBaseWindowをつかってるからでは?
>>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 名前か参考URLを教えていただけませんか
よろしくおねがいします
このスレを はしのえみ で検索
>>512 ありがとうございます。これって自分で手動で1つ1つ
ファイル取得するのですか?
ftpとか圧縮ファイルってないのですか?
圧縮ファイルはあるけど、CVSの方がいいと思う。
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
517 :
デフォルトの名無しさん:03/08/19 11:37
UNIX系のサーバーで動作するGeckoベースのサムネイル作成プログラム
ってあります?
unixかどうか以前にgeckoでサムネイルを描くっていう話を聞いたことがないな。
プリントプレビューとかできるんだから、わりと簡単に出来るんだろうけど。
519 :
デフォルトの名無しさん:03/08/19 13:43
520 :
デフォルトの名無しさん :03/09/09 02:00
mozctl.dllを使ってる人いる?
user_pref()を読み込ませるにはどうしたらいいか知ってたら教えてください。
prefs.js作っておいとけば勝手に読んでくれるのかなと思ったんだが、
どうも読んでないっぽい。Proxyを設定したいんだけど。
>>521 だよね。そうだと思ってやってるんだけど、ダメだった。
あと別サイトで自作ソフトexeと同じ場所にdefault_pref.jsって
書いてあったからそれもやったけど、だめだった。
もしかするとちゃんと読んでるけど読んだとおり動いてないってことかな?
524 :
デフォルトの名無しさん :03/09/09 09:39
ネット上の怪しい情報もふくめていろんな説があったので全部試してみました。がダメでした。
C:\Documents and Settings\(foo)\Application Data\Mozilla\Profiles\MozillaControl\(foo)\prefs.js
C:\Documents and Settings\(foo)\Application Data\Mozilla\Profiles\MozillaControl\prefs.js
C:\Documents and Settings\(foo)\Application Data\Mozilla\MozillaControl\prefs.js
C:\Documents and Settings\(foo)\Application Data\MozillaControl\prefs.js
C:\(exefolder)\prefs.js
C:\(exefolder)\default_pref.js
あと、念のためNetscape7とMozillaの設定画面でもプロファイルも設定しました。
prefs.jsの中身は
user_pref("network.proxy.type", 1);
user_pref("network.proxy.http", "192.168.1.1");
user_pref("network.proxy.http_port", 8080);
です。
が、about:configしても結果は
network.proxy.type, 0
network.proxy.http, ""
network.proxy.http_port, 0
ですた。
ちなみにプロファイルを読まない以外はGeckoの挙動自体には問題はないです。
普通にサイトやローカルファイルを見ることができます(プロキシを通らなければ)。
>>524 \MozillaControl
で合ってますか?うちは何故か
\MozillaControl-1
でした。
原因探る前に止めちゃいましたけど。
526 :
デフォルトの名無しさん :03/09/09 11:45
>>525 -1つけてみましたがダメでした。
というか今発見したのですが、
C:\Documents and Settings\(foo)\Application Data\MozillaControl\profiles\MozillaControl\(aabbcc).slt\
というフォルダは削除しても自動的に作成されます。
その中にbookmarks.htmlやらprefs.jsやらも自動的につくられます。
でもそのprefs.jsを書き換えても読み込まれません。
うぉおおお、謎だ。
>>526 …んー?
prefs.jsじゃなくてuser.jsを作ってみてはどうでしょうか?
中身は user_pref(キー, 値); で。
529 :
デフォルトの名無しさん:03/09/09 19:52
Geckoを ActiveX で貼り付けたんですが
メッセージを受け取れません CSC_NAVIGATEBACK とか
IEコンポーネントでは上手くんですが
互換ということですがIEとは呼び出しかたが
ちがうんでしょうか
なんで、そう自分の都合のいいように解釈できるかなぁ。
532 :
デフォルトの名無しさん:03/09/11 08:37
自分で貼り付けたブラウザのキャッシュとか何処に保存されているのでしょうか?
533 :
デフォルトの名無しさん:03/09/11 22:05
一概に 何処とは いえませんが
スタートメニューの検索で
history.dat とか
Cache とか
キーワード入れて探して見てください
ここは光子力ロケットを研究するスレッドですか?
>Geckoを ActiveX で貼り付けたんですが
538 :
デフォルトの名無しさん:03/09/25 18:36
揚げ
えろい
>>539様
> lxr あちこち見てみたけど、embedding の API だけを使う限り無理っぽいなぁ。
ライブラリビルドしなきゃいかんのはちょっと厳しいですね・・・。
各フレームのnsIDOMWindowが取れたらそいつからnsIScrollable取ってちょちょいとできるのかと
軽い気持ちでおりましたが、なかなかそう簡単にはいかないのですねぇ。
わざわざ調べて頂いてほんとにありがとうございました。
これでスクロールバーのことはすっぱり忘れられそうです。
忘れると書いてから言うのもなんだけど、nsIScrollableを見る限りやっぱりできそうな気がするんだよなあ。。
nsWebBrowserもpublic nsIScrollableだし nsDocShellもpublic nsIScrollable だから
NS_IMETHOD GetCurScrollPos(PRInt32 scrollOrientation, PRInt32 *curPos) = 0;
NS_IMETHOD SetCurScrollPos(PRInt32 scrollOrientation, PRInt32 curPos) = 0;
NS_IMETHOD GetScrollRange(PRInt32 scrollOrientation, PRInt32 *minPos, PRInt32 *maxPos) = 0;
NS_IMETHOD SetScrollRange(PRInt32 scrollOrientation, PRInt32 minPos, PRInt32 maxPos) = 0;
こんだけありゃどう見てもいけそう。
調査しようと思ってるけどなかなか時間がなくって。(というかwxWindowsに悪戦苦闘してるせいなんだけど。
最小のGeckoブラウザでclassic.jarとtoolkit.jarを出来る限り削ってみた。
まだ削れるところがあったり、もっと昨日増やしたら不具合出るかもしれないけど一応。
classic.jar
/skin/classic/global以下のすべてのファイルとディレクトリ。
toolkit.jar
/content/global以下の
bindingsディレクトリとその中のすべてのファイル、xul.css、contents.rdf
ここまで削ってWindowsXPの圧縮フォルダで圧縮したら合計130kBに。
componentsも今度やってみようと思う。
名前入れるの忘れてた。
短時間だけ浮上して長時間潜航するクセはどうにかしないとなぁ。
Delphiコンポーネント作るのがんばってみるか。
>>542 componentsは結構厳しいですよ。
サイトによって必要なものが変わったりしますから。
googleでOKでもmozilla.org行くとエラー吐いたり。
こっちは今wxWindowsコンポーネント(?)を作ってるんですけど、
Delphiコンポーネントって今どういう状況になってます?
#サイト更新されてないようですけど:-p
>>545 wxEmbedは色々参考にしました。
wxmozillaはビルドにmozillaが必要なことと、
イベントハンドリングがXRC向きじゃないということから一から作ってます。
AustereはXRCがメインで、プラグイン形式のコンポーネントをサポートしたいのです。
>>545様
ところでwxmozillaはwxNotobookに乗せて使えますか?
GtkPizzaがrealizeする前にnsIBaseWindow#InitWindowしちゃってるみたいなのですが…。
それからwxWindowsのソース中のコメントではm_widgetがGtkScrolledWindowの時もあるからm_wxwindowsを使ってね
みたいなことが書いてあるんですが、m_widgetをGtkEventBoxにしちゃってたり、m_widgetでnsIBaseWindow#InitWindowしたりしてるんですが…。
>>544 ようやくタブフォーカスの問題が解決しました。
VCLが相当悪さしていたようです。
コンポーネントは一度ソースを書き直しているので以前よりあまり進んでいません。
これからも暇を見つけてちょこちょこ書き足していくつもりですが。
#遊ばせてるスペースがあるからサイト立ち上げようかなぁ。
>>548 ぜひ立ち上げて。進捗教えて。ソース見せて。
550 :
デフォルトの名無しさん:03/10/11 13:48
1 さん復帰アゲ
551 :
デフォルトの名無しさん:03/10/19 15:06
もいっちょ
モジラ本家にも見捨てられかけてるGeckoを今更…
新しいウィンドウ作成がどうしてもうまくいかない・・・。
ポップアップの出る旧Tripodのページを表示しようとしたら
新しいウィンドウにも現在のウィンドウにも新しいページが表示されない。
それどころか閉じるとAV出るし。
WindowCreator登録してCreateChromeWindowで
新しく作ったnsIWebBrowserChromeぶち込めばいいだけだよね。
何でうまくいかないんだ・・・
コード弄ってるうちにできるようになりました。
GetInterfaceでnsIDOMWindowを取得するようにしたときに
out Intf引数の扱いが変で関数内で明後日の方向に飛んでいってしまうのが原因だったようです。
あとはコンテキストメニューを表示できるようになれば実用に差し支えなくなります。
557 :
デフォルトの名無しさん:03/11/15 04:23
K-meleonの日本語化に苦戦中。
とりあえずlayerタブの日本語の文字化けがどうしようもない。
IEコンポーネントを使えば1秒で完了なのに。
いや、コンポーネントブラウザ総合スレならともかく
gecko スレでそれを言われても。
いや
>>558の脳内ではIEコンポーネントを使えば1秒で
Geckoベースのブラウザが作れるんだろう。
何もそこまでGeckoベースに拘らんでも…
まぁソレを言うとこのスレの意味が無くなるが、
Geckoベースのメリットって別段無いしな。
ソースが公開されてる、と言っても別段、
Geckoのソースに手を入れて使うわけでも無し。
だからそういう話題はスレ違い。
ここはGeckoを使うか使わないかを議論するスレではなく、
Geckoを使うことに関して話し合うスレ。
そう。理屈では無い。これは信仰心。宗教だ。
>>564 宗教はお前だろ。
WinのスレでMac最高っていってるマカーと同じ。
スレ違いってことがわかってない。
要するにバカなんだよ
私はバカになりたい
570 :
デフォルトの名無しさん:03/11/17 02:46
信者の集うスレはここですね?
違います。
信者とかいう概念に囚われてると、好奇心で行動する椰子の考え方は理解できんってことか。
むしろ、
>>570がある宗教(IE?)の信者に思える・・・。
IE教はあまり聞かないが、オープンソース教徒は割と頻繁に見かける。
確かにネット上でIE絶賛してるサイトは余り見かけん。むしろ叩きの方が多いんじゃないかな。
オープンソースまんせーサイトは結構あるのに。
このサイトはIEX.X以上でご覧下さい。
なんていくらでもあるだろ。
>>577 そりゃ単に(シェアを理由に)他のOSおよびブラウザでチェックしたがらない怠慢
まぁコストの問題とかあるんだろうが、それでも文法チェックの甘いブラウザはチェック用途に
向かないと思う、無論最終チェックには良いだろうが
そういう意味でOpera7なんかも良くなりつつある(アドなので俺は使わないが)と思うのだが、
Mozilla程マンセーがないのはオープンソースでない故かな
スレ違いスマソ
文法チェックが甘いブラウザ、ではなく、許容度の高いブラウザなワケだが。閲覧には便利。
文法チェックは別ツールで行うべき。HTML Lintとか。
もちろんそうだけど、見た目のチェックは複数のブラウザでした方がいいでしょ。
おまいらそろそろ続きはソフトウェア板かWeb制作板でおねがいします。
>>583 Delphiで同じものを作って起動直後に11月25日18時28分現在のYahoo!JAPANを表示させると
タスクマネージャでメモリ使用量16284kB、仮想メモリサイズ6900kBでした。
ちなみにGoogleツールバー装備のIEでは21420kB、12804kBで、
Googlebar+CTX+TBX+Prefbar2のNetscape7.1では29888kB、20560kBでした。
win2ksp3のIE6.0SP1環境でYahoo!JAPANを表示時
IEの消費メモリが 使用メモリ量19MB 仮想メモリ10MBなので
Gekkoの最小構成といえども思ったよりもメモリ必要量は少なくないですね。
ありがとうございました。感謝
#IEの方はシステムと切り離していない環境なので割り引いて考える必要がありますね
何回か起動終了を繰り返すうちにIEは使用メモリ11MB 仮想メモリ3MBになりました
やっぱり、メモリの量はあんま関係無いみたいだね。
メモリの量を減らしたいなら、
componentsとchromeに手を入れざるをえんだろうなぁ。
sylera2でたね。
588 :
デフォルトの名無しさん:03/11/30 14:31
age
IEからJavaScriptでMozillaを呼び出すようにできないかな?
ホームページ作成者がIEとMozillaを選べるようにしたい。
RewriteCond %{HTTP_USER_AGENT} ^"^Mozilla/.\.0 \(compatible; MSIE.*$ [NC]
RewriteRule ^.*
http://www.mozilla.org/ [R,L]
なんかゴミが入った
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.\.0 \(compatible; MSIE.*$ [NC]
RewriteRule ^.*
http://www.mozilla.org/ [R,L]
592 :
デフォルトの名無しさん:03/12/11 18:49
ブラウザ以外でgeckoエンジンを組み込んでいるソフトってありますか?
(例えばバナー表示などで)
参考にしたいので(ソースの有無にかかわらず)教えてください
thunderbird
XPsp1に
Mozilla 1.5 ActiveX Control と Minizilla.zip(勝手に)を DLして
Mozilla 1.5を C:\Mozilla と言うフォルダにインストールし
そして Minizillaの解凍したものを 同じフォルダへ入れました
レジストリ登録はインストーラの方でやってくれるみたいす。
環境変数PATHは同じフォルダにそのソフトを置けばいいようなのでやってません。
この状態で起動はごく普通にできるんですが
再起動すると フォルダが 増えて行くんです
(MozillaControl MozillaControl-1 MozillaControl-2)のように
default_pref.js も読み込んでないようです
なにか ご存知方いますか?
Mozilla 1.6 Beta を DLし Mozilla 1.5 ActiveX Control の吐き出すファイルと同じように
余計なファイルを削除し(フォルダの中身はいじってない が msgbsutl.dllだけ追加 )て
↑ のとうりにやってみたら 起動する度にフォルダは出来ずうまくいってますね
という事は いじっていない フォルダのどれかに違いがあるんですかねぇ?
K-Meleon0.8.1は日本語を含むパスにファイルを保存できないのだがそれが出来れば・・・
RSSReaderとかもpluginで作ってないかなあ
597 :
594-595:03/12/29 21:59
新しいバージョンが出たのでそれをインストールしたら 直ってしまいました
2003/12/24 Mozilla 1.6 ActiveX Control Test
598 :
デフォルトの名無しさん:03/12/30 00:08
ActiveX コントロールの 右クリック
何とかなんないかな〜
上にclがどうたらってレスがあったけど、
VC++をインストールせずに、cl.exeにパスを通すだけでビルドする、
ってのは可能なのかな?
>>600 何が言いたいんだ?さっぱり分からん。
VC++のcl.exeをどっかからコピってくるってことか?
だとしたらGeckoいじる前に簡単なプログラムやった方が良いと思われ。
.Net Framework SDK に cl.exe が入っているけど
ビルドするには加えて MS Platform SDK も必要、じゃなかったかな。
これ落とせばMozillaがコンパイルできる?
K-Meleonのプラグインをコンパイルしてみたいんだけど、なんか色々必要みたいで・・・
>>604 > これ落とせばMozillaがコンパイルできる?
Mozilla自体をコンパイルすんの?スレ違いじゃない?
> K-Meleonのプラグインをコンパイルしてみたいんだけど、なんか色々必要みたいで・・・
何が必要なの?
そのぐらいのことならResourceHackerでいいんじゃないの?
そーなんですけどね。実際それの類似ツールで書き換えて表示させてるんですが、
Ctrl+Gのネット検索とかは日本語をまともにGoogleに渡してくれないんで
どうしたもんかなあと思いまして。
エンジンはGeckoでいいが、インターフェースはあれを使ってほしくない
というよりも
あのインターフェースが大嫌い。
はっきりいって、他のソフトよりも浮いて見える。
>>599 なんか出遅れたみたいで 今更なんですが
Mozilla ActiveX Controlで作ったやつの右クリックで
進む や 戻る とかは出来るんですがコピペが出来ないんです。
Ctrl+C や Ctrl+Vで一応出来るんですが・・・
やっぱまずはVC++買わないとダメか
おや?こんなところまでくるのかw
>>614 何故そう思う?
そんなに
>>613の文章が暇人に見えるのか?
蕪木ら某はMozillaスレでよく見かけるから、こんなところにも来るのかと言っただけだが?
あと、「はんかくせ〜」って何だ?
ああ、すまん。誤爆かキチガイのどっちかだな。
>>615に対するレスは返さなくていいよ(返せないと思うけど)
617 :
デフォルトの名無しさん:04/01/04 11:43
618 :
デフォルトの名無しさん:04/01/04 12:06
ぷらら ぷらら か〜
619 :
デフォルトの名無しさん:04/01/04 18:49
著作権侵害厨の集うスレはここですか?
のんびりスレなんで、煽らんでくれ。
漏れもわかんないけど。
ところで、tabの取り扱いって、C++側からだと、貧弱過ぎません?
nsITabBrowserなんてクラスがあったら便利だと思うんだけど。
例えば、tabのシングルウィンドウを本格的にサポートしようとすると、
nsIWebNavigationでは力不足だと思う。
nsITabBrowser::LoadURIinTab(in nsIURI targetURI, in nsIURI refererURI, in PRBool bypassCache);
みたいなメソッドが必要なんじゃない?
>>624 おいおい。それはUA側で実装することだろ。
何でGeckoがあるかないか分からないタブの面倒を見なきゃならんのだ?
>>624 それに、タブを作るには親ウィンドウのハンドルが必要だろ。
初期化が面倒になるし、Gecko自体も複雑になるではないか
627 :
デフォルトの名無しさん:04/01/06 22:33
もともとDOMのwindowは名前がつけられるんだから、tabのnative窓がどこであれ
それを統括的に扱う仕組みが必要だと思うが…。
UA側ってどういうこと?
たとえば、すでにtabを2つ以上開いててそれぞれの名前が_A,_Bだった場合、
_Aのコンテンツで
javascript:window.open("test.html","_B","resizable");
を呼ばれたら困ってしまう。
現行のバインディングでは、親子関係にまったく触れてないから、
仮にwindow.open()で新しいタブが作れた場合、
window.opener.close()で(1)閉じられない(2)自分ごと閉じてしまう。
こういうのをバインディングにやらせるのは荷が重い、
というかややこしすぎてダメだと思う。
>>629 >現行のバインディングでは、親子関係にまったく触れてないから、
はい?親ウィンドウは通知されますよ?
だから、親ウィンドウじゃなくて、親タブ?を渡すのが筋かと。
window.close()はウィンドウじゃなくて、タブを閉じてほしいでしょ?
>>631 だから何を言ってるのよ?
親ウィンドウのハンドルは君が言うところの親タブ?のハンドルでしょ。
つっかGecko触ったことないでしょ?
君が行くべきスレはXULスレじゃない?
>>631 通知される親ウィンドウってHWNDじゃないのは分かってる?nsIWebBrowserChromeだよ?
nsIWebBrowserChromeもウィンドウに変わりはないでしょうが。
タブで開くと親ウィンドウ=子ウィンドウってことだよ。
>>634 >タブで開くと親ウィンドウ=子ウィンドウってことだよ。
HWND等に限って言えば、ね。
でもnsIWebBrowserChromeのインスタンスは違うんだからさあ。区別できるでしょー?
もうレスしません。めんどくさい。
大変恐縮なのですが、教えていただきたいことがあります。
Geckoを使ったブラウザは、軽いのから重いもまでいくつかありますよね。
でも、実際に使ってみた実感として、
起動速度の違いはあるものの、
描画速度に関しては似たり寄ったりのような気がします。
(epiphanyとfirebirdを比べてみました。)
ブラウザの描画の仕組みを知らないのですが、描画速度というものは、
完全に描画エンジンによって決定されるものなのでしょうか?
つまり、Geckoを使ったブラウザで軽いとか重いとかいうのは
起動の時の話のみを言っているのでしょうか?
ちょっとスレ違いかもしれませんが、よろしくお願いします。
FirebirdやMozillaなどのXULを使ってるタイプ(非ネイティブUI)の場合、GeckoはUIの方も面倒見なきゃいけないから差が出る。
つうことで、重い軽いは起動のときに限ったことじゃない。
再描画するのはGeckoなんだから重いテーマは軽いテーマより時間がかかることになる。NautiPolisとClassicで比べてみるとすごく実感できる。
もうちょっと詳しい方の説明キボンヌ。
Gecko使ったブラウザでお勧めは何でしょう
有名じゃなくてもいいです
>>638 テーマの話が出てくると言うことは、上で言っているUIというのは
HTMLの中の物ではなくて、ブラウザ自身のUI(更新ボタンとか)の
話ですよね。
Geckoってそんなものまで面倒見るものだったのですか。びっくりです。
昔、Galeonを使ったときには、HTMLの中のUI(sendボタンとか)が
Mozillaとはちがって、GTKっぽいもの(?)だった気がするのですが
これは、HTML上のUIもGeckoは面倒を見てないと言うことなんですね。
そうだとすると、ボタンやらリストをいっぱい貼り付けたHTMLを表示すれば
MozillaとGaleonの表示速度に差が出てくるんですね。
Geckoはそんな風に使う機能を取捨選択できるわけですか。
軽いブラウザを作ろうと思ったら、Geckoに仕事させない方がよいと言うことですね。
あれれ…でも、Geckoのドキュメントを目にすると、「賢くて描画も速いよ」みたいな事が
書いてあったのですけど、、、あくまで宣伝文句?
>637=641
HTMLの中のボタンなんかは、Geckoじゃなくてシステムの方で作るんだ。
GeckoはHTMLを解釈して設計図を作ってシステム側に渡すだけ。その設計図をもとに、HTMLの中のボタンをGTKやQtとかが用意する。
ボタンとかエディットボックスとか、そういうものをまとめてWidgetって呼ぶんだけど、GTKやQtのはあらかじめ完成品が用意されていて、サイズとか配置をもとに、そこにおくだけでいいから、速くて軽い。
Geckoの"描画が速い"ってのは、このGTKなんかに渡す設計図を作るのが速いってこと。
一方、Mozillaの概観はHTMLじゃなくて「XUL」で出来てる。こっちはGTKやQtじゃなく、GeckoがXULを解釈して自分で作る。
XULで作るWidgetの材料はGTKやQtから借りてきて、その上に各テーマごとの見栄えやWidgetの配置、クリックされたときの動作をGeckoが一から作る。
そのせいでGaleonやSkipstoneに比べてMozillaやFirebirdの動きはもっさりしてる。
テーマごとに重さなどに違いがあるのは、ClassicやLo-Fiなど、GTKなどの完成品にちょっと飾りをつけるだけで済むのに対して、ModernやNautiPolisはほとんど全ての部分を自力で作ってるから。
というわけです。
(;´Д`)エロイヒトホソクオナガイシマス...
>>642 とても分かりいやすい説明をありがとうございます。
2chでこんなに詳しく解説を頂いたのは初めてかも。
konquerorとmozillaでWidgetの見た目が違うのは
GTKとQtの違いと言うことですね。
本当にありがとうございました。
netを徘徊してもう少し勉強してきます。
いちおー補足しとくと、“GTKとQtの違い”という場合は、KonquerorとGaleonという対比になるな。
Mozillaの使ってるのは飽くまでもXULで、環境にKDEを使ってるならXULを構成する元はQtだし、GnomeならGTKってことになる。
をを、mozillaは使う環境でWidgetが変るわけですか。
勉強になります。どうもです。
書きこむたびに突込みどころ満載の私。ははは。
結論としては、IEコンポーネント最強ということですか?
642の説明は怪しい気が…
たしかに、一部のUIはOSの機能をそのまま使って作られてるけど、
そうじゃないのもあるでしょ。
ボタンはlook and feelが働くのでOS側の外観を真似てるように見えて、
実はGeckoが描いてるんじゃない?
CSSがバリバリ効く部分では、Geckoを使わないと、逆に不経済だと思う。
Gecko使った2chブラウザってないよね
>649
Moz2ch
651 :
デフォルトの名無しさん:04/02/04 11:07
まあGeckoというよりXULを前面に押し出してるからなあれは…
p2はGecko使ってるぜ!
LinuxZaurusで動くGeckoブラウザって作れるかな?
てか、最小でどのくらいのサイズに出来る? DLLも含めて。
654 :
デフォルトの名無しさん:04/02/11 01:05
>>653
基本機能だけなら256kで十分っしょ
655 :
デフォルトの名無しさん:04/02/11 13:18
DLLを含めて 256K?
ありえねー
$ ls -lh /usr/local/mozilla/mozilla.exe
-rwxr-xr-x 1 ******** None 141k Oct 7 18:40 /usr/local/mozilla/mozilla.exe*
これのこと言ってんだろうね。
最小つってもSSLを使うかどうかとか、条件によって変わって来るんだが、
本当に極限まで絞り込んだらxpcomとgfxで4MBぐらい…かな?
>>654-656 どうもです。
SSLとかは使いたいですね。実用に耐えうる最小限にするつもりなので。
その際のサイズがどうなるかは……まあ、やってみるのが一番か。
では、今度暇なときにでも挑戦してみます。
あれ?間違えた。iPAQって書いたつもりだたよ。tnx
>>660
はしの(略)氏の最小ソース見て思ったんだけど、
tabのsingle window modeはnsWindowWatcherで実装したほうがいいのかなぁ。
ポップアップブロッカーも結局ここでシャットアウトしてるみたいだし。
>>662 >single window modeはnsWindowWatcherで実装したほうがいいのかなぁ。
そうですけど、何と比べて「ほうがいい」なのでしょうか?
664 :
デフォルトの名無しさん:04/03/29 20:09
保守
embedding helpが消えた・・・
JavaにGeckoを叩き込むやり方を、わかりやすく解説してる所はありますか?
そもそも叩き込めますか?
>667
公式にあったとは気づきませんで…
ありがとうございました。
>669
ありゃ、マジですか。
わざわざありがとうございます。
いまさっきmozdevでJRexって言うプロジェクト見てきたけど、あれってJavaでGecko使うやつじゃないのかな?
>>671 ほんとだ。試してみよう。情報ありがと。
673 :
デフォルトの名無しさん:04/05/14 21:26
何故IE以外を除外するのは何も言われないのに
IEを除外するのは文句言われるんだろうか。
権力があれば何をやっても許されるのか。
多数決に何の疑問も抱いてない輩はそう思っているだろうな。
675 :
デフォルトの名無しさん:04/05/15 00:12
Geckoって鬼束なんたらが歌っている曲のことか?
676 :
デフォルトの名無しさん:04/05/15 00:42
爆風スランプの歌?
678 :
デフォルトの名無しさん:04/05/16 21:11
何処の誰かは知らないけれど、
誰もがみんな知っている。
保守
680 :
デフォルトの名無しさん:04/07/17 18:11
HOSH
>>681 Geckoブラウザと言うよりもXULアプリでJavaScriptを使わずにDelphiを使うというようなものか。
あるいはDelphiのUI設計にXULを使うと言うべきか。
テストしてみたいがユニット名かぶってるのもあるし
そもそもDelphi6しか持ってないし。
ていうか最近本当に人居ないなこのスレ。
>>681 このスレの当初の目的はこれのブラウザ特化したものを作るということだったっぽいけど、これを使って何かを作るのも在処な。
684 :
デフォルトの名無しさん:04/07/29 01:58
>>682 >ていうか最近本当に人居ないなこのスレ。
現状打破のためにもまた今までできているものをうpしてみたらどうでしょう?
あれからいろいろ解決しているようですし…
>>400 を入れてみたのですが、GeckoBrowser、MozillaProfile、DirectoryServiceProvider、PromptService
を貼りつけてIDEから実行→閉じるとDelphiの「読みこみ違反がありました」のダイアログが出て
ダイアログを閉じても閉じてもまた出てくる…という状態になるのですが、
同じ状態になる人はいませんか?
(Mozilla1.4でも1.7でも同じ、コンパイルしたexeを実行→閉じても何の異常もありません。
Win98SE、Delphi6です。)
>>681 のbetaがとれて1.0になってますね。
やっぱIEコンポーネントの方が安定してるな…。
使うのも簡単だし。
Geckoにはがんばってもらいたい!
IEコンポーネントを超えてもらいたい!
機能も使いやすさも!
俺はGecko自体の開発の力にはなれないけど・・・
でも期待しとりますですよ!
・・・Gecko開発のカンパとかあるのかな・・・
あるなら少しだけど出してもいいな〜。
>>688 励みになります。これからも末ながいお付き合いを。
>>689 MozillaFoundation本体へのカンパならありますが、日本からだとちょっと面倒くさいかも。あんまりしらべてませんが。
#Wikiを立てたのは良いものの、XULが本業&Delphiの素人なもので、正直手探り状態です。
#
>>74氏がsf.jpとかにプロジェクトを立てたりしたら
#また面白いことになりそうかなーと妄想しているのですが…
#どうでしょう?
>>689 カンパはありますよ。公式ページで募集してます。
>IEコンポーネントを超えてもらいたい!
>機能も使いやすさも!
具体的にIEコンポーネントにあってGeckoにない機能って何ですか?
GeckoがIEコンポーネントと比べて使いにくいと思われる点はどこですか?
>691
Geckoの問題というよりパッケージングの問題が大きい気が。
初心者が求めているのは「インストールしただけで簡単にいろいろな機能を使えるビルド」で
Mozillaの売りである拡張性の高さは求められていない、と。
検証用にインストールしてるユーザはそれなりにいるみたいなんだけど、
IEコンポ系から乗り換えが少ないのは、初見の扱いづらさだと思う。
JAVAでGeckoコンポーネント使うための詳しい資料がほしい・・・
もちろん日本語の資料がほしい・・・
誰か本出さないかな・・・
本買うよ。カンパも少ないけどするよ。
>Mozillaの売りである拡張性の高さは求められていない、と。
非互換の元だしな。
追加報告。
どうもTGeckoBrowserを貼りつけたフォームを実行→終了して、
最初に何らかのWindow(Delphi、Firefox、Jane、ClockLauncherなどなど。)
をマウスなりなんなりでActivateした瞬間に変なことになるようです。私にはこれ以上はムリポ…orz
NT系のほうでは起こらないんでしょうか。
糞ースネクストの某ソフトが原因でした。
恥ずかしい。
逝って来ます。
>>697 ∩___∩
∩___∩ / ⌒ ⌒ 丶|
| u .ヽ (●) (●) 丶 イ`〜・・・
/u .|. ミ (_●_ ) |
| ミ ハッ ミ 、 |∪| 、彡___
彡 u 、`\ ハッ ./ ヽノ ___/
/ u ./´> ) ハッ 〉 /\ 丶
(_| ./ (_/  ̄ .\ 丶
| /. \ 丶
| /\ \ /⌒_)
| / ) ) } ヘ /
∪ ( \. J´ ((
\_) ソ
ワロタ
IEコンポ ←→ Geckoエンジン の切り替えみたいなのってどうやったらイイ?頼む
このときURIの文字列をShowMessageかなんかで表示したいのですが
このあとどうすればいいんでしょうか…
見よう見真似なのでおもいっきり変なことしてるかもしれませんが。
procedure TForm1.GeckoBrowser1LocationChange(Sender: TObject;
Location: nsIURI);
var
str:nsDependentCString;
begin
str:=nsDependentCString.Create;
Location.GetSpec(str);
>>701 つまり、バギーで使い難いIEコンポってこと?
とりあえずできました。あほだな俺…
でもなんか分かってきた希ガス。XULのときもこんなもんだった。快感です。
procedure TForm1.GeckoBrowser1LocationChange(Sender: TObject;
Location: nsIURI);
var
str:nsCString;
s:string;
L:Integer;
I:Integer;
begin
str:=nsCString.Create();
Location.GetSpec(str);
L:=str.GetLength;
for i := 0 to L do
begin
s:=s+(str.Ptr+i)^
end;
ShowMessage(s);
end;
mozillaってなにを機に進化したの?
どこどーしたらこんだけワーアップ?firefoxとかも将来的にごてごてにする予定?
気になるっちゃ気になるんだけど、調べるっちゃー深すぎるし
時間も根気もスペックも貯金も彼女もないので誰かざっくりと、
話かわるけどさ、俺って質問する時間なんとなく間違えてる?時間云々じゃなし、そのなんでも聞く姿勢が、まあまあ
Delphiコンポーネント開発本立ち読みして、おぼろげな記憶で
いろいろめちゃくちゃにいじってたらフォーカスが何かの拍子
(タブキーでフォーカスを移動させたとき)に働くようになった豫感。
もうちょっとがんばってみます。
新版をアップロードしました。
バージョンアップではなく既に別物になってます。
>>681さん、すいません。
!
ありがとうございます!
早速使ってみましたがCtrl+Cなどが効くようになっていますね。
プロファイルを指定しなくても動くのがいい感じです。
ところで、GeckoBrowserを二個作ろうとすると失敗するのは現在の仕様でしょうか。
CallbackInterfaces.pasのInitWindowCreatorの
sWindowCreatorInitialized := True;
creator := TWindowCreator.Create;
付近でおかしくなっているようですが…
#夢が膨らみますね。OpenJaneG、とか…
#そういえば実はもう既にJaneうpろだにGeckoActiveXControlを使った実験版がかつてあったらしいですよ。
>>708 確認しました。
CallbackInterfaces.pasの102行目以降を次のように変更すればうまくいくはずです。
Result := False;
if not sWindowCreatorInitialized then
try
sWindowCreatorInitialized := True;
creator := TWindowCreator.Create;
sWindowCreator := creator;
except
end;
if not Assigned(sWindowCreator) then Exit;
>>709 ありがとうございます。
これでタブブラウザが作れます。
基本ができたら稚拙ですがうpします。
(といっても某Actyのサイトのパクリですが)
>>712 確認しました。
どうやらブラウザを閉じる際に後始末をちゃんとしていなかった事が原因のようです。
テストプログラムを組んで「開く」→「閉じる」を繰り返してみたところ、
10回から20回くらい繰り返したところで xpcom.dll での読み込み違反が発生しました。
次のような処理を TGeckoBrowser.Destroy の中で行えば200回くらいなら問題ないようです。
それ以上の回数は確認していませんが多分大丈夫だと思います。
if Assigned(FWebBrowser) then
begin
FWebBrowser.RemoveWebBrowserListener(Self, nsIWebProgressListener);
FWebBrowser.RemoveWebBrowserListener(Self, nsISHistoryListener);
FWebBrowser.SetContainerWindow(nil);
FWebBrowser := nil;
end;
>>713 なおったようです。ありがとうございます。
ちなみにもう一つ発見したのですが、bulkfeeds.net(今現在落ちてます)など、
落ちているサイトをロードしている最中にタブを切り替えて、もういちどタブをもどすと
同じような現象が起きます。
これはabout:blankをまず読みこむようにすれば良いのでしょうか。
>プロファイルを作るようにしたのは関係してるんですかね…
正にその通り。過去ログ嫁。
717 :
デフォルトの名無しさん:04/09/04 15:42
これすごくいいね。
期待してる。
面白そうだな。
作ってる香具師がんばれ。
ここまでIEが普及していると、今さら開発は無駄だと思う。
マイナー派な俺は意地でもIEは使わない。
気にってたオペラはライブドアが買収しちゃったので
コレには期待している。
722 :
デフォルトの名無しさん:04/09/05 15:27
ライブドアは、Mozilla.orgよりもずっとマイナーだ。
マイナー派ならオペラを使い続けるべき。
残念だけどこれからメジャーになるよ
ていうか、Mozillaがマイナーになるよ。
ていうかコレがマイナー派の主力になれ
女を金で買うライブドアがOperaとったのでOpera捨てましたが何か?
そこでIEですよ。
だからメジャーなもん使っても面白くねーYO
ブラウザ選択ごときで自己主張でつか(藁
マイナー自慢するならlynxかw3mのようなテキストブラウザ、
もしくは音声再生みたいなブラウザ探すとか(何)
メジャーとかマイナーとか関係なくてぇ
tableのthead,tfoot固定とposition: absoluteが使えるブラウザならどれでもいい。
732 :
デフォルトの名無しさん:04/09/09 12:45
position: absolute とか使うやつはクソ。
>>732 画面上部にメニューバーを実装するときどう書く?
Gacktベースのブラウザを作ろう。
ガクトってまだテレビとか出てんの?
あの男はもう終わってるじゃん。
Geckoに比べればまだ芽がある。
しかし虫の息
オープンソースって、なんか上手く行かないケースが多いな。
成功と失敗を分けるのは何?
第三者に知られることがないだけで、
オープンソースじゃないプロジェクトもやっぱり上手く行かないケースが多い。
でなきゃデスマーチという言葉は生まれない。
ソースの公開なんてどうでもいいんだよ。
その作品が使えるものか使えないものか、それだけだ。
オプソにすれば、全世界が協力してくれて、ウハウハ
みたいな期待は見事に裏切られた訳で・・・
オプソの良さって何だろ?
>743
オープンソースってのは再利用を促進することにメリットがあるんでしょ。
みんながソースコードを非公開にしていると、誰かが同じ機能のプログラムを
作っていたとしても結局自分で作り直す必要がある。
ソースコードを公開することで、同じ機能の部品は流用して無駄な労力を省き、
新しい機能の開発に注力することができる。
そうやって作られた新しいプログラムもオープンソースであれば流用元のプログラムに
新しい機能をフィードバックして発展させられる可能性がある。
・・・というのが建前。
実際にはボランティアのプログラマが主に自分が必要だと思う機能を追加していって
それをマネージャが取捨選択していくわけで、自然とマニアが欲しい機能が充実して
素人が欲しい機能は実装が遅くなる。
利益とか効率とかじゃなくて、文化の継承だよ。
ソースの形で知識が技術が蓄積される。
最初に作っていた人が開発を止めても、
誰か他の人がそのソフトウェアに価値を見出して
開発を引き継げば消えてなくならずに済む。
746 :
デフォルトの名無しさん:04/09/12 03:11:50
>>744 Geckoのソースよりも、IEコンポーネントの方が再利用は盛んな罠
>>744 意外と再利用しにくいんですよね。
ドキュメントが整備されていなかったり。
英文翻訳からスタートする必要があったり。
巨大すぎたり。
要するに解析する手間>新規作成の手間の場合が多い。
結局、流行るのはTIPS&FAQの蓄積か、せいぜいコンポーネント単位の再利用。
でもこれでは、新規作成の手間とあまり変わりなく
再利用できれば、新しい分野に使うことが出来るリソースが無駄に使われている。
現状は、こんな感じでしょうか?
結論:コンポーネントプログラミング>>>>>>>>>>>>>>.オープンソース
次元の違うものを比べるやつはバカ、ということがわかりましたね。
観点が同じなら比較は可能と思われ。
再利用性で比較した場合は、
>>748の言う通りと思われ。
>>750 オープンソースのコンポーネントでコンポーネントプログラムした場合はどうなるんだ?
お前らその話はそこまで。続きはソフ板でやれ。
具体的な技術の話がなくて素人評論家談義しかないからだろ。
ていうかGeckoベースのブラウザを作るスレじゃないのか?
オープンソースの弱点とからめて
なかなか進まないGeckoベースのブラウザ開発を
促進する・広める方法を皆で考える
みたいな話が聞きたいな
>>756 オープンソースって、だれかひとり/どこか一社が本気で作らないと進まないよ。
>>758 ですよね。
台所をガラス張りにしたからといって
お客さんが材料を切ってくれたり、皿を洗ってくれたりする訳じゃない・・・
オプソはお客に何を求めるのか。お客はオプソに何を求めるのか。
この辺りの折り合いは付くのでしょうか?
Geckoの場合はどうですか?
>>754 つまり、自分に理解できない話はよそでやれ、と。
Geckoはオープンソースの中では比較的成功してる例だろう。
てか、ここはGeckoを利用したブラウザの開発スレなのでそれ以外の議論は別でしてくれ。
bagel_p11_src.zipを元にTGeckoBrowserの使い方の勉強を始めたけど、結構めどいな。
ieコンポーネントのように楽ができる代わりに縛りが多いのとは対照的で、色々できる
代わりに学ぶことも多いという。
http://tkms31.xrea.com/xul/bagel_p57_src.zip あれからいろいろ手を加えたので、よろしければどうぞ。といってもTGeckoBrowser自体には
contentDocument、contentWindow、docShellぐらいしか加えていないですが。
コメントがほとんど無いので見苦しいのですがお許しを。
私はXULでめんどくさくないコードでMozillaに触れていましたから、そう苦労は無かったですが…
やはり初見の人にはそうもいかないですよね。
IEコンポを軽く触ったことしかないから、設定項目が多い(=たくさん弄れる)Geckoは俺にはつらいかも。
だからこそやりがいがあるわけだが、先駆者が少なくて英語のドキュメントすら404ばっかで大変だな。
ActiveXかSDKかどっちか悩んでいるが、XUL使おうと思ったらSDKだよな?
まったく、この先俺は大丈夫だろうか……。がんがってつくるぞー
>>763 新しいソース有り難うございます。早速参考にします。
とりあえずはieコンポ使った自作ブラウザを置き換える方向で頑張るか…
>>681 大変初歩的な質問で申し訳ないのですが、これを実行するにはmozilla or firefoxに環境変数を通すだけではだめなのでしょうか?
Error: GRE_Startup()が発生して起動に失敗するのですが。
>>766 GREの中身をそっくりそのままソース置いてるディレクトリにコピーすれば
いいみたいですよ。
>>767 GREですか。以前、ActiveX版で開発してた頃は使わなかったからなぁ。気づかなかったです。
早速試してみますね。
>>763 bagelのdprは付属してないんですね。
Mdiapp.dprでなんで動かないのかしばらく悩んでました(w
Geckoベースブラウザ開発しているところってどのくらいあります?
国内でメジャーなの教えて欲しい。あと、gecko関連の技術情報も。
Geckoベースで国内でメジャーなのといえばSyleraでしょう。
こまめにメンテナンスされてるし、軽くて安心して使えるブラウザです。
TGeckoBrowserベースに本当に最低限必要な機能実装したブラウザはできたけど、
唯一スクロールバーの出し方がわからん・・・
タテ方向に広いサイトならマウスのホイールで動かせるけど、横方向に広いサイトを表示
するとスクロールバーがないのでキーボードでスクロールさせにゃあかん。
bagelでも今のところ表示してないみたいだけど、特に問題ないのだろうか。
>>769 ああ、しまった…少々お待ちを。
>>771 GREだけでは駄目らしいです。
Mozillaのchromeもコピらないといけないらしいです。
詳しくはこのスレを「スクロール」で検索
違ってたらすまん
773 :
デフォルトの名無しさん:04/11/07 09:18:20
>>773 すでにIBM日本のサイトから存在が抹消されているようだから第5回日本語版は望み薄。
英語版を読んで翻訳して公開して。
そうか〜 どっかにひっそり公開されてないかと思って聞いてみたんだが。
日本IBMってやる気ないよな。
なんでいつまでも訳のレベルがあんなに糞のままなんだ。
実は日本人がいな(ry
実はHALが翻訳し(ry
Firefoxには褒められすぎる価値がある
あいかわらずTBE入れないとタブが使い物にならんが
>>781 Tabbrowser Preferences入れただけで快適になっとるが
TBEだと同じサイトのリンクでもたまに新しいタブで開かれるから困る
783 :
デフォルトの名無しさん:04/11/15 12:29:38
firefoxのエンジンを使った一番簡単なブラウザの書き方が解説してあるサイトを教えてください
787 :
デフォルトの名無しさん:04/11/22 15:36:35
788 :
デフォルトの名無しさん:04/11/22 16:54:52
789 :
788:04/11/22 16:55:39
やっとこさfirefoxへ突っ込めた。gecko-sdk-*を使ってたらできない。
以下メモ。
NS_InitXPCOM2を実行する前に、
NSGetStaticModuleInfo = app_getModuleInfo
として、実行バイナリに含ませる静的モジュールを登録する関数(NSGetStaticModuleInfo)を
独自のもの(app_getModuleInfo)に切り替える。
(@see nsAppRunner.cpp)
app_getModuleInfo関数の中では、引数infoにnsStaticModuleInfoの配列へのポインタを設定する
(@see nsStaticComponents.cpp)
nsStaticComponents.cppのようなものをリンクする。
面倒であれば、ビルド後のnsStaticComponents.objをリンクしてしまってもよい。
791 :
デフォルトの名無しさん:04/11/25 11:02:20
ヤフオクをみるときにフィルタリングできる機能をつけて欲しい。
クソ情報出品が多すぎて欲しい商品探すのに一苦労。
"儲","稼","万円", "情報"がタイトルにあったらあぼーんしてくれるように。
。。。。お願い
オミトロンでも使え
1.8a5で nsIWebProgressListener と nsIPromptService がようやく、ようやく、・・・
なんと。今まで仕様が固まってなかったのか。知らなかった。
797 :
デフォルトの名無しさん:04/12/02 17:24:38
firefoxの拡張機能を作成しようと思っているのですが、どこか参考になるページはないでしょうか?
XUL を使った firefox の拡張機能の作り方は探せばあるけれど、 C++ を使った XPCOM コンポーネントを含んだ拡張機能の作り方の解説ページとかって見つからないなぁ。
_Y_
r'。∧。y.
ゝ∨ノ >>このスレが ,,,ィf...,,,__
)~~( 無意味な時を _,,.∠/゙`'''t-nヾ ̄"'''=ー-.....,,,
,i i, 過ごしていく間に ,z'"  ̄ ̄ /n゙゙''''ー--...
,i> <i 文明はどんどん r”^ヽ く:::::|::|:::〔〕〔〕
i> <i. 発達していく・・・・。 , 入_,..ノ ℃  ̄U ̄_二ニ=
`=.,,ー- ...,,,__ |,r'''"7ヽ、| __,,,... -ー,,.=' >ーz-,,,...--,‐,‐;;:'''""~
~''':x.,, ~"|{ G ゝG }|"~ ,,z:''" ___
~"'=| ゝ、.3 _ノ |=''"~ <ー<> / l ̄ ̄\
.|)) ((| / ̄ ゙̄i;:、 「 ̄ ̄ ̄ ̄| ̄| ̄ ̄ ̄\
))| r'´ ̄「中] ̄`ヾv、 `-◎──────◎一'
├―┤=├―┤ |li:,
|「 ̄ |i ̄i|「.//||「ln|:;
||//__|L_」||__.||l」u|:;
|ニ⊃| |⊂ニ| || ,|/
|_. └ー┘ ._| ||/
ヘ 「 ̄ ̄ ̄| /
.xpt はcomponents以下に置いてやれば、認識してくれるが、
hoge.dllといったコンポーネントはcomponents以下に置いても認識してくれないのだが。
やっぱりGecko-SDK使わないで、Firefoxの全ソースビルドして、
>>800 のようにそのソースツリーでコンパイルしなければならないのか。
_Y_
r'。∧。y.
ゝ∨ノ
>>802 compreg.datにDLLやjs、xpti.datにxptの登録情報が書いてある。
これがあると登録はすべて完了しているとみなされるから、
.datを消すか強制登録するかしないとだめ。
あとDLLとjsにはNSGetModule関数が必須。
>>799-804 Firefoxはその心配いらない。
インストーラーのcomponentsフォルダに入れるだけ。
>>804-805 なんらかのエラーで登録されなかった模様。
プロファイル作りなおしてやったら正常に入りました。ありがとうございます。
807 :
デフォルトの名無しさん:04/12/23 18:40:37
OSSに対する直接的な貢献というのは、狭義にはソースコードの提供である。
通常は元となるソースに対しての差分をパッチという形で提供することになる。
そのパッチをメンテナと呼ばれるコアな開発者にメールなどで送りつける事が狭義の貢献である。
メンテナはそのパッチをみてよければ採用しよくなければ採用しない。
良い悪いというのはどうやって判断するのか?オープンソースの七不思議である。
ある人のパッチは受け入れられてある人のパッチは受け入れられない。
ある種の経験則はもちろんあるがその経験則を厳密に記述する事は難しい。
商用ソフトウェアの場合はコードの変更は担当者が行うので受け入れるも受け入れないもなくて
各社の社内規約に従って淡々とコードが追加されていく。
オープンソースの場合その明文化された「社内規約」に相当するものがないので、
ある種の秘密クラブの掟みたいな空気によって様々な意志決定がなされる。
新参者は空気を読め、空気をという話である。
mozilla.orgにはあまり当てはまらない気がする。
ガチガチの規則があるからそれを順守したら、ほぼ確実に採用される。
まあ、規則にのっとらない行動をする時は空気を読むしかないんだろうけど。
それよりも、生活時間帯の差のせいで、どうでもいいような返事をもらうのに
一晩かかったりするのがちょっとめんどくさいかな。
Gecko使いたければMozillaをビルドしないとだめなの?
810 :
デフォルトの名無しさん:05/01/16 07:08:16
age
Lunascape2.0はGeckoもIEもどっちも選べるよ
>811
Luna重すぎぬるぽ
813 :
sage:05/01/28 01:14:23
30kbぐらいのフルブラウザとか作れますか?
フルブラウザ
誰もいないの?
816 :
名無し:05/03/13 14:31:02
はじめまして。
現在、Geckoのサンプル実装であるwinEmbedの解析をしております。
WebBrowserSiteオブジェクトとWebBrowserオブジェクト間のインターフェース
の仕組みにXPCOMが使用されていますが、それを使用する利点とは何なのでしょ
うか。個人的には、直接オブジェクトを操作してもよいのではと考えています。
また、URLの入力フィールドにコンボボックスを使用していますが、winEmbedの
バグなのか、起動すると正しくウインドウ上に表示されません。ですので代替方
式として拡張コンボボックスを使用していますが、フィールドが表示されURLを
入力することが出来るものの、リストボックスがドロップダウンしません。
何方か、ご教授ねがいます。
よろしくお願いします。
817 :
名無し:05/03/14 19:05:09
あげ
818 :
デフォルトの名無しさん:05/03/16 01:04:40
http://d.hatena.ne.jp/kitano/20050310#p1 内部告発:ちゆ12歳は右傾化扇動工作サイト?
---
要するに「ちゆ12才」を運営しているのは「スキップアップ」という企業体である。
やったことはご存じの通り「プロジー」や「オープンソース(社)」と連携した右傾化扇動工作である。
それも完全に政治目的。確信犯である。プロ奴隷はそれに騙された残党に過ぎない。
断言してもいい。何故、言い切れるか?理由は簡単である。
カナメ自身がその扇動工作側の人間だったからだ。(つづく)
>従来の読者へ
隠ししてごめんなさい、スミマセン。
---
唐突ですが、TGeckoBrowserのちらつきの件、
private
procedure WMEraseBkGnd(var Msg: TMessage); message WM_ERASEBKGND;
implementation
procedure TGeckoBrowser.WMEraseBkGnd(var Msg: TMessage);
begin
Msg.Result:=0;//ちらつき防止
end;
で直ります。
またFocusNextElementは
function TGeckoBrowser.FocusNextElement: Longword;
var
Ancestor: TWinControl;
begin
Ancestor := Parent;
while (Ancestor <> nil) and (not(Ancestor is TForm)) do
Ancestor := Ancestor.Parent;
if Ancestor <> nil then
PostMessage(Ancestor.Handle, WM_NextDlgCtl, 0, 0);
end;
とかけばいいらしいです。
保守
822 :
デフォルトの名無しさん:2005/07/13(水) 00:26:00
C#でフォーム上にMozilla ActiveX Controlを貼り付けて使用しています。
Navigateを呼び出すとフォーカスがMozillaコントロールに奪われてしまうのですが、
これを阻止するにはどうしたらよいのでしょうか?
今まで試したこと:
NavigateComplete2イベント内でフォーカスを再設定する。
→無効
タイマーで一定時間毎にフォーカスを再設定する。
→有効だが、フォーカスを再設定する前のキー入力を取りこぼしてしまう。
よろしくお願いします。
823 :
plus7 ◆XULQA16CSE :2005/08/21(日) 02:45:52
寂れてるage
これ以上Firefox信者に騙される可哀想な被害者を出さない為に
http://firefox.geckodev.org/index.php?%A5%C8%A5%C3%A5%D7%A5%DA%A1%BC%A5%B8 に以下の文章を書き込んで真実を伝えていきましょう。
(書き込んでもFirefox信者が定期的に消しているようなので以下の文章が消えていたら書き込む。)
まず、冒頭に
「*Mozilla FirefoxとMicrosoft Internet Explorer [#b10f5f4d]
Recently Symantec, the anti-virus security company, released a security report and in that report they pointed out that according to their test IE's
render engine is much more secure than the Firefox render engine.
最近、Symantec(アンチウイルス警備会社)はセキュリティレポートを発表しました。そして、そのレポートでは、
Microsoft Internet Explorerのエンジンでレンタリングする方が Firefoxのエンジンを使ってレンダリングするよりはるかに安全だと指摘しました。
http://www.bbcworld.com/content/template_clickonline.asp?pageid=665&co_pageid=2 Mozilla 製品には Internet Explorer よりもより多くのセキュリティ脆弱性があると報じられたのは、これが初めてではない。
3月には Symantec が Internet Security Threat Report Volume VII 【訳注:インターネットのセキュリティへの脅威関する報告 VII】を公開し、
2004年後半の状況を報告している。同報告は次のように述べている。「ブラウザに影響する脆弱性の発見は増加傾向にあり、この期間に報告された
Mozilla の脆弱性は Microsoft Internet Explorer の脆弱性よりも多い ... 2004年 7月 1日から 12月 31日までの間、
Symantec は Microsoft Internet Explorer に影響する脆弱性を 13 件報告しているが、この件数は、同期間中に Mozilla 製品で報告された 21 件と比較して、
明らかに少ない。Opera では 6 権の脆弱性が報告されており、Safari では報告されていない。」
http://slashdot.jp/journal.pl?op=display&uid=12840&id=310454 そして、Geckoエンジン採用 のところに
「Internet Explorerとの互換性が乏しいので、現在Internet Explorer基準で作成されたサイト閲覧時に正しく表示されないという問題が発生します。」
放置されてる脆弱性はIEの方が多いからな。
>>827 それそれ。リンク失念しちゃってました。ありがとう>ぶっきらぼう
829 :
plus7 ◆XULQA16CSE :2005/08/29(月) 14:17:05
830 :
某スレッド74:2005/11/25(金) 22:11:50
Irvineがircom.exeを使わずに操作できそうなので
ちょっと(・∀・)ニヤニヤしながらage
831 :
デフォルトの名無しさん:2005/11/29(火) 17:24:37
gecko使うのに必要なdllが
作ったアプリケーションのルートディレクトリから占領しててUZEEEEから
/geckoみたくフォルダ作ってそんなかにそれ関係全部移して動作させたりできたりしませんかねぇ・・
>>831 つgre-win32-installer.exe
結構足りないファイルあるけど。
あとC++ならGREとSDKのバージョンの一致が必須かも
>>831 PATHさえ指定すれば完全に別フォルダで起動できますよ。
sage
835 :
デフォルトの名無しさん:2006/01/21(土) 00:04:19
>>1ではないけど、C++/WTLベースでコツコツと作っている俺なら・・・
スレを知ったのは最近ですがここでの情報は大いに役立ってます
837 :
plus7 ◆XULQA16CSE :2006/01/24(火) 13:57:51
838 :
plus7 ◆XULQA16CSE :2006/01/28(土) 01:45:04
IEそのものにGeckoエンジン組み込めないの?
ActiveXかなんかで。
・IE7に対抗する
・古いIE用にも。
・できればポップアップブロックとタブ機能とダウンローダ機能がほしい。
IEにおけるtridentとActiveX上のGegckoじゃレイヤが違うじゃん
>>839 ヒント: Mozilla ActiveX Control
ただしフルページにはできない
いいこと考えた
ろだにあげといた
どこだよ
0051.gif
最後のフレーム
ああいう人、いろんなスレで見かけるけど、精神病とか持ってるのかな
それとも日本語の流暢な工作員とか
余りにしつこいと萎えるけど、想像するの面白いですね。
850 :
デフォルトの名無しさん:2006/03/16(木) 04:06:28
ageちゃうよ><
851 :
http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 19:55:39
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
852 :
デフォルトの名無しさん:2006/04/29(土) 20:32:46
あげ
853 :
デフォルトの名無しさん:2006/06/07(水) 23:38:21
ho
855 :
デフォルトの名無しさん:2006/07/15(土) 06:14:49
おまんこ
age
よく落ちないもんだな。
Delphi5でGeckoベースのブラウザを作るにはActiveXしかないでしょうか?
SDKはDelphi5では動かないようです。
Delphi6 Personalじゃだめなんですか?
2ch閉鎖(?)か……。
mozctlx.dll使ってブラウザつくっているんだが、httpsのページを開くと落ちるんだが
もしかしてmozctl.dllってfirefox2.0に対応していないのか?
って誰も見ないか
862 :
デフォルトの名無しさん:2007/02/28(水) 23:44:30
age忘れた
mono-projectがGecko sharpを開発してるな。
使ってみたけど俺の環境だと存在する筈のファイルが見つからないとかのエラーで落ちて使えなかったけど。
それとまだポトペタ開発には対応してないみたい。
865 :
デフォルトの名無しさん:2007/03/02(金) 23:34:54
現在、Bagel2(仮称)を計画しています。
間性は2020年度を予定しています。
完成だろ完成www
それにしても2020年リリースですか。
2010年 宇宙の旅
2010年 府中の旅
Gecko界のDonut
という代名詞がぴったりだな
874 :
デフォルトの名無しさん:2007/11/20(火) 18:11:38
gtkmozembedを使ってGTK2にmozillaを実装してみたんですが、PHPでPOSTする動きのページを
動作させるとmozillaが反応しなくなります。
もともとPOSTには対応していないのでしょうか?
CentOS4.2
httpd-2.0
GTK2-2
mozilla-1.7.13
PHP4
です。
>>874 それだけの情報ではさっぱりわからんけれど、
とりあえずMozilla1.7.xは相当古いので、
最近のFirefoxやXULRunnerのgtkmozembedでも試してみては?
>>874 security.warn_*がtrueだとWindowCreatorが呼び出されるけどその辺大丈夫?
877 :
plus7 ◆DHcM3x9Sng :2008/01/13(日) 21:38:48
878 :
デフォルトの名無しさん:2008/01/28(月) 19:45:52
mozctl.dllを使用してタブブラウザを作成してるんだがタブ上で右クリックして閉じるってことできんのかな
IE8超高速
880 :
デフォルトの名無しさん:2008/06/25(水) 14:59:56
mozctl.dllをActiveXかC++から使いたいのだが、XulRunnerとか諸々19MBもの巨大な
ファイル群は必須?あまりにでけえ・・・
スタティックで必要なやつだけ使えないのかなー?
せめて数MBにならないもんだろうか・・・
IE7よりは何作ってもマシ
JavaでGecko動かす方法ない?
SwingかAWTで動かす方法探してるんだが・・
gecko javaでググレったら、実現できそうな方法が3つぐらい見つかった訳だが。
ちなみにどれも2年近くメンテされてないような訳だが。
885 :
デフォルトの名無しさん:2008/10/02(木) 00:27:14
GeckoFXで今ちろちろとやってるんですが
中身のたぐりよせかたはだいたい何とかなったんですが
クリックなんかのアクションを起こす方法がわからないです
IEWebbrowserなんかだと、GetElementsByNameにぶら下がっている
InvokeMemberメソッドに("click")とかやればクリック出来るのですが
GeckoFXでは見つからなくて・・・
他にクリッカブルマップとか、フラッシュのボタンを押すのはどうしたらいいでしょう
普通ならdocument.createEventで作成したイベントをelement.dispatchEventでelementに送るところだけど、
GeckoFXのnsInterfaces.csに含まれているべきインターフェース定義が欠けているので、GeckoFX自体に
記述をいくつか書き加える必要がありそう。もうちょっと調べてみる。
Flashについては期待しないほうがいいかもしれない。軽く調べたがわけがわからん。
887 :
885:2008/10/04(土) 13:33:56
調査、ありがとうございます。
Gk.Navigate("javascript:void(document.getElementById('demobtn').click())")
とりあえず回避方法を探していたら、
クリックしたいボタンにidを割り振ってしまって、Navigateの引数に
urlではなくて、スクリプトを書き込んだらクリック出来てしまいました
当面はこれで凌いでいこうと思います
Flashは・・・うーん・・・・Sendkeyでtabとenter連打で正しいボタンを探しながら無いのかなぁ
888 :
デフォルトの名無しさん:2008/10/13(月) 21:10:25
nsCOMPtr.h がコンパイルできません。
XULRunner sdk win32 1.9.0.1
cygwin gcc 3.4.4
#include <windows.h>
#include "nsCOMPtr.h"
だけして
g++ -I xulrunner-sdk/include/ -I xulrunner-sdk/sdk/include/ -c tst.cpp
すると
In file included from tst.cpp:2:
xulrunner-sdk/sdk/include/nsCOMPtr.h:949: error: an explicit specialization must be preceded by 'template <>'
xulrunner-sdk/sdk/include/nsCOMPtr.h:1452: error: an explicit specialization must be preceded by 'template <>'
でエラーがでます。gcc のせい?
あー HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX とかいるんですね。
ごめんなさい。
890 :
デフォルトの名無しさん:2008/10/16(木) 14:37:46
誰かWindowsMobile用にブラウザ作ってくれや
今はWindowsMobileの方は待ちの時期だとおもうよ。
噂じゃMinimoの代わりのGeckoブラウザが10月中にでるかもって聞いたが。
893 :
デフォルトの名無しさん:2008/10/29(水) 19:20:50
もうOperaでいいじゃん>WM
894 :
デフォルトの名無しさん:2008/10/29(水) 19:28:41
実際に使うとOperaもまだまだダメダメだ>WM
ただでさえ小さい市場でやる気感じられないんだから
選択肢は少しでも多いほうがいい。
DOSで動くGeckoブラウザが欲しい。
あと、今DOSを使ってる人ってなかなか少ないから、
コマンドプロンプト上でも動くように作ってあると良いかも
あとは、少々欲張りだが、インストール不要希望。
896 :
デフォルトの名無しさん:2008/11/20(木) 00:56:16
>>895-896 CUIならテキストブラウザにしかならないような
そもそもGecko使う必要性がない
>>897 VGAとかで描画するって手は有るぞ。
とはいえ、高々1MB程度のメモリ空間しか使えない環境でGeckoってのは無理有りすぎだと思う。
このご時世にDOSエクステンダとか持ち出してまで、DOSにこだわるのは馬鹿のやることだし。
899 :
デフォルトの名無しさん:2008/12/07(日) 21:37:37
DOS用よりコマンドプロンプト用にすれば良いと思う。
「2ch発 コマンドプロンプトで動作するGeckoブラウザ」って
有名になるぞ。
まあ、それがタブブラウザだったら最強なわけだな。
どうやってやるべか。
900 :
デフォルトの名無しさん:2008/12/07(日) 22:15:43
っていうか、作り始めようよ。
まず、名前。UserAgentが決まらないじゃん(www
名前名前。何にするべか。
あと、DOS on WebBrowserはやめたほうが良いと思うよ。
普通のアプリのほうがなじみやすいと思うし。
まあ、多数の人につかってもらうブラウザを目指すか、
新しいものに順応できなくて未だにDOS思考な人を狙うかによって、
随分違ってくると思う。
ってことで、まずは名前。
ほしゅ
保守
903 :
デフォルトの名無しさん:2009/09/02(水) 07:32:23
ホシュ
904 :
デフォルトの名無しさん:2009/09/02(水) 11:51:45
保守新党
勉強がてら2chブラウザを作りたいと思っているのですが、
2chの仕組みを教えてもらえないでしょうか?
例えば、ブラウザで見たときと、2chブラウザで見たときには表示されたものが違いますよね?
2chブラウザ用のGETするためのURLとかあるのでしょうか?
よろしくお願いします。
>>906 あれからいろいろ試しているのですが、
chaikaがきちんと動作しません。
firefox3.5.3、chaika1.02ですけど。
XULも読めないし、がんばろうにも動作も見れないです。
どうすれば良いですかTT
ふーんchaikaてのは3.5対応bbs2chreader派生なんだー
今メンテされてるオープンソース2ch専ブラって
Delphi/WindowsのOpenJane
C++/UNIXのJD
XUL/Firefoxのchaika/bbs2chreader
ぐらいしか漏れ知らない
あとはがんばってー
hosyu
保守
ほしゆ
912 :
デフォルトの名無しさん:2010/09/21(火) 20:55:59
_
r-、' ´ `ヽr-、
ィ7 /l: ハヽハ トヾ 駄スレを沈めることはこの俺が許さん!
'|l |'´_` ´_ `| || 信念に基づいて行動する、
| |´ヒ} ヒ}`! l | それを人は正義と言う。
__ノ゙). 从 l, _'_. |从 今俺が行ってることは、保守ではない
,_'(_ ノ_ヽ ヾl.> - ,イ;リ 正義という名の粛清だぁ!
{ f:テ} {'f:テ}',/\ヽ--//ヽ
ヽ,r─‐ 、ィ .、、 i l>Y<! i '、 バーニング!
/ iゝ_ノ iヽ /l |l l ',
lンヽ/ムノじ
2011年、Ruby,Perl,PHP,Pythonって並べたときにさ
ここで、Ruby以外を選ぶ奴ってマジでなんなんだろうな
ゴミなんだから早く死んだほうがいいと思う
2011年、Ruby,Perl,PHP,Pythonって並べたときにさ
ここで、Ruby以外を選ぶ奴ってマジでなんなんだろうな
しねよ
915 :
デフォルトの名無しさん:2011/11/22(火) 15:31:58.44
。。。
916 :
デフォルトの名無しさん:2011/12/17(土) 14:54:06.40
917 :
デフォルトの名無しさん:2011/12/29(木) 11:02:37.28
え?
918 :
デフォルトの名無しさん:2012/01/06(金) 22:23:20.09
GeckoFx2.0って使い物になるレベルでしょうか?
もしもーし、Geckoさーんいませんか?
新聞代貯まってるんですがねぇ