2014年3月29日土曜日

[Windows] FirefoxでFlashがクラッシュする原因と対策

How to coexist with Adobe Flash the clasher
ATOK2013をインストールして以来、FirefoxでFlashが頻繁にクラッシュするようになりました。
ATOKの2013より古いバージョンならFlashがクラッシュすることはないのですが、Windows8に完全対応しているのが2013以降のため古いバージョンを使うわけにはいきません。
ATOK2013のテキストサービスを無効にするとクラッシュを避けられるようですが、ATOKバーが表示されなくなって不便です。その上、テキストサービスを無効ににしてもFirefoxがフリーズしてしまうことがあったためテキストサービスを有効のまま使用しています。

すぐにクラッシュするFlashと共存する方法を考えてみました。

環境は次の通りです。
・64bit版Windows7、64bit版Windows8 のどちらも
・64bit版ATOK2013
・32bit版Firefox 27.0.1

FirefoxにFlashblockという拡張機能をインストールする

Flashblockという拡張機能をインストールするとFlashコンテンツを自動でロードしなくなります。
https://addons.mozilla.org/ja/firefox/addon/flashblock/
Flashblockインストール後、Flashコンテンツはこのように表示されます。
Flashがロードされてないので不意にクラッシュされることを防ぐことが出来ます。
クリックすればFlashが再生されます。
ただしFlashを再生した後のクラッシュは防ぐことは出来ません。
Flashをブロックすることでコンテンツが正常に動作しなくなることもあります。


Youtubeの動画プレイヤーをHTML5プレイヤーに設定する

いろいろなサイトにYoutubeの動画プレイヤーが埋め込まれています。
Flashがクラッシュした後の様子を見ると、Youtubeの動画プレイヤーが表示されていたことが多いです。
Youtubeは設定を変更すると、Flashを使わずに動画を再生することが出来ます。
http://www.youtube.com/html5?hl=ja
のページから HTML5プレイヤーをリクエストする をクリックすると、Flashが使われなくります。Youtubeが原因でクラッシュすることはなくなります。


dom.ipc.plugins.hangUITimeoutSecsの設定を変える

Flashがハングアップすると、Firefoxがフリーズし操作を受け付けなくなります。
その後、警告の画面が表示されます。
この画面でプラグインを停止をクリックすればFlashがクラッシュしますが、Firefoxの操作をすることが出来るようになります。
初期設定ではハングアップしてから警告の画面が表示されるまで11秒に設定されています。
この時間設定を小さくすればフリーズしている時間が短くなります。
設定方法は、
Firefoxのアドレスバーに about:config と入力する
細心の注意を払って使用する をクリックする
検索に hangUITimeoutSecs と入力する
設定名から dom.ipc.plugins.hangUITimeoutSecs を探し、値を11より小さい数字に設定する
下の画像は3秒に設定したものです。
Flashがハングアップしてから短時間で停止することが出来るので無駄に待たされる時間が少なくなりました。


ATOK2013を使うのをやめる

Microsoft IMEならFirefoxのFlashが頻繁にクラッシュすることはありません。


Firefoxを使うのをやめる

ATOK2013をインストールした環境でも、Internet Explorerなど他のブラウザーはFlashが頻繁にクラッシュすることはありません。


以上がFlashのクラッシュを少なくするアイデアでした。

おまけ・謎のイベントログ

イベントビューアーを見ると、Flashがクラッシュしたタイミングでエラーが記録されています。


このCLSIDをインターネットで検索するとFlashによるものという主張を見かけます。
だとしたらFlashはユーザーが気付かないうちにアクセス許可の無い動作をしようとして失敗しハングアップしていることになします。
一体何をしようとしてるのでしょうね?

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