fc2ブログ
Firefox拡張 Dropfox 0.3.5 公開
投稿日時 : 2010-01-29 13:11
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.5をリリースしました。about:configを拡張して、各ラインをダブルクリックするだけでuser_pref("foo.boo.bar", "hoge"); 形式に変換してDropfoxのコードボックスに自動入力してくれる新機能を搭載。他いくつかバグ修正。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.5 の主な変更点

  • about:configにDropfoxへのコード入力支援機能を追加
  • コンフリクトファイル自動削除機能が環境によっては起動時に動作しないバグを修正
  • オプションウィンドウのコードボックスでTabキーによるタブ入力時にスクロール位置がトップに戻されてしまうバグを修正
 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。
 

about:configにDropfoxへのコード入力支援機能を追加

 正確にはabout:configではなく、その実体であるchrome://global/content/config.xulを拡張しています。about:configには変化はありません。アドレスバーに直接 chrome://global/content/config.xul と入力してアクセスするか、オプションウィンドウのコードカテゴリタブの右下にあるギアアイコンをクリックすれば同じく chrome://global/content/config.xul が開きます。従来だとuser_pref形式のコードを書くときはabout:configから設定名やその値をコピーしたりして手動でやっていましたが、これをダブルクリックするだけでuser_pref形式に変換してアクティブなコードボックスに自動入力してくれます。「"」や「\」なども自動でエスケープします。
 
about:config 拡張
 
 

コンフリクトファイル自動削除機能が環境によっては起動時に動作しないバグを修正

 完全にフィックスできたわけではなさそうなんですが、とりあえず対処療法的な修正を加えました。具体的には実行のタイミングを少し遅くしました。非同期処理として利用しているnsITimerが利用可能になるタイミングと関係しているようです。現在はnsITimerを擬似的なスレッドとして利用していますが、このコンフリクトファイル自動削除機能を本物の別スレッドで動作させる予定があるので今回はこのぐらいの修正で。  
 

オプションウィンドウのコードボックスでTabキーによるタブ入力時にスクロール位置がトップに戻されてしまうバグを修正

 Tabコード入力機能を初めてつけたバージョンのリリース直後にこのバグに気づいたんですが放置していました。すいません。Tab入力を行う時点でのスクロール位置を保存して後で復元してやる必要があったわけです。
 
 
2010-01-29 13:11 | Dropfox | Comment(2) | Trackback(0)
Firefox Developers Conference 2009 LT 発表資料
投稿日時 : 2009-11-09 06:31
更新日時 : 2009-11-12 14:21
 「Firefox Developers Conference 2009 - アドオンで Web の未来を切り開く!」のLightning Talk 発表資料「Dropfox @ Lightning Talk」を公開します。
 
追記日時( 2009-11-12 14:21) : XUL版資料をPDF化したものが上記FxDevCon2009ページのタイムテーブル内の大ライトニングトークの項で公開されています。
 
発表資料:XUL版
Firefox Developers Conference 2009 Lightning Talk 発表資料
*XULファイルなのでFirefoxなどのXULが理解できるブラウザでしか表示できません。
 
Firefox Developers Conference 2009 LT 発表資料  
 このプレゼン資料はPiroさん作の高橋メソッドなプレゼンツール in XUL リターンズで作成しています。
 
 
いや~無事に終わって良かったー
 
 
2009-11-09 06:31 | Dropfox | Comment(0) | Trackback(0)
Firefox拡張 Dropfox 公式サイト移転のお知らせ
投稿日時 : 2009-11-01 14:59
 Dropfox 0.3.3のリリース告知のときにもちらっと触れましたが、Dropfox公式サイトをホストしているGoogle Page Creatorがサービスを終了するため、どこかに移転せざるを得ない状況でした。
 Google Page Creatorからの自動移転先のGoogle Siteを検討してみましたが、独自スクリプト・CSSが無効になることなど、不満点が多いため却下。結局自前のdropfox.no-ip.netに移転することにしました。Dropfoxのアップデートチェックサービスを提供してるサーバです。
 
