「GeckoFX」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
11行目: 11行目:
 
XPCOMはMozilla公式サイトから単体で[[ダウンロード]]<ref>http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/</ref>してきてもいいし、Mozilla Firefoxにも同梱されているのでFirefoxのインストールディレクトリを指定しても動く。同梱する場合は単品の方が確実であると思われる。
 
XPCOMはMozilla公式サイトから単体で[[ダウンロード]]<ref>http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/</ref>してきてもいいし、Mozilla Firefoxにも同梱されているのでFirefoxのインストールディレクトリを指定しても動く。同梱する場合は単品の方が確実であると思われる。
  
== バージョン番号 ==
+
=== バージョン番号 ===
 
GeckoFX2.0までは独自のバージョン番号であったが、以降は最近は[[Firefox]]のメジャーバージョン番号と同一になっているので、[[XPCOM]]として用いるFirefoxが10.xならばGeckoFX10.xを用いること。
 
GeckoFX2.0までは独自のバージョン番号であったが、以降は最近は[[Firefox]]のメジャーバージョン番号と同一になっているので、[[XPCOM]]として用いるFirefoxが10.xならばGeckoFX10.xを用いること。
  
17行目: 17行目:
  
 
2012年6月26日現在まで使ってみた感じでは、Firefoxの自動アップデート後にGeckoFXを使ったアプリが壊滅したという事例があり、Firefox 10をベースとしたFirefox ESR版<ref>http://mozilla.jp/business/downloads/</ref>を使う、またはFirefoxの自動アップデートを無効化して使うのが望ましいように思われる。
 
2012年6月26日現在まで使ってみた感じでは、Firefoxの自動アップデート後にGeckoFXを使ったアプリが壊滅したという事例があり、Firefox 10をベースとしたFirefox ESR版<ref>http://mozilla.jp/business/downloads/</ref>を使う、またはFirefoxの自動アップデートを無効化して使うのが望ましいように思われる。
 +
 +
 +
=== x64での動作について ===
 +
[[Mozilla]]が配布している[[Gecko]]は[[x86]]専用でありGeckoFXも[[x86]]専用となっている。
 +
 +
[[Windows Server 2008 R2]]([[x64]])上で動いている[[ASP.NET Web API]]を使ったオレオレWeb API群に、URLを渡すとGeckoFXを用いて[[Webページ]]の[[スクリーンショット]]を撮るという[[プログラム]]を追加した際にこの点が問題となったので記載しておく。あまりに大雑把で強引な解決方法であり一般人にはオススメはしない。
 +
 +
# GeckoFXの[[ソースコード]]を[[ダウンロード]]してくる
 +
# GeckoFXをターゲット「Any CPU」または「x64」に変更しビルドする
 +
#* 面倒なので[[秀丸]]で[[slnファイル]]や[[csprojファイル]]を開いて「x86」という文字列を「AnyCPU」に一括置換である。これでも一応動いたがオススメはしない。ちゃんと1個1個設定しよう。
 +
#* この状態でx86版のFirefoxを指定して動かすとDllImportで落ちる。
 +
# [[Waterfox]](Firefoxの非公式x64バージョン)を[[ダウンロード]]し<ref>http://www.waterfoxproject.org/</ref>、[[インストール]]する
 +
# Xpcom.Initializeメソッドの引数にWaterfoxのインストールディレクトリを指定する
 +
#* 毎回フルパス指定は面倒なので以下のようにして「ProgramFile/Waterfox」を探させるようにした。これまたオススメしない。
 +
#** Geckofx-Coreプロジェクトの
 +
#** XULRunnerLocatorクラスの
 +
#** GetXULRunnerLocationWindowsメソッドの
 +
#** folderSearch変数(string配列)に「Waterfox」という文字列を追加する
  
 
== 使用例 ==
 
== 使用例 ==

2013年4月23日 (火) 06:19時点における版

