code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Firebug/Firefoxのバグ

uncaught exception: Error: Permission denied for <http://www.facebook.com> to get property Proxy.InstallTrigger
uncaught exception: Error: Permission denied for <http://platform.twitter.com> to get property Proxy.InstallTrigger

ソーシャルブックマークを設置した後、こんなエラーがエラーコンソールとFirebug(1.8.4)で出るようになった。Firefox 8.0の話。→Firefox 9.0.1でも直ってない!→Firefox 10.0.2でも直ってない!→やっぱりFirefox 11.0でも直ってない!→12.0で出なくなった。直った感じ??今のところエラーメッセージは出ていない

BugzillaのステータスがUNCONFIRMEDのままだけど、どっかを直したら一緒に直ったとかだろうか

Google GroupFirebug Issuesによると、Firebugの不具合のようだ。

This issue (one of 10) has been fixed in Firebug 1.9b2 http://getfirebug.com/releases/firebug/1.9/firebug-1.9.0b2.xpi Please check it out and let us know if it works for you. Thanks for the help!

とある。上記のURLではなくFirebugのWebサイトからリンクされているバージョン (1.9.0b3-fx)に変えたところFirebug上のエラーメッセージは出なくなったが、Firefoxのバグトラッカーによると、Firebugはこのエラーメッセージを隠しているだけで、実はFirefoxの不具合ではないかとのこと。

確かにFirebugのエラーは消えたがエラーコンソールでまだ出続けているので、Firefoxの不具合のようである。

さらに、

Firefoxのバグトラッカーによると、document.domain='twitter.com';とかが悪いんじゃないか?とのこと。

This error can be simply triggered by setting document.domain to any valid value in any webpage using javascript. For example, assuming the follow page can be visited by http://foo.com/bar.html.

------------------------------------
<!DOCTYPE html>
<script>
  document.domain = 'foo.com';
</script>
------------------------------------

Then the error message "uncaught exception: Error: Permission denied for <http://foo.com> to get property Proxy.InstallTrigger" shows in the error console.

書かれてる内容をこのブログで行ってみたところ再現できた。TwitterもfacebookもJavaScriptの中でdocument.domainを書き換えている(Twitter: これ; facebook: これ; どちらも動的に作成しているだろうからすぐリンク切れるかも; minifiedだけどdocument.domain=で検索すれば見つかる)ので、アタリっぽい。これが原因だとしたら使い方としては合ってるから、Firefoxの不具合になるのかな。

とりあえずエラーコンソールから表示を消す方法(超面倒な手順)

一度uncaught exceptionエラーが出ると、Firefox内部でフラグが立ち、ブラウザを再起動するまではwww.facebook.com/*やplatform.twitter.com/*のリクエスト全てに対して上記エラーが出ている気がする。

推測だがブラウザが起動してから初回のplatform.twitter.comやwww.facebook.comへのアクセスがdocument.domainの書き換えを含んでいた場合フラグが立つ気がする。そして一度フラグが立つと、そのブラウザを起動している限り、その次のアクセスからウィンドウが同じだろうが別だろうがJavaScriptだろうが画像だろうが、そこかしこでエラーコンソールにエラーの嵐が出るようになってしまうのではないか。

私の環境ではフラグが立った状態で、twitterの画像を表示させただけなのにエラーコンソールにエラーが出るようになっている。

それを避けるためにブラウザの起動直後にJavaScriptを含まないコンテンツをブックマークから表示させてから、ブラウジングを開始することにした。これで今のところ解消している風。でも超面倒。

使ったのは以下のふたつのリンク先。これをブックマークに登録しておき、ブラウザ起動直後にふたつのリンク先を開く。後は普通にブラウジングするだけ。これで例えば(twitterやfacebookのJavaScriptを読み込んでいる)このブログを閲覧してもエラーメッセージは出なくなった、、、、はず。

本ブログのデモでエラーが出てる場合、この画像などをブックマークし、一旦ブラウザを再起動した後、まずは画像を表示し、その後デモを表示すればエラーが出なくなっている、、、かもしれない。

でも、実害はなさそうなので、こんな小手先はせずにFirefoxの修正待ちでよいかと!

関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。