ということで、
 
Firefox::Extension::Dropfox::Home::JA
 
Firefox::Extension::Dropfox::Home::EN
 
に移転しました。お手数をおかけしますがブックマークの再登録をお願いします。旧URLにアクセスするとリダイレクトされます。Page Creatorのときには不可能だった言語別ディレクトリ分けをしたりと若干サイトの構造を変えましたが、見た目的には何もかわってません。・・・なんだか黒基調のデザインに飽きてきたので時間できたら白っぽいのに変えようかと思います。
 
 
 
ちなみにサイトルートのhttp://dropfox.no-ip.net/にアクセスするとApacheのmod_aliasで英語版ページのhttp://dropfox.no-ip.net/en/にリダイレクトするようにしました。ほかにもいろいろいじってみましたが便利ですね~mod_alias。
 
 
2009-11-01 14:59 | Dropfox | Comment(0) | Trackback(0)
Firefox Developers Conference 2009に出場決定
投稿日時 : 2009-10-19 23:50
 つい先日、Mozilla Japanの方からメールを頂きまして、何通かやりとりした結果
 
 
のライトニングトークに出場してDropfoxについて話すことが決定しました。「Mozilla Party JP 10.0 に参加してきた」のときはライトニングトークを客席からのんびり見て楽しんでましたが、まさか自分が逆の立場になるとはw
 
まあ5分しかないので込み入った話はできなさそうですが、Dropfoxの主な特徴として挙げてる、
  • Windows/Linux/Mac用に個別の設定ファイルが使用可能
  • 設定ファイルは基本的には prefs.js や user.js と同じ書式
  • 設定値に ${HOME} や ${USERPROFILE} のように環境変数が記述可能
  • 設定値に ${ProfD} のようにMozilla定義の特殊フォルダ変数が記述可能
  • プロファイルフォルダ外部の任意の設定ファイルもOSごとに指定可能
  • 外部設定ファイルを指定するパスにも変数が記述可能
  • 設定ファイルには if文 などの通常のJavascriptコードも記述可能
  • 設定ファイルには XPCOM などの特権コードも記述可能。
  • Dropfox APIを利用すればbashやPowerShellのコマンドを設定ファイルのJavascriptコードから実行可能。
  • 各設定ファイルはFirefox起動時にOSに応じてロードされ実行される
  • 変数は実行時に変換される
  • コンフリクトファイルの自動削除が可能
のあたりをさーっと触れていく感じになろうかと思います。
 あとは次の0.4.0系で計画している、「Dropboxフォルダ外部にあるプロファイルフォルダとDropboxフォルダ内にある任意のフォルダとをペアリングし、Firefox起動時、終了時にそのフォルダ間で同期を行う機能」について説明できればいいですね。
 カンファレンスまでに0.4.0リリースできれば一番いいんですが、同期ファイルの取捨選択をするセレクタの記述仕様と動作にまだいくつか迷いがあるので間に合うかわかりません。リリース後の仕様変更は可能な限り避けるべきなので、ここはあせらずじっくり行きたいところです。
 
 ところでちゃんとしたプレゼンは未体験ゾーンなので、どうにかなるもんなのかすごい不安ですw。プレゼンって言ったらアレですよね?ユーモアとかガンガン織り交ぜていかないとダメな系ですよね?www
 
 パワポとかプレゼン系ソフトは必要がなかったこともあってほとんどまったく触ったことがないのでこれから練習です。本番でオタヲタするとみっともないので。
 
 
