1. クラッシュする前に画面の一部が黒くなる
最近、頻繁に Firefox がクラッシュするようになった。一日に何度も落ちる。
特に気になる現象は、長時間使っていると画面の一部が黒くなり、その上をマウスでなぞると内容が表示される。
その後、少し経過すると、必ずクラッシュする。
about:crashes でクラッシュレポートを見ても良く分からない。(+_+)
そこで、以下のいくつかの方法を試したら、少し安定するようになった。
2. ハードウェアアクセラレーションを切る
最初に、ハードウェアアクセラレーションを切った。
When I scroll down in facebook my screen turns black. | Mozilla サポートによると、
Some inexplicable display glitches can be caused by Firefox being incompatible in some way with your graphics card drivers. The standard workaround for that is to disable Firefox from using hardware acceleration of graphics.
- オプション > 詳細 > 一般
において、「ハードウェアアクセラレーション機能を使用する」のチェックを外す。
MacType で滑らかなフォント表示にしたときは、ハードウェアアクセラレーションを有効にし、about:config で gfx.direct2d.disabledの値を trueにしていた。
3. Flash Player のハードウェアアクセラレーションを切る
Flash Player のハードウェアアクセラレーションも無効にした。
Firefox 29 is full of problems. | Mozilla サポートによると、
- When the memory usage gets above ~1 GB (FYI, this is a guess), I start seeing problems with Firefox displaying web-page graphics and even, in one instance, shutting down text input on a web page (this was within Facebook).
例えば、Flash Player Helpで再生し、動画上で右クリック
- 設定 > 「ハードウェアアクセラレーションを有効化」
のチェックを外した。この設定は Flash Player で再生している動画上であれば変更することができる。
4. WebGL を無効
WebGL も無効にした。
無効にするためには、ロケーションバーに about:config を入力。検索フィールドから webgl.disabled. を抽出し、値をダブルクリックして true に変更。
Upgrade your graphics drivers to use hardware acceleration and WebGL | Firefox Helpによると、
In the Filter box, type webgl.disabled. Doubleclick on the webgl.disabled item to switch it to true.
WebGL[1](ウェブジーエル)は、ウェブブラウザで3次元コンピュータグラフィックスを表示させるための標準仕様。OpenGL 2.0もしくはOpenGL ES 2.0をサポートするプラットフォーム上で、特別なブラウザのプラグインなしで、ハードウェアでアクセラレートされた三次元グラフィックスを表示可能にする。
この機能を無効にすると、例えば Google マップ上で 3D 表示ができなくなる。
5. gfx.content の設定
about:crashes でクラッシュレポートを見ると、gfx.content 関連で落ちていることがしばしば。そこで、以下の値も設定してみた。
Font gone funny after Windows update | Mozilla サポートによると、
If your gfx.content.azure.backends preference looks like:
direct2d,cairoTry deleting direct2d so you just have
cairo
スクロールすると Firefox の文字がにじむ - @半径とことこ60分によると、
やっとこちらのサイトをみつけました。
Firefox文字乱れ・崩れ - smilebanana
- firefoxのアドレスバーに「about:config」と入れる
- gfx.content.azure.enabled を検索して false に変更
とすればいいとのことで、変更してみると、確かににじみは消えました。
元記事の もじら組フォーラム [One Topic All View / Re: firefoxの文字表示に関して]によりますと、Firefoxの新しい2DグラフィックコンポーネントであるAzureを使うか使わないかとのことで、ATIのグラフィックボードでこの症状が出てるらしいです。
6. キャッシュ、クッキーをクリア
キャッシュ、クッキーを削除した。
特定のサイトで頻々にクラッシュするようであれば、そのサイトのクッキーだけを削除する。
When I scroll down in facebook my screen turns black. | Mozilla サポートによると、
… Occasionally Firefox will get a little mixed up with cached files and cookies. This can be a problem on dynamic sites that use a lot of elements. According, when you have a problem with one particular site, a good "first thing to try" is clearing your Firefox cache and deleting your saved cookies for the site.
ここでは全てのキャッシュとクッキーを削除する。
- オプション > 詳細 > ネットワーク > キャッシュされた Web ページ
において「今すぐ消去」ボタンを押す。
- オプション > プライバシー > 履歴
において「 Cookie を個別に削除」をクリック。 Cookie ダイアログにおいて、「すべての Cookie を削除」ボタンを押す。
必ず特定のサイトでクラッシュする場合、特定のクッキーだけを削除してみて、様子を見る。
Firefox キャッシュを RAM ディスクへ移動しているので、SoftPerfect RAM Disk で RAM ディスクを作成しなおした。
7. 変更、無効にしたアドオン
自分の環境では、以下のアドオンを変更・無効にした方がクラッシュしにくくなったような気がする。
a. Adblock Edge
Adblock Plusより、Adblock Edgeの方が相性が良かったので乗り換えた。
- cf. 広告を消してくれるブラウザ拡張機能「Adblock Plus」の秘密 – GIGAZINE
- 情強ケンモメンは「Adblock Edge」、「Disconnect2」を入れネットサーフィンをしております
乗り換えに際して、Adblock Plus で予め設定のバックアップをとり、Adblock Edge で復元した。
- Adblock の設定 > フィルタ購読 > バックアップと復元
b. Lazarus Form Recovery
Lazarus: Form Recoveryは無効にした。
8. グラフィックドライバの更新
念のため、グラフィックドライバを最新にしておく。
グラフィックドライバを更新する方法 | Firefox ヘルプによると、
Firefox や一部のプラグインは、ウェブコンテンツの表示を高速化するためにグラフィックカードを使用します。グラフィックカードは WebGL のような高度なウェブ機能にも使用されます。これらの機能の問題を解決するためやこれらの利点を得るために、グラフィックカードのドライバを更新する必要があるかもしれません。
一般的なグラフィックドライバをグラフィックカードのメーカーのウェブサイトからインストールすることができます。これらは通常最新の状態が保たれ、さまざまなシステムで動作するよう設計されています:
どのグラフィックカードが搭載されているか分からない場合は、Firefox の about:support (トラブルシューティング情報のページ) で確認してください。
グラフィックカードに NVIDIAを利用している。ちょうど先日更新されたばかりだったので、インストールした。
WHQL版「GeForce 337.88 Driver」登場。ゲームの読み出し時間を短縮する「Shader Cache」導入が目玉 - 4Gamer.netによると、
337.88ドライバだが,注目したいのは,「Shader Cache」(シェーダキャッシュ)という新機能がNVIDIAコントロールパネルに実装されたことだ。… これは,PCのストレージ上にシェーダ専用キャッシュを用意し,ゲームの実行時にコンパイルされたシェーダプログラムを保存しておけるようにするというものだ。
従来,コンパイルされたシェーダプログラムは,ゲームを終了すると破棄されるようになっていたため,ゲームをプレイするたびに再度コンパイルする必要があったが,それが不要になるため,ゲームの読み出し時間と,CPU負荷の低減を図れるとNVIDIAは主張している。
→32bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(277MB)
→64bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(333MB)
→Windows XP用GeForce 337.88 Driver(244MB)
→ノートPC向けの32bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(277MB)
→ノートPC向けの64bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(333MB)