Chienomi

Blink/Mozillaブラウザの表示乱れと、BlinkブラウザのSEGVについて

vivaldi

  • TOP
  • Old Archives
  • Blink/Mozillaブラウザの表示乱れと、BlinkブラウザのSEGVについて

LinuxにおけるBlink系ブラウザ(Google Chrome, Chromium, Opera, Vivaldi)においてページクラッシュする(場合によっては全ページがクラッシュする)という問題に長く悩まされていた。 SEGVが発生しており、エラーメッセージとしては:

../../third_party/tcmalloc/chromium/src/free_list.h:118] Memory corruption detected.

というものだ。

  • 発生がランダムである(ページによって発生しやすさには偏りがある)
  • 特定ユーザーでしか発生しない
  • 新規ユーザーを作っても発生するが、2番目のユーザーだけは決して発生しない
  • 以前にも同様の事象が発生したことがある
  • 再インストールやブラウザのバージョンによっても解決しない
  • プロファイルやソフトウェアによらず発生する

といった問題かが見られ、解決方法が見えず長く苦しむこととなった。

だが、ようやく解決が見られた。

この問題のほかに、ブラウザでのフォント表示の乱れという問題があった。ビックマップフォントと思わしき汚いフォントが表示されたり、フォントが破断しまともに読めないといった状態が発生していた。 これは拡大率を変更することで改善したりするが、別の箇所でまた発生したりもする。

これについて検証していると、フォント指定が次のようなものの場合に発生するということがわかった。

font-family: Meiryo, メイリオ, ArialMT, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Osaka, Verdana, "MS Pゴシック";

これはねとらぼのものだ。autoblogは以下

font-family: “ヒラギノ角ゴ Pro W3″,”Hiragino Kaku Gothic Pro”,”Osaka”,”メイリオ”,”Meiryo”,”MS Pゴシック”,”MS PGothic”,sans-serif !important;

アスキーは以下

font: 13px/1.231 'Hiragino Kaku Gothic ProN',Meiryo,"メイリオ",'MS PGothic',sans-serif;

これらのスタイルを削除すると正常に表示される。 このPCはMSフォントファミリーと、Osakaフォントのクローンが認識されている。そのため、ブラウザ設定によらずこのどちらかを使おうとするようなのだが、するとフォントが異常表示されるのだ。 これは、どちらか片方を削除しても解決しない。

フォント自体を削除しなくても、これらのフォントを置き換えれば解決する。

<match target="pattern">
  <test qual="any" name="family">
    <string>MS PGothic</string>
  </test>
  <edit name="family" mode="assign" binding="same">
    <string>Ume P Gothic S5</string>
  </edit>
</match>
<match target="pattern">
  <test qual="any" name="family">
    <string>MS Pゴシック</string>
  </test>
  <edit name="family" mode="assign" binding="same">
    <string>Ume P Gothic S5</string>
  </edit>
</match>
<match target="pattern">
  <test qual="any" name="family">
    <string>Osaka</string>
  </test>
  <edit name="family" mode="assign" binding="same">
    <string>Ume P Gothic S5</string>
  </edit>
</match>

単一のtest内にstringを複数置けなくなったけれど、もうちょっとスマートな書き方はできないのだろうか?

また、この問題に対処してから、ブラウザが落ちることはなくなった。 確証はないが、SEGV(Memory corruption)の原因がフォントにある、というのはちょっと想像がつかなかったし、しかも信頼できるMSフォントファミリーやOsakaフォントというのは全く想像が及ばなかった。

なんでそうなるのか、ということはわからないが、とにかく原因がわかってほっとしている。 わうやくまともなブラウジングができるようになって本当によかった。