テテのつぶやき
Firefox [ページ: 1 2 3 4 ]

RSS 1.0

テテの不定期日記です。短めのつぶやきはtwitter (twilog)にて。



Win32版Firefox + Flash 11.3.300.257で、plugin-containerがクラッシュする問題

日時: 2012年6月9日 23時54分
カテゴリ: Firefox

クラッシュレポータを無効にしてビルドされたWin32版Firefoxで、OOPPを有効にした状態でFlash Player 11.3.300.257をロードすると、Flashプラグインの解放時にplugin-container.exeが強制終了しやすくなる問題が確認されています (Bug 763142)。

クラッシュレポータを有効にしたWin32版ビルド(公式Firefox等)でも、plugin-container.exeがまったくクラッシュしないわけではなく、たまにクラッシュします。

trunkソースからビルドしたWin32版Firefoxでも、不具合が再現しました。聞くところによると、Win64版Firefoxでは不具合は起きないそうです。

私は試したわけではないですが、Flashのmms.cfgファイルにProtectedMode=0という行を追加すると、不具合が治まるそうです。

tete009ビルドの場合、tmemutil.iniの[General]でCreateCrashDump=1を指定すると、不具合の発生確率が下がるようです。理由は不明。^^;

追記 (6月11日 18時20分): Flashプラグインの保護モード(Protected Mode)が有効になるのは、Windows Vista以降だそうです。この保護モードが原因と見られる不具合は、plugin-container.exeがクラッシュする以外にも、色々あるようです。

追記 (6月14日 7時): Flash Player 11.3をアンインストールしてから、10.3をインストールすることでも、不具合を回避できるそうです。詳しくは、Mozilla Japan ブログに記載されています。


Firefoxの動作ログを出力する環境変数

日時: 2012年2月21日 17時13分
カテゴリ: Firefox

Firefox等の内部動作をログに出力するために、NSPR_LOG_MODULESとNSPR_LOG_FILEという環境変数が用意されているそうです。

NSPR_LOG_MODULES
ログに出力するモジュールと、ログの出力レベルを指定。NSPR_LOG_MODULES=all:5と記述すると、全て出力。

ログのレベルについて (prlog.hより抜粋):

  • 0: nothing
  • 1: always printed
  • 2: error messages
  • 3: warning messages
  • 4: debug messages
NSPR_LOG_FILE
ログの出力先。ログファイルの保存先を相対パスまたは絶対パスで指定。ログをデバッガで表示するには、WinDebugという文字列を指定。

NSPR_LOG_MODULESの設定例:

HTTP
NSPR_LOG_MODULES=nsHttp:5,nsSocketTransport:5,nsHostResolver:5
FTP
NSPR_LOG_MODULES=nsFtp:5
拒否されたcookie
NSPR_LOG_MODULES=cookie:3
許可・拒否されたcookie
NSPR_LOG_MODULES=cookie:4
画像 (GIFは?)
NSPR_LOG_MODULES=BMPDecoder:5,PNGDecoder:5,JPEGDecoder:5,JPEGDecoderAccounting:5
画像のリクエスト
NSPR_LOG_MODULES=imgRequest:5
コンポーネントのロード
NSPR_LOG_MODULES=JSComponentLoader:5
プラグイン
NSPR_LOG_MODULES=Plugin:5,PluginNPP:5,PluginNPN:5

Firefoxで使用できる環境変数を調べてみた

日時: 2012年1月11日 17時57分
カテゴリ: Firefox

Windows版Firefox等で使用される環境変数について、少し調べてみました。私の独断と偏見に基づいての調査なので、間違っているところがあるかもしれません。また、Firefox等のバージョンによっては、効果のない環境変数もあるかもしれません。

パス関連の環境変数。

XRE_PROFILE_PATH
プロファイルフォルダのパス。
XRE_PROFILE_LOCAL_PATH
プロファイルローカルフォルダ(とでも言うのかな?)のパス。XRE_PROFILE_PATHを設定していないと無視される。規定値はXRE_PROFILE_PATHで指定したパス。urlclassifier3.sqlite等が保存される場所。
MOZ_PLUGIN_PATH
プラグインフォルダのパス。
MOZ_SEARCH_ENGINE_PATH
検索プラグインフォルダのパスみたい。でも設定しても反映されないような…。
XUL_APP_FILE
application.iniファイルのパス。

起動に関係する環境変数。

MOZ_NO_REMOTE
プログラムを複数起動可能にするかどうか。何か文字が指定されていれば複数起動可能に。プロファイルは別々のものを使う必要あり。コマンドラインオプションの-no-remoteと同じ。
MOZ_SAFE_MODE_RESTART
セーフモードで起動するかどうか。何か文字が指定されていればセーフモード。
XRE_START_OFFLINE
オフラインモードで起動するかどうか。何か文字が指定されていればオフラインモード。
MOZ_PURGE_CACHES
StartupCache機能を無効にするかどうか。何か文字が指定されていれば無効化。無効にするとキャッシュ(startupCacheフォルダ等)は削除され、コンポーネントが強制的に再登録される。コマンドラインオプションの-purgecachesと同じ。

マルチプロセス関連の環境変数。

MOZ_DISABLE_OOP_PLUGINS
out-of-process plugins (OOPP)を無効にするかどうか。何か文字が指定されていれば無効化。
MOZ_DISABLE_OOP_TABS
out-of-process tabsを無効にするかどうか。何か文字が指定されていれば無効化。でも2012年1月11日現在、Electrolysis (e10s)プロジェクトは活動停止中。

Gfxコンポーネントの環境変数。

GPUハードウェアアクセラレーション機能のブロックリスト等をテストするために用意されている環境変数。自分の環境とは異なるグラフィックスデバイスやドライバ、Windowsを指定可能。about:supportのグラフィックス項目にもちゃんと反映されます。

MOZ_GFX_SPOOF_VENDOR_ID
グラフィックスデバイスのベンダーID。例: MOZ_GFX_SPOOF_VENDOR_ID=8086
MOZ_GFX_SPOOF_DEVICE_ID
グラフィックスデバイスのデバイスID。例: MOZ_GFX_SPOOF_DEVICE_ID=0112
MOZ_GFX_SPOOF_DRIVER_VERSION
グラフィックスドライバのバージョン。例: MOZ_GFX_SPOOF_DRIVER_VERSION=8.15.10.2361
MOZ_GFX_SPOOF_WINDOWS_VERSION
Windowsのバージョン。メジャーバージョンを16ビット左シフトしてからマイナーバージョンを加算し、16進数で表記。例: Windows 7の場合、メジャーバージョンは6、マイナーバージョンは1なので、MOZ_GFX_SPOOF_WINDOWS_VERSION=60001

WebGLの環境変数。

MOZ_WEBGL_PREFER_EGL
EGLの使用を試みるかどうか。何か文字が指定されていれば、EGLの使用を試みる。既定ではEGLの使用を試みない。
MOZ_WEBGL_FORCE_OPENGL
強制的にOpenGLを使用し、EGLとANGLEを使用しないかどうか。何か文字が指定されていればOpenGLを使用し、EGLとANGLEは使用しない。

JPEGライブラリの環境変数。

JSIMD_FORCEMMX
強制的にMMXルーチンを使用するかどうか。JSIMD_FORCEMMX=1でMMXルーチンを使用。
JSIMD_FORCE3DNOW
強制的に3DNowとMMXルーチンを使用するかどうか。JSIMD_FORCE3DNOW=1で3DNowとMMXルーチンを使用。しかし2012年1月11日現在、3DNowルーチンは存在しないようなので意味無し…。
JSIMD_FORCESSE
強制的にSSEとMMXルーチンを使用するかどうか。JSIMD_FORCESSE=1でSSEとMMXルーチンを使用。
JSIMD_FORCESSE2
強制的にSSE2ルーチンを使用するかどうか。JSIMD_FORCESSE2=1でSSE2ルーチンを使用。

クラッシュ報告用環境変数。

Environment variables affecting crash reportingからの引用。

Mozilla プロジェクトで使われる Breakpad クラッシュ報告 は、主にテストを目的として、いくつかの環境変数をサポートしています。以下の環境変数はクラッシュ報告に影響する環境変数です:

MOZ_CRASHREPORTER_URL
クラッシュレポートがレポートを提出する URL を設定します。
MOZ_CRASHREPORTER_NO_DELETE_DUMP
サーバに提出後もクラッシュレポートダンプを削除しないようにします。ミニダンプは依然として "Crash Reports/pending" に移動されます。
MOZ_CRASHREPORTER_NO_REPORT
ミニダンプファイルを保存しますが、クラッシュ報告 UI を起動したりサーバに提出したりはしません。ミニダンプはユーザのプロファイルディレクトリの "minidumps" と名付けられたサブディレクトリに保存されます。

Geckoのreflow関係の環境変数。開発者向け。

GECKO_REFLOW_INTERRUPT_MODE
reflow割り込みモード。2012年1月11日現在、Windows版ではGECKO_REFLOW_INTERRUPT_MODE=counterのみ指定可能。既定ではイベントベースの割り込みモードが使用される。
GECKO_REFLOW_INTERRUPT_FREQUENCY
GECKO_REFLOW_INTERRUPT_MODE=counterの時に使用される。This is the number of unskipped interrupt checks that have to happen before we interrupt. 規定値は10。
GECKO_REFLOW_INTERRUPT_CHECKS_TO_SKIP
This is the number of unskipped interrupt checks that have to happen before we interrupt. 規定値は200。
GECKO_REFLOW_MIN_NOINTERRUPT_DURATION
Number of milliseconds that a reflow should be allowed to run for before we actually allow interruption. 規定値は100。

