【1への回答】
どう考えても正解ではないので念のため、というかこんな仕組みなら、はっきり言って自分なら使いたくないけど。
汎用性を優先する場合なら、あまりいい設計とは思えませんが、ぱっと思いつくのは自作のバイナリXPCOMコンポーネントを含む拡張を作ることでしょうか。その拡張経由でXUL要素に文字列を流し込むような作りになるかと。
1.風魔さんのアプリケーションとFirefoxを連動させる拡張のインターフェースはWindowsのCOMを採用
2.風魔さんが作成することになるFirefox拡張のバイナリコンポーネントとFirefox本体のインターフェースはXPCOMを採用
3.風魔さんが作成することになるFirefox拡張のJavaScript側で、バイナリコンポーネントから受け取ったデータをテキストエリアなりXUL要素なりに流し込む
4.Firefoxのパフォーマンス低下を防ぐために、風魔さんが作成することになるFirefox拡張はFirefox本体とは別スレッドで動作するようにする
この方法の最大の欠点はバイナリを拡張に同梱しないといけないことと、ポーリングが必要になるかもしれないこと、外部からデータを流し込む仕組みなのでそこがセキュリティ・ホールになる可能性が非常に強いことでしょうか。特に後者ふたつが致命的かと。とくにセキュリティに関して言及するなら、トロイをしかけてフィッシングを併用すれば攻撃し放題、という状況が生まれる危険性が非常に強いかと思います。
あと思いつく別の方法としてはDrag&Dropをエミュレートするとか。まだこちらの方がDOMで完結する分マシな気がします。
どちらにせよ、Firefoxはセキュリティ上、外部アプリケーション向けのAPIを持っていないので (Webや拡張用のAPIはありますが)、かなりの試行錯誤は必要かと思います。しかも試行錯誤の結果、恐くて使えないものになりそうな予感がします。
【2への回答】
mozilla developer centerを読みましょう。あとFirefox自体をハックする必要もでてくるかと思います。
※ Google限定であれば、GoogleはGetリクエストで機能するので、単にFirefoxにクエリーを含むURLを渡して起動してやればいいだけのような。
# もっとましなアイディアがあるような気がします。
# もしくは
そんな危険なことはやめておけという、より適切なアドバイスがあるかもしれません。