Chromeの拡張をいじった(last-mod: 2010-06-18)

Chromeの拡張を一通り試して、それなりに使ってみて、動作しない場面があったり、欲しい機能が無かったりしたので、ちょっと自分でいじりました。
Downloadページへ
以下、やったこと。

全部のmanifest.jsonのfix

  • GMailで動かない(all_frames = true)
  • file:///, https://で動かない("matches": [ "http://*/*", "https://*/*", "file:///*" ])

QuickTabs (2010-05-30)

  • ESCはテキストが有る場合には空にして、空の場合は閉じる
  • 待ち時間を500msから100msに
  • 空白区切り複数キーワードのハイライト
  • migemo対応
  • 早くキータイプすると入力が前後する修正 (2010-05-28)
  • migemoラクダ記法が不能だったのを修正 (2010-05-30)

migemoはMigemoFindInPageと同じく、ChromeMigemoを使ってます。ハイライトは効きません。ChromeMigemoが無い場合は普通の動作です動作しません。
jQueryのquickSearch plug-inmigemoに対応させたんですが、ChromeMigemoを使ったので、汎用性はありません。文字列のマッチングを設定可能にして正規表現とかワイルドカードとかも使えるようにするとか考えられますが、所詮は自分で使うのが目的の編集です。

MigemoFindInPage

  • Emacsキーをmayuで設定するためにバッティングしないものに
  • OKとCancelを違う動作に
  • 開始キーを実行中に使うと次検索になるように

mayu等無しで使うことを考慮してません。escやenterを使うためには、それらとグローバルに無意味なキーを組み合わせる必要があります。実行中はescやenterが無視され、非実行中は逆になることで、両方の役割を果たせます。mayuのDOM対応も考えたんですが、mayuの複数の基本的な部分の書き換え(フォーカスとウインドウ文字列生成)はまだしも、chromeのpluginの作成が要求されるのでやる気になれませんでした。2010-04-21: 拡張が使えないページでデフォルトの検索を普通に使えるようにしてみました。Ctrl+G|F3|Shift+F3で開始、Ctrl+G|F3で次、Shift+F3で前、ENTERでOK、ESCでCANCELです。2010-04-22: ENTERが\になってたのを修正。「Ctrl+Shift+Gで前」を追加。2010-04-23: Shift+EnterがShift+Clickみたいになるようにした。
OKキーで選択中の物をクリックします。enter出力でいいかと思ったんですが、Google検索でexperimentalのkeyboard shortcutを使ってるとそっちのフォーカスが優先されて機能しないので、結局実装しました。2010-04-29: target=_blankのAのclickをemulateすると、Chromeがタブでなくウインドウを開く問題に対処しました。target=_blankの場合に、新規にAを作って、それに対してCtrlを押した状態でのClickをemulateします。
mayuの設定:

key c-s = c-g
key c-r = S-f3

OpenAllSelectedLinks

  • キーボード対応(Ctrl+Shift+Alt+C)

KeyboardNavigation (2010-06-18)

  • Backspaceで入力の訂正
  • Googleのkeyboard shortcuts experiment等とバッティングしないように、run_at: document_startとevent.stopPropagationした(2010-06-07)
  • ちょっと速くした(HintModeをループ一回にした)
  • Spaceで選択中の要素にフォーカス、フォーカスが有る場合はEnterと同じ。
  • target=_blankへの対応(2010-04-29)
  • 速度向上のため見えてる範囲内のリンクだけ対象にした(2010-06-18)
  • 選択リンクがフォーカスされるようにした(2010-06-18)
  • フォーカス化に伴い、Enterをデフォルト処理されるようにした(2010-06-18)

InputFocus (2010-06-07)

  • フォーカス後選択するようにした
  • ロード完了する前に見えてるInputにフォーカスしようとすること多かったので、run_at: document_start

BingKey (2010-06-07)

Google検索が最近曖昧なので、Bingに乗り換えようと思ったのですが、keyboard shortcuts無しではやってられないので、自分で書きました。https://chrome.google.com/extensions/detail/mjmppeooepeoagdkehbedanhnmijcgjg


以下感想。

  • 久しぶり(10年ぐらい)にJavaScript(というかjQuery)でDOMに触れたら結構楽しかった。
  • Chromeの仕様が制限だらけでうざかった。