2009-10-19 23:50 | Dropfox | Comment(0) | Trackback(0)
Firefox 拡張 Dropfox 0.3.4 公開
投稿日時 : 2009-10-10 20:45
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.4をリリースしました。Dropfox APIのShellクラスにdirectExecプロパティ追加。cmdメソッド実行時にFirefoxから直接シェルプログラムを実行するか、WSH経由で実行するかを選択できるように。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.4 の主な変更点

  • Dropfox APIのShellクラスにdirectExecプロパティ追加。cmdメソッド実行時にFirefoxから直接シェルプログラムを実行するか、WSH経由で実行するかを選択できるように。
  • Dropfox APIのShellクラスでレスポンスファイルが空だと文字コード変換エラーが出るバグを修正。
 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。
 

Dropfox APIのShellクラスにdirectExecプロパティ追加

 0.3.3Bug 485946に対応するためにDropfox APIのShellクラスのcmdメソッドをWSH経由で実行するようにしましたが、これを directExec プロパティの true/false で、従来通りFirefoxから直接実行するか、WSH経由で実行するかを選択できるようにしました。
 セキュリティの観点から wscript.exe や cscript.exe の実行をブロックしているような環境に配慮。.jsファイルの関連付けをデフォルトから変更している場合にもこれで対応できます。directExecのデフォルト値は false で、つまりWSH経由で実行します。
 
directExecプロパティの使用例
var bash = new Shell("C:\\Cygwin\\bin\\bash.exe");
bash.directExec = false; //デフォルト値。WSH経由で実行される。
var res1 = bash.cmd("ls / -al"); //cmdメソッド実行時にDOS窓が表示されない。
 
bash.directExec = true; //直接実行。
var res2 = bash.cmd("ls / -al"); //cmdメソッド実行時にDOS窓が表示される。
 

Dropfox APIのShellクラスでレスポンスファイルが空だと文字コード変換エラーが出るバグを修正

 シェルスクリプトの実行結果をリダイレクトするレスポンスファイルが空だった場合に、空でないときと同様にファイルをロードして、文字コード変換をかけようとすることでエラーが発生していたのを修正。
   

64bitマシンでのWSHの動作は未確認

 64bitマシン環境がないのでWSH経由でのシェルスクリプトの実行の確認ができていません。詳細は理解していませんが、少し調べた感じだと
new ActiveXObject("WScript.shell");
したときに問題が起こるような気がしなくもないですね・・・
 
 
2009-10-10 20:45 | Dropfox | Comment(0) | Trackback(0)
Firefox 拡張 Dropfox 0.3.3 公開
投稿日時 : 2009-10-07 17:05
更新日時 : 2009-10-10 13:48
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.3をリリースしました。Firefox 3.5 本体の Bug 485946が原因で、 WindowsでDropfox APIのShellクラスのcmdメソッド実行時にDOS窓が表示されてしまうのを修正。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.3 の主な変更点

 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。  
 

WindowsでDropfox APIのShellクラスのcmdメソッド実行時にDOS窓が表示されてしまうバグを修正

 これはFirefox 3.5本体の"Bug 485946"が原因です。Dropfox APIのShellクラスのcmdメソッドはnsIProcess を利用してbash.exeやPowerShell.exeなどにシェルスクリプトファイルを渡して実行、その結果を受け取るという仕組みになっていますが、この実行時にFirefox3.5になってからDOSウィンドウが表示されるようになってしまいました。
 あまり気が進みませんでしたが、回避策として%windir%\system32\cscript.exe経由でbash.exeやPowerShell.exeを実行する方法を取っています。
 
追記(2009-10-10 13:48):規定のスクリプトホストがwscript.exeの場合はwscript.exe経由で実行されます。64bitマシンでの動作は環境がないため未確認です。また、セキュリティソフトによっては警告が出るかもしれません。
 

addons.mozilla.orgで公開申請予定

 2009年07月13日からaddons.mozilla.orgでの公開申請にユーザレビューが必要なくなったようです。
 
さらに、申請から審査までの待ち時間が大幅に改善されているようなのでやる気が出てきました。
 
公開申請の文章は英語で書かなきゃならないのが面倒ですが今週中にでもがんばってみるかも。
 

