Chrome HabraMail拡張機能(およびファビコンメソッド)

トピックを続けます



今回は、通常のhabrメール(ページの無限の更新、リンクのクリックなど)にうんざりして、google chromeの小さな拡張機能を作成することにしました。



友達、 HabraMailに会おう!



これは、これまでのところ、 ベータ版( 多くの改善すべき点 )ですが、今すぐ使用を開始できます。



UPD: ソースコード



カットの下の残り:

説明





インストール後、Habrの任意のページで、そのアイコンが右下隅に表示されます。

画像

クリックすると、「habrajashchik」の葉の最新のメッセージが表示された小さなウィンドウが表示されます。

画像

メッセージの件名をクリックすると、スムーズに再起動せずに、メッセージのウィンドウが表示されます。

画像

「書き込み」の碑文または作成者の名前(メッセージの件名の左側)をクリックすると、新しいメッセージフォームが表示されます。

画像

ちなみに、表示フォームでは、メッセージを削除することもできます。



技術的な実装



この拡張機能の作成を開始するとすぐに、次のような問題に直面しました:クロム拡張機能はクロスドメインリクエストを送信できますが、「Origin」プロパティはリクエストヘッダーに設定され、送信元のページのURLに等しくなります



すべて問題ありませんが、Habrahabrサーバーは、目的のOrginとは異なる要求の受け入れを拒否します。



そして、ここでファビコンの方法が助けになります。これについて説明します( これについて私が最初に考えることはないでしょう )。



ファビコン法



また、iframeを使用してクロスドメインリクエストを行うことにしました(コンテンツスクリプトもそこに接続されているため)。 しかし、問題は私が見つけることができる最小のページです(ただし、長くは見ていませんでした)-これは「404エラー」です。 もちろん、これは私には合わず、「代替」ソリューションを探し始めました。



拡張機能は、写真に加えて何も存在しないページ( :http://example.com/example.png )にさえ接続できることに気づきました。



タスクがドメインusername1.habrahabr.ru (またはhabrahabr.ru )からドメインusername2.habrahabr.ruにリクエストを送信することだったことを思い出させてください。



そして、私の拡張機能で「画像で検索」を使用して、次のように解決しました:アイコンの代わりに、次のURLがロードされる固定幅と高さの境界線なしのiframeを配置します: http : //username2.habrahabr.ru/favicon.ico 。 このiframeにコンテンツスクリプトが挿入され、拡張機能( chrome.extension.connectを使用 )を介してメインページ( username1.habrahabr.ru )と通信します。 メインページのスクリプトは拡張機能にリクエストを送信し、それをiframeに送信し、それを送り返し、拡張機能はスクリプトに応答を返します。



以下に、Chrome拡張機能でクロスオリジンリクエストを送信する方法を示します。



フィードバックと提案を楽しみにしています!



All Articles