1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Chrome の重要なプラグインコンテンツを検出して実行の判定について

Posted at

いつからだったか Google Chrome では Flash バナー広告などの重要ではないプラグインコンテンツは、一度描画領域をクリックしないと実行されなくなった1
結果として Flash バナー広告はバナー広告市場から消え、HTML5 バナー広告の時代が始まったのだった。

まぁそれはどうでもいいんだけど、プラグインコンテンツで 重要そうでないか というのはどうやって判別しているのだろうか?
と疑問に思ったので調べてみた。

こんなやつ
Flashバナー広告はこんな感じに表示される。

調査結果

幅 398px 以上で、かつ高さ 298px 以上のプラグインコンテンツは重要なプラグインコンテンツとして判定される。
そして、重要なプラグインコンテンツかどうかの判定は完全修飾ドメイン名毎に判定される。

どういうことかというと
例えば 100x100 の大きさで埋め込まれたプラグインコンテンツは、1度クリックしないと実行されないが、同一の完全修飾ドメイン名を持つ a と b を同じページに埋め込み、a を 400x300 で埋め込んでおくと、b を 100x100 で埋め込んでも表示される。
ちなみに、一度実行可能な大きさでで表示してから JavaScript でサイズを小さくしても実行される。

上のキャプチャでもわかるように実行される前にサムネイルは表示される。
どうやら1度だけ描画することができるらしい
例えば1分後に1度だけ描画されるようなつくりであれば、1分後に1度だけ描画され、それがサムネイルになる。

描画される前も描画された後も実はバックグラウンドでずっと実行されているらしい
ただし制限はある。
タイマーは 500ms に制限されて、Socket などの通信系は実行できない
ちなみに、1度描画されるまではマウスイベントも送出される2

結論

バナー広告は動くな
もう Flashバナー広告は見ないけど HTML5 広告は同じ道を進み始めている。
先日若干重いと思ったらバナー広告内で Youtube の動画が再生されていた。
画像でいいよ画像で…。

  1. デフォルトの設定でそうなった。

  2. マウスムーブなど

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?