Dropfox公式サイト移転予定

 Dropfox公式サイトですが、ホストしているGoogle Page Creatorのサービス終了が2009年05月の時点で発表されてしまっているのでどこかに移転せざるを得ない状況です。これは誤算でした。ほっとけばGoogle Sitesに自動的にデータが移動するようですが、独自CSSやJavascriptが無効になるなどいくつか不満点があります。素直にGoogle Sitesに行くか、もしくは公式サイトからインストールしたDropfoxのアップデートサーバとして自宅サーバでdropfox.no-ip.netを運営していますが、こちらにすべて統合するかもしれません。
 
 
2009-10-07 17:05 | Dropfox | Comment(0) | Trackback(0)
Firefox拡張 Dropfox 0.3.2 公開
投稿日時 : 2009-07-07 15:21
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.2をリリースしました。少し遅くなってしまいましたが Firefox 3.5 系に対応しました。あとオプションウィンドウを特定の手順で開閉すると、Firefoxを再起動しない限りオプションウィンドウが開けなくなるバグを修正。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.2 の主な変更点

  • Firefox 3.0 - 3.6a1pre に対応
  • 特定手順でオプションウィンドを開閉すると、それ以後開けなくなるバグ修正
  • 公開ライセンスに Mozilla Public License 1.1 採用
 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。  
 

Firefox 3.0 - 3.6a1pre に対応

 対応が遅くなってすいません。Firefox 3.5 リリース前になんとか0.4.0系で計画している新機能を仕上げるつもりだったんですが・・・。間に合わなかったので 0.3.1 のコードから簡単に修正できる箇所だけ修正してリリースすることに。
 

特定手順でオプションウィンドを開閉すると、それ以後開けなくなるバグ修正

 「ツール」-「アドオン」のアドオンマネージャからDropfoxのオプションを開く→×ボタンで閉じる→アドオンマネージャ以外からオプションウィンドウを開く→一瞬ひらいて勝手にすぐ閉じる というバグがありました。オプションウィンドウはふつうに作ればモーダルなんですが、それが気に食わなくて無理にモーダレスにしたことでいろいろ複雑なことになっていたのが敗因。
 

公開ライセンスに Mozilla Public License 1.1 採用

 AMOに新バージョンを登録しようとしたら、ソフトウェアライセンスの選択が登録要件になっているっぽいことが判明。以前少し調べただけで各種ライセンスの多様複雑難解さにうちのめされて放置することになっていましたが、ついに決断を迫られたかたちに。結局Mozilla Public License version 1.1日本語訳)を採用。MPL/GPL2.0/LGPL2.1のトリプルライセンスってやつです。
 
piroさんの解説が非常に参考になりました。

 
 

次の0.4.0系について

 0.3.1のリリース告知の時にも書きましたが・・・。バージョン0.4.0系ではプロファイルフォルダとある任意のフォルダとをペアリングし、Firefox起動時、終了時にそのフォルダ間で同期を行う機能を実装する計画です。同期対象ファイル・フォルダを革命的な柔軟さで選択できる記述仕様を作っています。Dropboxフォルダ外部においたプロファイルフォルダ - Dropbox内プロファイルフォルダ間同期や、USBメモリ内フォルダとの同期、簡易バックアップなどにも利用できます。
 
 
2009-07-07 15:21 | Dropfox | Comment(0) | Trackback(0)
Firefox拡張 Dropfox 0.3.1 公開
投稿日時 : 2009-02-23 05:44
更新日時 : 2009-07-07 15:26
最新情報は以下のURLを参照してください。
http://itmst.blog71.fc2.com/blog-category-21.html
http://dropfox.googlepages.com/home_ja

 
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.1をリリースしました。Dropfox APIのrunFile関数に渡す引数の数がひとつの時にエラーになるバグを修正した他、オプションウィンドウのコード編集ボックスでタブキーによるタブ(\t)入力を可能にするなどの変更を加えました。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.1 の主な変更点

  • Dropfox APIのrunFile関数で引数がひとつのときにエラーが出るバグを修正
  • Dropfox APIのexecFile関数に渡す設定ファイルのパスに変数を含むことができるように変更
  • オプションウィンドウのコードカテゴリタブのテキストボックスでタブキーによる\t(0x09)の入力を可能に
  • オプションウィンドウに「その他」カテゴリ追加
  • オプションウィンドウの「OK」や「キャンセル」ボタンをダイアログボタンから通常のボタンに変更
 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgの方はアカウント登録が必要です。addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。  
 

execFile関数に変数を含んだパスを渡せるようになった

 なぜ前バージョンでそうしなかったのか自分でもわかりませんが、Dropfox APIの任意の設定ファイルを実行する関数のexecFileに変数を含んだ設定ファイルのパスを渡すことができるようになりました。
execFile("${USERPROFILE}/myPref.js");
これだけでパス中の変数を変換し、設定ファイルをロードして、中身をJavascript文字列として評価(実行)してくれます。
 

タブキーによるタブ入力をサポート

 オプションウィンドウのコード編集テキストボックスでキーボードのTabキーによる\t(0x09)の入力が可能になりました。少しは編集しやすくなればと思います。複数行を選択して一括インデント(Tabキー)、逆インデント(Shift+Tabキー)もできます。新たに追加した「その他」カテゴリでON/OFFを切り替えることができます。また、不完全な実装ではありますが、\tの代わりに任意個のスペース(0x20)を使えます。
 

今後の方針

 バージョン0.4.0系以降ではDropboxフォルダ外部にあるプロファイルフォルダとDropboxフォルダ内にある任意のフォルダとをペアリングし、Firefox起動時、終了時にそのフォルダ間で同期を行う機能を実装していこうかと思っています。
 プロファイルフォルダを丸々Dropboxで共有することにいくつかの問題があることは重々承知しているのでそのあたりを改善していけたらと思います。
 
 
2009-02-23 05:44 | Dropfox | Comment(0) | Trackback(0)
Dropfoxが『Software Design』 2009年01月号で紹介されてた
投稿日時 : 2009-02-11 04:06
 なんか載ってたみたいですw。偶然見つけました。まったく知りませんでした。はい。
 
Fujisan.co.jp 雑誌内検索: 【dropfox】 がSoftware Design (ソフトウェアデザイン)の2008/12/18発売号で見つかりました!
 
Software Design 2009年1月号|gihyo.jp … 技術評論社
Amazon.co.jp: Software Design (ソフトウエア デザイン) 2009年 01月号 [雑誌]: 本
 
 69ページのコラム「Dropboxでプロファイルを共有してみる」のところで軽く触れる程度ですがDropfoxが紹介されています。
 記事書いてる松澤太郎さんはもじら組の組長の人です。『Firefox 3 Hacks Mozillaテクノロジ徹底活用テクニック』の執筆者の一人でもあります。紹介してくれた感謝の意も込めて宣伝しておきますw
 
Amazon.co.jp: Firefox 3 Hacks Mozillaテクノロジ徹底活用テクニック: 江村 秀之, 池田 譲治, 下田 洋志, 松澤 太郎, dynamis: 本
 
まだDropfoxの開発中に必要になった部分しか読んでませんが、前半にそれなりにマニアックなFirefoxの設定方法があって、中盤からはかなりのページが拡張機能の開発に関するノウハウに割かれています。  
 これからFirefox拡張を作ってみようかなという人はこの本と以下のリンクあたりからはじめるといいかもしれません。Javascript/CSS/XMLがある程度分かっていればなんとかなると思います。