GeckoFXとは、Geckoエンジンを扱うためのラッパークラスである。大雑把にいうとC#Firefoxを操るためのライブラリと思ってほぼ間違いない。LinuxLinux Mint 12)上のMonoとFirefoxの組み合わせでも問題なく動いている。

.NET Framework純正のWebBrowserクラスC#以前、DelphiVCLの時代から腐っており、その代用として有望である。ただし別途Firefox(に同梱されるXPCOM)のインストールが必須であるため場合によっては配布方法などにおいて面倒なことになる。なおXPCOMは単体でも配布されておりこちらを同梱してしまう方法もある[1]

注意

2012年4月10日現在、Googleのウェブ検索において「geckofx」と検索すると、GeckoFX 1.xまで使われていた古いサイト[2]Googleコード)が上位表示され、現在の公式サイト[3]bitbucket)が上位表示されておらず、「古い情報しかない」「更新が止まってる」と誤認識してしまう恐れがあるので、他人に教えるときは注意すること。

利用方法

GeckoFXの利用には、別途Geckoエンジンコンポーネント化したXPCOMCross Platform Component Object Model)が必要であり、利用時にはXPCOMのインストールパスを設定する。

XPCOMはMozilla公式サイトから単体でダウンロード[4]してきてもいいし、Mozilla Firefoxにも同梱されているのでFirefoxのインストールディレクトリを指定しても動く。同梱する場合は単品の方が確実であると思われる。

バージョン番号

GeckoFX2.0までは独自のバージョン番号であったが、以降は最近はFirefoxのメジャーバージョン番号と同一になっているので、XPCOMとして用いるFirefoxが10.xならばGeckoFX10.xを用いること。

また近年のFirefoxのラピッドリリースサイクルの導入に伴い、GeckoFXも平行して物凄い勢いでフォーク(バージョンアップ)しまくっている。FirefoxおよびGeckoFXの両方のインターフェイスなどもガンガン書き換えられているので、常に最新バージョンを用いればいいというものでもなく、基本的に開発開始時に用いたFirefoxとGeckoFXを拾ってくれば間違いない。

2012年6月26日現在まで使ってみた感じでは、Firefoxの自動アップデート後にGeckoFXを使ったアプリが壊滅したという事例があり、Firefox 10をベースとしたFirefox ESR版[5]を使う、またはFirefoxの自動アップデートを無効化して使うのが望ましいように思われる。


x64での動作について

Mozillaが配布しているGeckox86専用でありGeckoFXもx86専用となっている。

Windows Server 2008 R2x64)上で動いているASP.NET Web APIを使ったオレオレWeb API群に、URLを渡すとGeckoFXを用いてWebページスクリーンショットを撮るというプログラムを追加した際にこの点が問題となったので記載しておく。あまりに大雑把で強引な解決方法であり一般人にはオススメはしない。

  1. GeckoFXのソースコードダウンロードしてくる
  2. GeckoFXをターゲット「Any CPU」または「x64」に変更しビルドする
    • 面倒なので秀丸slnファイルcsprojファイルを開いて「x86」という文字列を「AnyCPU」に一括置換である。これでも一応動いたがオススメはしない。ちゃんと1個1個設定しよう。
    • この状態でx86版のFirefoxを指定して動かすとDllImportで落ちる。
  3. Waterfox(Firefoxの非公式x64バージョン)をダウンロード[6]インストールする
  4. Xpcom.Initializeメソッドの引数にWaterfoxのインストールディレクトリを指定する
    • 毎回フルパス指定は面倒なので以下のようにして「ProgramFile/Waterfox」を探させるようにした。これまたオススメしない。
      • Geckofx-Coreプロジェクトの
      • XULRunnerLocatorクラスの
      • GetXULRunnerLocationWindowsメソッドの
      • folderSearch変数(string配列)に「Waterfox」という文字列を追加する

使用例

関連項目

参考文献

外部リンク

Firefox
GeckoFX