上記以外にも色々な環境変数がありますが、ひとまず調査終了。


Firefox 9.0.1でSxSエラーが発生する問題 (特定環境下で)

日時: 2011年12月23日 9時48分
カテゴリ: Firefox

先日書いたことが公式Firefox 9.0.1にも該当するかどうかを検証した結果、やはりMozillaソースのバグであることが分かりました。

追記(12月25日 21時34分): 公式Firefoxで、以下に書かれている不具合が現れた場合、「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム」にあるvcredist_x86.EXEを実行してWindowsにインストールすれば、不具合は治まります。

まず、仮想マシン上のWindows XP SP3上から、.NET FrameworkとVisual C++ 2005 SP1のランタイムライブラリを削除後、Firefox 9.0.1を起動してみました。

すると、components\browsercomps.dllのロードに失敗し、RSSフィードを正常に表示できなったり、about:aboutの項目数が減少する等の不具合が発生しました。Mozillaソースのバグであることが判明。

Firefox 9.0.1でSxSエラー発生

この不具合の原因は、browsercomps.dllに埋め込まれているマニフェストに問題があって、プライベートアセンブリとして添付されているCランタイムDLLをbrowsercomps.dllがロードできないためです。サイドバイサイドめ…。

Firefox 9.0.2を出さなくていいのかな。

追記(23時59分): Bug 713167にて不具合を報告しました(似非英語で)。

追記(12月24日 21時51分): この不具合の影響を受けるのは、Firefox 9.0.1だけでなくて、10.0、11.0a2、12.0a1もだそうです。南無南無…。

追記(12月25日 16時15分): Firefox 9.0.1でBug 713167が発症すると、about:homeを開けない問題も起こります。

追記(12月25日 21時6分): about:home以外に、about:permissions、about:privatebrowsing、about:rights、about:robots、about:sync-tabsも開けなくなるようです。


CSS3草案のtext-decoration系プロパティ

日時: 2011年6月25日 10時56分
カテゴリ: Firefox

当サイトでは、HTMLのins要素にCSSの「text-decoration: underline」を適用しています。しかし線の色が文字色と同じ色なので、文字が読みにくいなと思っていました。

CSS3草案では、text-decoration-line、text-decoration-color、text-decoration-styleといったプロパティが追加されていて、スタイルをより細かく指定できるようです。

Bugzillaで調べたら、Aurora 6でこれらのプロパティに対応しつつあるようでした。というわけで、それらのプロパティを当サイトのCSSで使うことにしました。Aurora 6をインストールして確認したところ、追記部分の文字が少し読みやすくなったように思います。

Mozilla Japanの中野さんという方が、ものすごい量のソースコードをBugzillaに提出なさっていて、ぶったまげました。真のハッカーとは、あのような方々のことを言うのではないかと思いました。

現在はハッカーというと、外部コンピューターに侵入するマニアの方々を指すことが多い気がしますが、元々はコンピューターやプログラミングに熟達した方々への尊称なんですよね。

規模の小さいパッチなら、自分の独自ビルドに適用できないかなと思ってBugzillaをのぞいたんですが、規模が大きすぎて断念しました。^^;


WebGLに脆弱性‥‥だと‥‥?

日時: 2011年5月11日 18時14分
カテゴリ: Firefox

WebGLの仕様自体に問題があるそうですが、Firefox 4.0.2は今月中にリリースされるのかな。もしリリースされたら、自分もTumucumaqueをビルドしなければいけないな。

ぐぅ、恐れていたことが。桃音モモ誕生祭2011が迫ってきていて、動画制作の追い込みをかけたいこの期に及んで、新たな脆弱性が見つかるとは…。_| ̄|○ …リリースされたら、もちろんビルドします。^^


父のFirefoxを4.0にアップデート

日時: 2011年4月2日 13時3分
カテゴリ: Firefox

父の居ぬ間に、父のパソコンにインストールされているFirefox 3.6.16を、4.0にアップグレードする作戦を決行!

Firefox 4.0になって、メニューバーやタブバーのユーザーインターフェース(UI)が大きく変わったので、混乱しないようにUIを過去のFirefoxに似せておきました。

Firefox 4.0 (UIは過去と似せる)

Firefox 4.0は、可能な場合にハードウェアアクセラレーションを活用したグラフィックス表示を行います。

試みにいくつかのサイトを開いて、スクロールバーのつまみをつまんでスクロールしてみると、あまり滑らかにスクロールしないサイトがありました。もしや、ハードウェアアクセラレーションが無効になっているのでは…?

