― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 20 件の記事 ]  ページ移動 1つ前へ  1, 2
作成者 メッセージ
投稿記事Posted: 2017年4月13日(木) 16:43 
maji さん、詳しい検証をありがとうございます。

2017年4月01日(土) 02:29 付けの beginner さんの投稿(#p59488)によれば、
beginner さんが書きました:
PDF出力だけでなく紙プリンター出力でも同じように文字化けます。おっしゃるように <th> タグで太字になってる部分が化けてます。ブラウザでのプレビューは文字化けません。
とのことなので、これを前提とするなら、Firefox 側からプリンタドライバに引き渡されるデータ処理に何らかの問題があるように見えます。

以下、maji さんのテスト報告を拝見して気づいたことを、順を追って書かせていただきます。

maji さんが書きました:
about:config にて「 skia 」が値として指定されていた以下の二つの設定名

AzureCanvasBackend
AzureContentBackend

標準状態の Firefox 52.0.x (Windows 版) に、この2つの設定項目は存在しません。

gfx.canvas.azure.backends = direct2d1.1,skia,cairo
gfx.content.azure.backends = direct2d1.1,skia,cairo

の2つは存在し、上述ような初期値を持っていますが、これは直接影響していないように見えます。
maji さんがご提示になっている項目は、Skia が有効になった結果、生成されるのかもしれません。

maji さんが書きました:
Firefox52のリリースノートによると

》 Windows上でコンテンツの描画に Direct2D が使われていない場合、代わりに Skia を使用します。

との対処があったとの事です。

通常、Firefox (Windows 版) では初期状態で Direct2D が有効になっています(gfx.direct2d.disabled = false)。
しかし、[オプション] -> [詳細] -> [一般] -> [ブラウズ] -> [ハードウェアアクセラレーション機能を使用する (可能な場合)] を無効にした場合、あるいは、「(可能な場合)」ではない条件が加わったとき、Direct2D は無効化されます(gfx.direct2d.disabled = true)。
(補足)
[ハードウェアアクセラレーション機能を使用する (可能な場合)] の有効/無効は、gfx.direct2d.disabled だけでなく layers.acceleration.disabled など複数の設定項目が変更されます。

このご報告が非常に大きなヒントになりました。

つまり、Windows OS で標準的な 2D グラフィック機能である Direct2D が無効化されることで、Skia が使用されるようになり、その文脈で何らかの問題が発生するのだと仮定することができます。
一方、ハードウェアアクセラレーション機能だけに問題があるのだとすると、Firefox のバージョンによる動作結果の変化が合理的に説明できません。
そこで、最初に technologic89 さんから提示された条件、つまりアップデート前の Firefox 43.0.1 では問題は起こっておらず、52.0.1 へのアップデート以後に起こり始めたというお話から類推して、マルチプロセス(e10s)がらみの要素を加味して動作パターンの仮説を立て、実験してみました。

テスト環境は次の通りです。
 Windows 7 SP1 64bit
 通常リリース版 (32bit) の Firefox 52.0.2
 プリンタ(PDF 出力用)= CutePDF Writer + Ghostscript

結論を申し上げると、次のような結果になりました。(等幅フォントで最適化)
────┬──┬───
e10s\HW│有効│無効
────┼──┼───
 有効 │○ │× 
────┼──┼───
 無効 │○ │○ 
────┴──┴───
縦=マルチプロセス(e10s)の有効/無効
横=ハードウェアアクセラレーション(HW)の有効/無効
○=正常、×=文字化け発生

つまり、何らかの理由でハードウェアアクセラレーションが無効化されたとき、Direct2D に変わって Skia が使用されたとして、e10s が有効だとプリント結果の一部に文字化けが発生するようです。別の言い方をすると、Skia は e10s 有効下では正常に働かない場合がある、といえばいいでしょうか。

当方のテストでは、e10s が無効化されていれば、ハードウェアアクセラレーションの有効/無効に関係なく文字化けは発生しませんでした。
新規プロファイルで起動した直後は、一般的にアドオン(拡張機能)は入っていませんから、多くのユーザー環境では Firefox 52.0 系の初期状態で e10s が有効化されていると思います。その後、e10s が無効化されたとしても、文字化けが解消することはあっても新たに発生することは考えにくいでしょう。

従って、変化が生じる直接の契機は、e10s 有効下におけるハードウェアアクセラレーション機能の変化とそれにともなうグラフィックス機能の変更が、何らかの影響を及ぼしているのであろうと考えられます。
(ただし、<th> タグや <h*> タグで定義されたすべての文字列が、必ず文字化けするわけではなさそうです。この点はさらに検証する必要があるかもしれません。)

maji さんが書きました:
なんとなくですが
新規プロファイルで真っ新にしたプロファイルで最初は正常も
時間が経つにつれて(数回 Firefox起動を繰り返すと)事象発生する(プロファイルに何らかの変更が加わる)みたいな感じです。

technologic89 さん、beginner さん、maji さんのお三方に共通して再現できているお話なので、何かしらの要因はあるのでしょう。
ハードウェアアクセラレーション機能の有効/無効を反映させるには、Firefox の再起動が必要ですから、リフレッシュや新規プロファイルでの初回起動時は、初期値で有効化が維持されているのかもしれません。その後、Firefox の再起動をくり返すタイミングによって、ユーザー環境にある何らかの要因が無効化を誘発し、Firefox が内部的に使用する 2D グラフィックス機能を変更しているのかもしれません。
しかし、実際に何がハードウェアアクセラレーション機能の変化を誘発しているかは、今ある情報だけではわかりません。お三方のところで、直接の契機になっている要因は共通しているかもしれませんし、それぞれ異なるかもしれません。

【当面の回避策】
現状で考えられる対策としては、e10s を強制的に無効化することで、ハードウェアアクセラレーション機能がどう変化しても印刷結果に影響を与えないようにすることでしょうか。

about:config から、
browser.tabs.remote.autostart.2
の値(初期値= true 、e10s 有効)を、false に変更することで、e10s を無効化できます。
(補足)
開発版などから継続使用してきたプロファイルには、標準ではない設定項目が残っているかもしれませんが、リフレッシュや新規プロファイルを作ったのなら、その後はユーザーが意識的に追加・変更しない限り、e10s 関係の設定項目は標準状態だと思います。

以上は、当方がいまできる条件下で試した結果です。
いちおう理屈の上では説明がつきそうですが、他のユーザー環境ではどうなるかわかりません。興味のあるユーザーさんは、さらなる検証にご協力いただけるとありがたいです。

とりえあえず以上です。的外れな話になっていたらすみません。
重ねて、maji さんのテストとその中での発見に感謝いたします。


(おことわり)
当方の諸事情により、今まで以上に不定期な応答しかできなくなっています。
即答を期待されても、それに応えられない場面がかなり多くなりますことを、ご容赦ください。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2017年4月14日(金) 17:19 
連投で失礼します。

前便で書いたプリント結果の一部が文字化けする条件= e10s 有効、の下、ハードウェアアクセラレーション無効(Skia などの使用への切り替え)のもとで、
[オプション] -> [コンテンツ] -> [フォントと配色] -> [詳細設定] から開く [フォント] まわりの詳細設定画面で、[ウェブページが指定したフォントを優先する](*) のチェックを外し(無効化し)てプリントすると、当該カ所(**) での文字化けは起こりませんでした。

 (*) [ウェブページが指定したフォントを優先する] は初期状態で有効になっています。
 (**) 東京都公式ホームページの右上部にある検索欄の「検索」ボタンの文字、真ん中あたりの「お知らせ」、その右側の「新着情報(報道発表)」などのプリント結果で判断しています。(他にも、同ページ内で文字化けが起こる箇所はありますが...。)

ページ全体ではなく一部のテキストに対してのみ、テキストデータがプリンタードライバーに正しく引き渡されていないように思えたので、サイト側、ユーザー側のそれぞれで指定されているフォントまわりに何らかの要因がないかどうかを試しているなかで、この変化に行き当たりました。
しかし、今の時点で理屈はよくわかりません。

いちおう追加情報まで。

_________________
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2017年4月16日(日) 18:04 
オフライン

登録日時: 2013年5月19日(日) 13:46
記事: 121
偶然的通行人 さん、maji です。

偶然的通行人 さんが書きました:
以下、maji さんのテスト報告を拝見して気づいたことを、順を追って書かせていただきます。

maji さんが書きました:
about:config にて「 skia 」が値として指定されていた以下の二つの設定名

AzureCanvasBackend
AzureContentBackend

標準状態の Firefox 52.0.x (Windows 版) に、この2つの設定項目は存在しません。

gfx.canvas.azure.backends = direct2d1.1,skia,cairo
gfx.content.azure.backends = direct2d1.1,skia,cairo

の2つは存在し、上述ような初期値を持っていますが、これは直接影響していないように見えます。
maji さんがご提示になっている項目は、Skia が有効になった結果、生成されるのかもしれません。


偶然的通行人 さん、フォローありがとうございます。
あらためて自分の投稿を見直したところ記載誤りに気が付きました。

トラブルシューティング情報の「機能」の名前は

AzureCanvasBackend
AzureContentBackend

でしたが
about:config の中の設定名は
正しくは
ご指摘の通り

gfx.canvas.azure.backends
gfx.content.azure.backends

でした。

元の投稿の方もコメント付きで訂正しておきます。


では。



.

_________________
Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2017年4月16日(日) 20:57 
オフライン

登録日時: 2013年5月19日(日) 13:46
記事: 121
皆さん、maji です。

-----

Windows7(32bit) + Firefox(32bit)52.0.2 + 実際のプリンタ印字 でテスト
の環境にて

about:config の中の設定名

gfx.canvas.azure.backends
gfx.content.azure.backends

の両方の値を初期値(リセットした値)

direct2d1.1,skia,cairo

に戻し、
他に
・マルチプロセスウィンドウ→「 1/1 (既定で有効) 」
・ハードウェアアクセラレーション機能を使用する((可能な場合)→有効(チェック入り)
・ウェブページが指定したフォントを優先する→有効(規定値のまま)
となっていて、
かつ
トラブルシューティング情報の機能名

AzureCanvasBackend
AzureContentBackend

の値がそれぞれ両方とも「 skia 」となっている事を確認し
あらためて印字文字化け発生してる状況を再現させました。

-----

その上で
別投稿で 偶然的通行人 さんから別投稿に記載あった通り

・ウェブページが指定したフォントを優先する:規定値は有効

の設定を外し(チェックを外し)
印字テストしたところ私の手元でも 正常印刷 を確認出来ました。

とゆ事で
何故にこうなるのかの因果関係が自分的には全く整理出来ずスッキリしないのですが
文字化け回避策としては about:config をイジるよりは
オプションの「ウェブページが指定したフォントを優先する」のチェックを ON/OFF する方が簡単なので
元投稿の
technologic89
さんも試されてはどうでしょうか。

とゆ事で
私の方のテストは一旦休止とします。


では。



.

_________________
Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2017年4月22日(土) 20:03 
オフライン

登録日時: 2013年5月19日(日) 13:46
記事: 121
technologic89 さん&皆さん、週末バッチの maji です。

Firefox が 53.0 にアップしたのでテストしてみました。


----------


Windows7(32bit) + Firefox(32bit)52.0.2 + 実際のプリンタ印字 でテスト
の環境にて

about:config の中の設定名

gfx.canvas.azure.backends
gfx.content.azure.backends

の両方の値を初期値(リセットした値)

direct2d1.1,skia,cairo

に戻し、
他に
・マルチプロセスウィンドウ→「 1/1 (既定で有効) 」
・ハードウェアアクセラレーション機能を使用する((可能な場合)→有効(チェック入り)
・ウェブページが指定したフォントを優先する→有効(規定値のまま)
となっていて、
かつ
トラブルシューティング情報の機能名

AzureCanvasBackend
AzureContentBackend

の値がそれぞれ両方とも「 skia 」となっている事を確認し
☆印字文字化け発生 してる状況を再現させました。

その状態で Firefox を 52.0.2 から 53.0 にバージョンアップしました。
すると
★文字化け無しの正常印刷 となりました。


私には今回の文字化け現象発生のロジック説明出来ませんが
53.0 のリリースノートの中に skia 絡みの記載もありますし
推測ですが 53.0 での改修の中の何かにより
technologic89 さんがお困りの文字化けも解消となったのではと勝手に思っています。


-----


technologic89 さんへ。
Firfoxを 53.0 へバージョンアップし事象再現確認してみてください。


では。



.

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 20 件の記事 ]  ページ移動 1つ前へ  1, 2

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: Exabot [Bot] & ゲスト[2人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean