私はウェブサイトをシミュレートするFireFoxのアドオンをビルドしていますが、ローカルライブラリから実行しています。私はそれは、プレーンHTTPをしていた場合はFireFoxのは送信することをユーザーエージェント文字列のホールドを取得する方法を探しています(look here、あなたが詳細をお知りになりたい場合)firefoxユーザーエージェント文字列を取得するには?
。私は自分自身でnsIProtocolHandlerをやっていて、nsIHttpChannelの独自の実装を提供しています。もし私がa peek at the sourceを持っていれば、私は自分自身ですべての作業をしなければならないようです。
nsHttpHandlerにcontract/object-idがないかぎり、私はちょっとだけUserAgentを取得するためにインスタンスを作成することができますか? (Init()
にはInitUserAgentComponents()
があり、そこに到達することを期待しているので注意してください... httpプロトコルハンドラはチャネルとハンドラを行い、nsHttpHandlerへの直接の契約はないと思います。これは、バージョン4てきた中で行われていたか)
私は壁強のぞき見を持っている場合、私はその並行次元でだけこれを行い、この世界的に利用できるコールObtainUserAgentStringに気づく...
同じことはもちろんC++でも使えます: 'nsCOMPtr httpHandler(do_GetService(" @ mozilla.org/network/protocol;1?name=http ")); httpHandler-> GetUserAgent(userAgent); ' –
do_GetServiceは何をするのでしょうか?私はこれを持っていますが、サポートされていないインターフェイスをスローします: 'NS_GetServiceManager(SvcMgr); SvcMgr.GetServiceByContractID(NS_IHTTPPROTOCOLHANDLER_CONTRACT、nsIHttpProtocolHandler、h);' –
自分でNS_IHTTPPROTOCOLHAND LER_CONTRACTを定義していますか?価値は何ですか? –