目次 - Firefox拡張機能開発チュートリアル (XHTML)
特集:Firefox 3ではじめる拡張機能開発|gihyo.jp … 技術評論社
 
 
 ところでAMOで技術的レビューがつかなくてまだDropfoxの公開申請してないんですが、雑誌で紹介されたって言えば通らないだろうかw?記事が英語で審査するエディタが確認できなきゃだめ?
 
 
2009-02-11 04:06 | Dropfox | Comment(0) | Trackback(0)
Firefox拡張 Dropfox 0.3.0 - JavascriptからbashやPowerShellなどのシェルコマンドが実行可能に
投稿日時 : 2009-02-04 18:41
更新日時 : 2009-02-09 18:40
 DropboxによるFirefoxのプロファイル共有をサポートするアドオンDropfoxのバージョン0.3.0をリリースしました。設定ファイル中のJavascriptからbashやPowerShellなどのシェルコマンドを実行し結果を文字列で受け取ることができるようになりました。任意の外部設定ファイルもスクリプト中から実行できるようになっています。また、それらの機能を使用するためのDropfox API を公開しました。
 

Dropfoxとは

 DropfoxとはDropboxなどを利用した複数の異なる環境をまたがったプロファイル共有をサポートするFirefox拡張機能(アドオン)です。環境変数や通常のJavascriptコードなどが記述可能な言わば「拡張版user.js」がOS別に複数使用できるようになります。これにより、キャッシュフォルダの位置やダウンロードファイルの保存先、外部エディタのパスなど、一部の設定だけをその環境に適した値に変更できます。
 

Dropfox 0.3.0 のスクリーンショット

スクリーンショット:コードタブ スクリーンショット:リポートタブ
スクリーンショット:コンフリクトタブ スクリーンショット:テストウィンドウ
 

Dropfox 0.3.0 の主な変更点

  • 設定ファイル中のJavascriptからShellクラスによるシェルスクリプトの実行が可能に(sh, bash, zsh, PowerShellで動作確認)。実験的実装。
  • 任意の外部設定ファイルをスクリプト中から実行可能に(execFile()関数)
  • 多数のDropfox APIを設定ファイルのJavascriptから利用可能に
  • 共有設定ファイル・外部設定ファイルを任意のエディタで開くボタンを追加
  • 共有設定ファイルをリロードするボタンを追加
  • 外部設定ファイル用のファイル選択ダイアログ追加
  • 適用ボタンの追加
  • about:configを開くボタンを追加
  • APIリファレンスを開くボタンを追加
  • プロファイルフォルダを開くボタンを追加
  • バージョン表記をオプションウィンドウ下部に
  • オプションウィンドウ下部に公式サイト・ブログ・AMOへのリンク追加
  • 外部ファイルのロードの進捗状況を表すプログレスバー表示機能追加
  • テスト実行の中断ボタン追加(外部ファイルのロード時のみ反応)
  • 実行結果をタブ表示する設定追加
  • 実行結果の内容を字下げして見やすく
  • テスト実行結果をタブ表示する設定を追加
  • 設定ファイルのパーミッション変更(0664→0600)
  • コンフリクトファイル自動削除機能でFirefox終了時の処理を同期処理に
  • en-USのメッセージをいくつか修正
  • その他数え切れない細かい修正
 

インストール

Dropfox公式サイト
 
addons.mozilla.org
 
上記2つのリンク先のどちらからでもインストールできますが、addons.mozilla.orgの方はアカウント登録が必要です。addons.mozilla.orgでインストールした場合は自動アップデートチェック機能は利用できません。公式サイトの方でインストールした場合は自動アップデートチェック機能が利用できます。  
 

