Googleが2010年に公開したパックマンの記念Doodleの開発者が、一見ささいな自動再生の判断と人気のFirefox拡張機能が組み合わさり、世界各地のコンピューターから原因不明のゲーム音が流れた経緯を明かした。この回顧録は、それぞれ単独では妥当に見える二つのソフトウェアの動作が、どちらのチームも予想しなかった形で相互に作用する事例を示している。
Googleはパックマンの30周年に合わせ、ホームページで遊べるこの機能を制作した。デザイナー兼開発者のマルチン・ヴィハリはHTMLとCSSでゲームを再構築し、迷路をGoogleのロゴに似せたほか、「Insert Coin」の操作から利用できる2人用のミズ・パックマンモードを加えた。音声にはFlashへの対応が必要だった。当時はブラウザーに十分普及していたため、原作ゲームの開始音楽、移動音、やられたときの一連の音をホームページ上で再生できた。
チームはまた、利用者の操作がない状態が10秒続くとDoodleの再生が始まるようにした。表示されているGoogleのホームページであれば、通常は訪問者が検索語を入力するか、すぐに離れるため、大きな問題になるとは考えにくかった。しかし、その組み合わせは、何も操作されないページでも、いずれクリックやキー入力なしに音を再生しうることを意味していた。
予想外の引き金になったのは、当時リンク先のプレビューに広く使われていたFirefox拡張機能「CoolPreviews」だった。ヴィハリの説明によると、この拡張機能はFirefoxの起動時に、ウェブサイトを見えない状態でバックグラウンドに開いていた。キャッシュを事前に読み込むため、あるいは初期設定が残っていたためとみられる。Doodleの公開当日、そのサイトはgoogle.comだった。利用者がブラウザーを起動して10秒後、目に見えないパックマンが動き始め、サイレンのような音がスピーカーから流れた。
問題を報告した人たちは、画面上のパックマンのタブを閉じても解決できなかった。そもそも、そのようなタブを開いていなかったからだ。ブラウザーや拡張機能が動いていることを知らない人もいた。そのため、この動作は記念ゲームというより、故障や望ましくないプログラムのように見えた。Doodleのチームが報告とCoolPreviewsとの関連に気づいたのは、通常の回避策が効かない理由を調べた後だった。
ヴィハリは数時間以内に、公開中のホームページに修正を施した。変更後は、見える位置に消音操作を追加し、クリック、キー入力、タッチ、「Insert Coin」の実行など、利用者による操作が行われるまで音声を開始しないようにした。バックグラウンドのプレビューはゲームを操作しないため、この変更によって隠れた音は止まり、遊ぶことを選んだ人向けの音声は維持された。現代のブラウザーでも、音の出るメディアに対して、利用者の操作を条件とする同様の制約が一般的に設けられている。
この体験談は、構成要素を単独でテストしても、本番環境におけるすべての相互作用は明らかにならないことも思い出させる。Googleのゲームは設計どおりに動き、拡張機能も自身の起動時の仕組みに従って動いていたが、両者を組み合わせた結果は利用者の期待に反していた。16年後に読むこの出来事は、Flashにまつわる珍しい話というより、長く通用する教訓に見える。ほかのコードがページを利用者の目の前に表示するのか、隠してしまうのかをソフトウェアは知りえない。だからこそ、バックグラウンドの読み込みやメディアの自動再生には、控えめな初期設定が必要なのだ。