about:supportを開いてグラフィックスの項目を見てみると、ハードウェアアクセラレーションが全く効いていませんでした。Direct2D 有効という項目には、以下のように書いてありました。

グラフィックドライバにより描画支援がブロックされました。グラフィックドライバをバージョン 257.21 以降に更新してみてください。

グラフィックス情報 (ドライバアップデート前)

勧められたように、NVIDIAのサイトからNVIDIA グラフィックス ドライバー バージョン 266.58をダウンロードしてインストール。うちのADSL回線では、131MBのインストーラをダウンロードするのに、30分近くかかりました。でかすぎ。

NVIDIAグラフィックスドライバー (131MB)

再びabout:supportを開き、グラフィックスの項目を見てみました。WebGL レンダラGPU 描画支援のウィンドウは有効になったようですが、Direct2DとDirectWriteは有効になりませんでした。

グラフィックス情報 (ドライバアップデート後)

Direct2Dを無理矢理有効にしたらどうなるのか、興味が湧いてきました。about:configと入力すると、動作保障対象外になります!との警告が。はいはい、細心の注意を払っていじりますよ。

about:configの警告

フィルタにgfxと打ち込んで項目を絞り込み、gfx.direct2d.force-enabledの値をtrueに変更して、Firefoxを再起動♪

Direct2Dを強制的に有効に

……Firefoxは普通に起動しました。試しに複数のタブでニュースサイトを開いてみると…。ぎゃああぁぁ。タブが真っ黒になってるぅ。……元に戻しておこうっと。

タブが真っ黒


Firefox trunkにlibjpeg-turboが組み込まれた

日時: 2011年3月30日 20時50分
カテゴリ: Firefox

Bug 573948 Replace libjpeg with libjpeg-turboのパッチがチェックインされて、ステータスがRESOLVED FIXEDになりました。Firefox trunkで、libjpegの代わりにlibjpeg-turboが使用されるようになったようです。


もう1つの肩の荷

日時: 2011年1月28日 7時22分
カテゴリ: Firefox

前の記事で、肩の荷が1つ下りたと書きました。もう1つの肩の荷は、Bug 564851 - support building with profile-guided optimization (PGO) です。

私がこのバグに提出しているパッチは、Windows版のNetscapeポータブル・ランタイム(NSPR)にガイド付き最適化(PGO)ビルドのサポートを追加するものです。

現在、Windows版Firefoxに付属するNSPR (nspr4.dll、plc4.dll、plds4.dll)には、PGOが適用されていません (公式ビルドの場合。独自ビルドはその限りではありません)。このパッチを適用後は、Windows版Firefoxをmake -f client.mk profiledbuildのようにしてビルドすれば、NSPRにもPGOが適用されるようになります。レビューは通ったのですが、未だチェックインされていません。

なおGCC版のNSPRには、Tedさんのパッチによって、既にPGOビルドのサポートが追加されています。

また、tete009ビルドのNSPRには、以前からPGOを適用しています。NSPRにPGOを適用したからといって、Firefoxの動作速度が目に見えて向上するわけではないですが、ちりも積もれば何とやら…ということで。

関連記事:


Bug 600280が修正された

日時: 2011年1月25日 7時8分
カテゴリ: Firefox

Bug 600280 – [gfxInfo] Driver version and date are empty or null for some graphic cards under Windows 2000/XPのパッチがmozilla-centralにチェックインされ、ステータスがRESOLVED FIXEDになりました。肩の荷が1つ下りました。^^

関連記事:


他の記事

記事検索フォーム

Google

カレンダー

前月へ | 2014年8月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

最近のコメント

  1. QUAD-CAPTUREのUSBケーブルの接続先PCを変えて、RMAAを実行してみた
    • テテ [2014-08-23]
    • アイヴァーン [2014-08-23]
    • テテ [2014-08-21]
    • アイヴァーン [2014-08-21]
  2. CalibrizeをWindows 7で使用する方法
    • テテ [2013-12-24]
    • 検索してたどり着きました [2013-12-24]
    • テテ [2013-08-01]
    • 初心者 [2013-08-01]
    • テテ [2012-05-08]
    • 通りすがり [2012-05-08]
  3. Roland QUAD-CAPTURE UA-55がキタ
    • 友友狗部落格 [2012-12-05]
  4. Firefox 16.0.1とEarlybird 16.0.1 私的ビルドをアップ (CanvasのputImageDataを高速化)
    • テテ [2012-11-23]
    • [2012-11-23]
  5. 人体感知センサーを組み立てた
    • ケンタ [2012-10-05]
    • テテ [2012-10-04]
    • ケンタ [2012-10-04]

過去ログ


広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。