Dropfox API について

 Dropfoxの内部処理で使用している関数やクラス、変数や定数をDropfox APIを公開しました。設定ファイル中で自由に利用できます。
 Dropfoxは基本的にはuser.jsと同様の設定ファイル内のuser_pref()関数でFirefoxの設定値を書き換えることに特化した拡張ですが、設定ファイルには通常のJavascriptコードやXPCOMのような特権コードを記述しても動作するようになっています。それに加えて今回のAPIを利用すればより自由度の高いコードが書けると思います。ぜひおもしろい使い方を模索してみてください。
 
 APIリファレンスの専用ページを用意しました。まだ未完ですが今回のアップデートの目玉でもあるShellクラスについてはそれなりの情報を載せています。オプションウィンドウにもリファレンスを開くボタンが追加されています。
 
Dropfox API Reference for Ver. 0.3.0 JA
 

Dropfox APIのShellクラスを使ってJavascriptからシェルコマンドが実行可能

 設定ファイル中のJavascriptからshやbashやzsh、PowerShellなどのシェルコマンドを実行し、結果を文字列で受け取ることができるようになりました。以下のようなJavascriptコードでシェルコマンドが実行できます。
var shell = new Shell("/bin/bash", "/home/itmst/tmp", "UTF-8");
var res = shell.cmd("ls /");
Shellクラスコンストラクタ の第1引数はシェルプログラムのパス(省略可)。第2引数は作業ディレクトリ(省略可)。第3引数はシェルとやりとりする文字セット(省略可)。インスタンスを生成したらあとはcmdメソッドに実行したいシェルコマンド文字列を渡してやると実行結果文字列が変数resに格納されます。ここでは「ls /」でルートディレクトリのファイルリストを取得しています。cmdメソッドに渡すのは複数行にわたるしっかりしたシェルスクリプトでもかまいません。
 
詳細はリファレンスのShellを見て下さい。
 

Shellクラスを使ってCygwinのbashとやりとりする場合

 Windows + Cygwin環境なら以下のようにCygwin上のbashとやりとりできます。
var cygbash = new Shell("D:\\cygwin\\bin\\bash.exe", null, "Shift_JIS");
var cygbash.option = "--login -i"; //ログインオプション(なくても可)
var res = cygbash.cmd("ls -al");
 

Shellクラスを使ってWindowsPowerShellとやりとりする場合

 WindowsPowerShellの同じように利用できます。ただし前もってSet-ExecutionPolicyでスクリプトの実行ポリシーをRemoteSignedなどに変更しておく必要があります。
var ps = new Shell("c:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe");
var res = ps.cmd("dir");
 

スクリプト中から任意の設定ファイルを実行可能に

 今までDropfoxで利用可能な設定ファイルは各OSごとに「共有設定ファイル」と「外部設定ファイル」の2ファイルでしたが、設定ファイル内のJavascriptコードから任意の設定ファイルをロードして実行できるようになりました。Dropfox APIのexecFile()関数を使います。設定ファイルのフルパスを渡すだけです。
execFile("C:\\User\\itmst\\myPrefs.js");
 

環境変数や特殊フォルダ変数が自由に変換可能に

 いままでのバージョンではuser_pref()関数の第2引数内のみに ${変数名} 形式の変数を記述可能でした。
user_pref("hoge.foo.bar", "${USERPROFILE}\\boo.js");
これが0.3.0では以下のようにconvVar()関数またはconvVarsInStr()関数を使って自由に変数変換できるようになっています。
//単体の変数の変換にはconvVar関数を使用する
var myprof = convVar("USERPROFILE");

//文字列中の変数の変換にはconvVarsInStr()関数を使用する
var aPath = convVarsInStr("${USERPROFILE}\\デスクトップ");
詳しくはAPIリファレンスのconvVarconvVarsInStrを参照してください。
 

設定ファイルを外部エディタで開くボタン

 共有設定ファイルの編集はオプションウィンドウのテキストボックスから可能でしたが、正直編集しやすいものとはいえません。これをなんとかするために外部のテキストエディタで開くボタンを追加してみました。外部エディタプログラムは設定「view_source.editor.path」の値が使用されます。  
 
2009-02-04 18:41 | Dropfox | Comment(0) | Trackback(0)
<これ以前の記事