monolithic kernel

Migemo Server for Google Chrome™を公開

Migemo Server for Google Chrome™という拡張機能を公開しました。

この拡張機能は、edvakf さんが開発されていた ChromeMigemo から fork したものです。ChromeMigemo は単体では他の拡張機能に対して API を提供する拡張機能で、拡張機能の開発者は ChromeMigemo を利用することで Migemo を利用した高度な検索機能を簡単に実現することができました。しかし、Chrome 24では ChromeMigemo が拡張間通信に利用していた sendRequestonRequest を利用した拡張機能を作成できなくなり (呼び出すとエラーになります)、ChromeMigemo を利用できなくなってしまいました (ただし、すでにパッケージ化された拡張機能は動作するようです)。

この問題を解決したバージョンが Migemo Server です。非推奨だった sendRequestonRequest の代わりに sendMessageonMessage を用いるようにしたほか、manifest_version: 2 への対応など最近の Chrome で動かすために必要な変更を行なっています。

fork という形をとっているのは、従来のバージョンと互換性がなくなってしまうことと、edvakf さんが現在 ChromeMigemo を利用していないということが理由です。名称を変更したのは、ChromeMigemo と区別できるようにすることと、Branding Guidelinesに引っ掛かっていそうな感じがした (自信なし) ことが理由です。

利用時の注意点

先ほど述べたとおり、ChromeMigemo との互換性はありません。ChromeMigemo に対応した拡張機能を利用する場合は ChromeMigemo、Migemo Server に対応した拡張機能を利用する場合は Migemo Server をインストールする必要があります。

開発時の注意点

利用する API と拡張機能の id は変わっていますが、基本的な使い方は変わりません。注意点と言うほどのことは特になく、以下のようなコードで簡単に正規表現を取得できます。

var query = '...';
var params = { action: 'getRegExpString', query: query };

chrome.extension.sendMessage('dfccgbheolnlopfmahkcjiefggclmadb', params, function(response) {
  if (chrome.extension.lastError) {
    console.log(chrome.extension.lastError);
    return;
  }
  console.log(new RegExp(response.result));
});

今後の予定

特に機能拡張の予定はありませんが、今回の更新に伴う不具合の修正や、今後の Chrome 本体のバージョンアップに追従するための更新は行いたいと考えています。よろしくお願いします。