Chrome と Irvine を連携させるExtensionを作ってみた。

無さそうなんで作ってみた。かなり面倒だった。
原因は不明ですが、環境によって動作しない場合があるようです。


現状では私(id:deraw)がメンテするのが難しく、
[twitter:@b2ox]様がちゃんとコンテキストメニューが使用できる改良版を作成されていますのでそちらをおすすめします。

注意

  • 実験的に作成した拡張です。使用は自己責任でお願いします。
  • まずオプションから、Irvineをインストールしたフォルダ内にあるircom.exeのフルパスを設定してください。
  • インストール後はChromeの再起動をしてください。(または現在開いているページの再読込を行ってください。)
  • Chromeの制限で、右クリック(コンテキストメニュー)からは呼び出せません。
  • 「すべてのURLを送る」「すべてのURLを送る(IMGを含む)」「リンクのインポート」「選択範囲のダウンロード」しか出来ません。
  • Windows 7 x64上でしか動作確認してません。不具合があればご報告頂けるとありがたいです。(OSのバージョンやurl、可能であればIEFirefoxで再現するかどうか)
  • b2ox様の協力により、リンクや画像の上でalt+左クリックするとマウスカーソル位置のURLをirvineに送れるようになりました。
    ただし、同時にchromeの「名前を付けて保存」ダイアログが表示されてしまうので手動で閉じてください。

インストール

最新版インストール

過去のバージョン

バージョン0.1
バージョン0.2

更新履歴

0.2.1(2010/7/28)
  • version 0.2の修正によって、Irvineへ送るURLが抜け落ちる問題が発生したので修正(ircom.exeの終了待ちをするよう変えた)
0.2(2010/7/20)
  • b2ox様の修正を取り込みました。
  • Windows XPで動作しなかった問題を暫定修正(ircom.exeに渡す引数を2000文字までに制限した)
0.1
  • 初版

仕組みなど

躓いたことなど

  • コールバック内のErrorは握りつぶされるので、自前でErrorオブジェクトをconsole.errorしなければならない。
  • embedのstyleをdisplay:noneにしたらプラグインが読み込まれなかった。
  • chrome.tabs.sendRequestは非同期だから、コールバックが呼び出される前にpopupウィンドウを閉じるとコールバックが呼ばれない。
  • W32APIのCreateProcess/ShellExecute関数のパラメータは32kまで。
    ShellExecuteExだともっと少ないかも。とりあえず2000文字までにした。