Mar 04, 2007
coCommentの拡張機能をいれるとlivedoor Readerの動作がおかしくなるらしいので調べてみた
似たようなのを続けて見たので調査してみた。
http://d.hatena.ne.jp/ekken/20070303/1172921555
http://d.hatena.ne.jp/babie/20070227/1172547987
coCommentのFirefox用の拡張が原因っぽい。手元のFirefox2だとXULのエラーが出て上手くインストールできなかったんだけど、ソースを読んで調べてみた。
原因はこのソースが読み込まれてるからだと思われる。
http://www.cocomment.com/js/core.js
coCommentの拡張機能はページを読み込むたびにブックマークレットを実行するのと同じようなことをしてるみたい。その際に、サイト側で定義してある関数を上書きしてしまうことがある。$とString.prototype.stripが再定義されていて、これがlivedoor Readerが動かなくなる原因だろう。他にもグローバル変数使いまくり。なんというか全般的におかしい。相性とかそういう類のものではなくて、単にcoCommentのJavaScript書いてる人が素人なだけ。
こっち側ではどうしようもないのでcoCommentの方に文句を言ってください。
ブックマークレットで使っているソースと共通化することが出来るので、メンテナンスコストを下げることができる。そういう理由でこういった実装にするのは、ありえないことではないとは思うけど、せめて普通は拡張機能側で適用可能なサイトかどうかを判別してからやるものだと思います。
http://d.hatena.ne.jp/ekken/20070303/1172921555
http://d.hatena.ne.jp/babie/20070227/1172547987
coCommentのFirefox用の拡張が原因っぽい。手元のFirefox2だとXULのエラーが出て上手くインストールできなかったんだけど、ソースを読んで調べてみた。
原因はこのソースが読み込まれてるからだと思われる。
http://www.cocomment.com/js/core.js
coCommentの拡張機能はページを読み込むたびにブックマークレットを実行するのと同じようなことをしてるみたい。その際に、サイト側で定義してある関数を上書きしてしまうことがある。$とString.prototype.stripが再定義されていて、これがlivedoor Readerが動かなくなる原因だろう。他にもグローバル変数使いまくり。なんというか全般的におかしい。相性とかそういう類のものではなくて、単にcoCommentのJavaScript書いてる人が素人なだけ。
こっち側ではどうしようもないのでcoCommentの方に文句を言ってください。
感想
Firefoxの拡張機能は、分かってる人であれば中身を解凍してソースを見て、その段階で安全かどうかを判断することができるけど、ウェブサイト上に置いてあるJSを動的に読み込むようなことをしてしまうと、いつでも改変することが出来るので安全性を保障できない。(インストールした時点では安全でも、後から悪意のある拡張機能にいつでも変更できるということ)ブックマークレットで使っているソースと共通化することが出来るので、メンテナンスコストを下げることができる。そういう理由でこういった実装にするのは、ありえないことではないとは思うけど、せめて普通は拡張機能側で適用可能なサイトかどうかを判別してからやるものだと思います。
WriteBacks
あの
malaさんって何歳ですか?
Posted by nini at 2007/03/05 (Mon) 02:18:18
ググれ
Posted by mala at 2007/03/05 (Mon) 12:48:23
Livedoor ReaderがcoCommentプラグインを入れたFireFoxで見れない
coCommentの拡張機能はページを読み込むたびにブックマークレットを実行するのと同じようなことをしてるみたい。その際に、サイト側で定義してある関数を上書きしてしまうことがある。$とString.prototype.stripが再定義されていて、これがlivedoor Readerが動かなく
Posted by yasuhoの隠れ家 at 2007/03/06 (Tue) 22:17:45
Posted by at 2007/04/17 (Tue) 17:10:45
http://la.ma.la/blog/diary_200703041323.trackback
writeback message: Ready to post a comment.

