monoの開発ブログ

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本体のバージョンアップに追従するための更新は行いたいと考えています。よろしくお願いします。