bookmarklet使えば、どのブラウザでも動くし、最高じゃない?と思ったがCSPにブロックされて全然ダメだった

便利なchrome extensionを使うたびに、chromeにロックインされていく。コレと同じ機能を持つfirefoxのaddonは〜とかダルい。
便利にchromeを使っているが、iosやandroidのchromeではchrome extensionが使えない。コレはきびしい。
ios safariでは、ios appに付属させる形でios safari用のextentionが配布できるようだ。要お布施。

各ブラウザのextention探すのもダルいのに各ブラウザのextention作るわけ無いだろ…。firefoxでchrome extentionとほぼ同じ形式で作れるようになるらしいけど調べてない。

greasemonkey系のでもいいけど、自動で適用しなくていいのなら、bookmarkletで良いのでは?
context menuに追加系のは多少だけど普段使うwebが遅くなりそうで避けたい。
ゴニョゴニョごニョーーっと処理をやって、最後にwindow.promptで出力すれば、クリップボードにアクセスしなくていいし、ユーザーに自分でコピーしてもらえばいいし、最高じゃない?と思った。

そんなに甘くなかった。

$ curl --head https://github.com/rackt/react-router
(snip)
Content-Security-Policy: default-src *; script-src assets-cdn.github.com; object-src assets-cdn.github.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com checkout.paypal.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' live.github.com wss://live.github.com uploads.github.com status.github.com api.github.com www.google-analytics.com api.braintreegateway.com client-analytics.braintreegateway.com github-cloud.s3.amazonaws.com; base-uri 'self'; form-action 'self' github.com gist.github.com

なるほど。

サーバー側がこう設定してある時に

外部ファイル読み込まないbookmarklet

javascript:()(function(){window.alert('foo');})

chrome46 foo のalert出る
firefox42 bookmarklet動かない
ios8 safari fooのalert出る
android5.1 chrome fooのalert出る
android5.1 firefox bookmarklet動かない

外部ファイル読み込むbookmarklet

例は省略

chrome46 csp違反で外部ファイル読み込めない
firefox42 bookmarklet動かない
あとは確認してない。

もちろんcsp設定していなければいろいろ動くが、使ってみるまでわからないのはきび
しいし、どのページでも動かしたい。

Which Browsers Can You Run Userscripts In, and How? | mturkgrind

外部ファイル使わないbookmarkletは更新が面倒。
あとnpm moduleを使って、browserifyで固めて、とか普通にやりたい。

  • desktop/laptop
    • firefox
      • greasemonkey
      • addon
    • chrome
      • tampermonkey
      • chrome extension
    • safari
      • tampermonkey for safari
      • extension
    • ie
      • greasemonkIE
      • addon
  • ios
    • safari
      • extension
  • android
    • firefox
      • greasemonkey(?) android41に入らない…
      • addon

上記サイトから引用するとこれぐらいなのかなあ。選択肢は。悲しい結末だった。
craete link 系のと はてブ数表示->はてブページにジャンプとevernoteにclipぐらいをお手軽にやりたいだけなんだけど。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中