SSブログ
RSS [RSS1.0] [RSS2.0]
共謀罪を含む改悪組織犯罪処罰法は
【「共謀罪」法 衆参両院議員の投票行動(東京新聞 2017/6/16)】

FirefoxのアドオンAdblockでWebメールが真っ白に

 先日、So-netのWebメールでSo-netから届いたメールに記載されたリンクをクリックした時にメールの本文が消えた。クリックしたURLは http://mailcenter.so-net.ne.jp/ で始まっていた。クリックしたら他のURLをクリックした場合と同様に新しいウィンドウが開いた。私の場合は新しいタブで開くように設定してあるが、その新しいタブの内容は次のようなものだった。

オブジェクトは移動しました

 別のページにジャンプさせる仕組みだと思って最初は気にしてなかった。待ってもジャンプしなかったがFirefoxのアドオンBlockSiteかAdblockでブロックされているからだろうと気にしなかった。しかし、Webメールに戻るとメールの本文が消えていて、再表示させようとしても方法が見つからず、リンクをクリックしたメール以外のメールまでも本文が表示されなくなってしまって焦った。
 原因が分からず、とりあえずWebメールのページを再読み込みして、Adblockを無効にしてからクリックしてみたら問題は生じなかった。Adblockが有効なままでも、Ctrlキーを押しながら左クリックしたり、マウスのホイールをクリックしてリンク先を開いた場合は問題なかった。Adblockを有効にして単独の左クリックで開く「オブジェクトは移動しました」と表示されているページのソースは、Ctrl+左クリックの時に表示されるサイトのものだった。
 いろいろと考えた後に、ふと「オブジェクトは移動しました」の下の「このオブジェクトはここ」の「ここ」をクリックしてみた。Ctrl+左クリックの時と同じ新しいページにジャンプした。メール本文は復活しなかったが、「ここ」のURLが気になって確認してみた。http://ad.scadnet.com/ で始まっていた。「ad.」が付いているサイトの画像などはAdblockでブロックしているはずである。フィルタを確認したら「http://ad.$~object-subrequest,~other」があった。この設定を無効にしたらAdblockが有効なままでも問題が生じなかった。
 翌日にYahoo!メール(ベータ版)で実験したら同じトラブルが生じた。こちらはページ全体が真っ白になってしまった。Yahoo!メールの旧バージョンなら生じない。本文表示のためにJavascriptを使っているWebメールで生じるトラブルではないかと思ったので、同じようにJavascriptを使っていそうな「Infoseek メール Beta」でも試してみた。メール本文が消えたりWebメールのページ全体が消えたりはしなかった。それならば、So-netのWebメールもYahoo!メール(ベータ版)も問題が生じないように改良できるはずである。

 Adblockはページ内に広告などを表示させないアドオンであり、サイトへのアクセスを妨害する仕様ではないだろう。それならば、リンク先をWebメールと同じウィンドウの同じフレーム内に表示する仕様に問題があるのではないかと考えた。しかし、リンクしたURLの部分のソースを見たら「target="_blank"」が記載されている。同じウィンドウに表示するのではなく新しいウィンドウを開いて表示するはずで、そもそも「オブジェクトは移動しました」のページは新しいウィンドウに表示されている。Webメールの仕様に問題があるのかAdblockに問題があるのか分からなくなった。

 この不具合は「Firefox 3.6.13」と「Adblock Plus 1.3.3」と「So-netのWebメール」あるいは「Yahoo!メール(ベータ版)」を同時に使っているときに生じた。Javascriptを使ったWebメールの構造は複雑だろうから、それらのWebメールを使わない再現実験は難しいだろうと思った。しかし、再現できるソースは簡単に作れた。Javascriptは使っていない。インラインフレーム(iframe)を使っているだけである。インラインフレームを使ったソースで実験する前に普通のフレームを使ったソースを作って実験した。アップロードしたので「Firefox 3.6.13」と「Adblock Plus 1.3.3」を同時に使っている人は次のサイトにアクセスすればフレームやページ全体が消える不具合を体験できる。試して欲しい。

 それぞれのサイトには「target="_blank"」を使ったリンクと使わないリンクを用意してあるが、Adblockで「http://ad.$~object-subrequest,~other」というフィルタを有効にしている場合、どちらもフレームが消える。Adblockが「target="_blank"」を無視しているのだろうか。

 ところで、Adblockのフィルタの記述に関してはAdblock Plusのサイトの【Writing Adblock Plus filters】に書いてある。
 私の乏しい英語能力で解釈したところ、「http://ad.$~object-subrequest,~other」の「$」は各フィルタのオプションを記述する前に付けるようである。「~」はフィルタを適用しない例外の前に付けるようである。「object-subrequest」は「requests started plugins like Flash」とあり、フラッシュのようなプラグインの開始に関係していそうである。「other」は「types of requests not covered in the list above」とあり、各オプションのどれにも当てはまらない場合に適用するようである。要するに、「http://ad.$~object-subrequest,~other」はフラッシュ以外のほとんどのケースで「ad.」で始まるドメインに存在する画像などのファイルを無視するようである。嬉しいフィルタである。しかし、「http://ad.」で始まるURLへのリンクをクリックした時にリンクが存在するページまで消してしまう仕様は変である。「target="_blank"」で新しいウィンドウを開くようになっている場合は新しいウィンドウ内に表示しなければ良いはずである。私が確認したのはバージョン「1.3.3」である。アップデートされて改善されるか注目したい。アップデートされる度に、上の実験サイトで確認したい。


nice!(0)  コメント(0)  トラックバック(0) 
カテゴリー:サイトを見て
共通テーマ:パソコン・インターネット

読者の反応

nice! 0

sonet-asin-area

コメント 0

コメントを書く 

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。
captcha

トラックバック 0

トラックバックの受付は締め切りました