GreasemonkeyにはXHRにfinalUrlっていうのがあったけどGoogle Chromeにはなくて不便だった.しょうがないから http://finalurl.appspot.com っていうのを作ってそこにGETでURLを送るとリダイレクト先を返すとかしてた.
chrome.webRequestにonBeforeRedirectっていうのがあってそれを使うとリダイレクト先を取得することができた. Web Requests - Google Chrome Extensions - Google Code
- 全てのURLについて,onBeforeRedirectを監視して,リダイレクトが起きたらリクエストURLとリダイレクト先のURLをハッシュに書き込むようにしておく
- 問い合わせがあったら,指定されたURLがハッシュにあるか見る,あればすぐに返す
- なければ指定されたURLにHEADリクエストを送る
- リクエストが返ってきたときにハッシュに書き込まれていればリダイレクトがあるのでリダイレクト先を返す,ハッシュになければリダイレクトしない
みたいな仕組みでできる.強引にやってる感じがする.リダイレクトが発生しないURLに対する問い合わせは必ずHEADリクエストが発生するので効率的でない.もっといい方法あれば教えてください.requestとかはtaberarelooのAPIだけどこんな感じ.→ use webRequest to get redirect url · a7fc1b3 · hitode909/taberareloo · GitHub