Firefox 21ではディスプレイドライバがDirect2Dを使うことのできないもの場合(Firefoxがブロックする場合も含む)には、PDFJSを使う場合に対応が必要となる。
1.DirectWriteをfalseにする。
user_pref("gfx.font_rendering.directwrite.enabled", false);
ただし、こうすると他のページのフォントの表示が悪くなる。
2. gfx.canvas.azure.backendsからskiaを除く。
user_pref("gfx.canvas.azure.backends", "direct2d,cairo");
ただし、こうするとcairoを使うことになるので動作が重くなる。
3.無理矢理Direct2Dを使う。(ブロックされている場合のみ)
user_pref("gfx.direct2d.force-enabled", true);
ただし、もちろん動作の安全性は保障できない。
なお僕は3を選んだ。
Unofficial Mozillaメモ
2013年4月19日金曜日
2013年4月3日水曜日
2013年3月31日日曜日
Win8 SDK化進行中。
パッチを修正して、Win8 SDKを使っている場合にはWin8 SDKだけを使うように、そうでない場合にはDirectX SDKを使うように修正した上で、全てのパッケージをビルドしなおしている。
理由は使っているSDKが混在しているのでは、気分が悪いからだ。
理由は使っているSDKが混在しているのでは、気分が悪いからだ。
2013年3月21日木曜日
SeaMonkeyで上手くいかないというのは勘違いだった
angleprojectのソースで、r1984以降では仕様変更があり動かなくなっていただけだった。
というわけで、gfx_angle.diffに含まれるangleを動作する最新trunkのr1835に戻し、Firefox 20.0β6はWin8 SDKだけでビルドした。この場合、Win8 SDKに含まれるD3DCompiler_*.dllをパッケージに同梱しなければならないので、そのようにも修正した。
なお、Win8 SDKに変更したところで、特段に動作が軽くなったりするわけではない。ただ、今後Win7 SDKが更新されていくことはないだろうし、Win8 SDKにはなにがしらの更新が行われるかもしれない。だから、Win8 SDKを使うようにすることが正しいと思う。
というわけで、gfx_angle.diffに含まれるangleを動作する最新trunkのr1835に戻し、Firefox 20.0β6はWin8 SDKだけでビルドした。この場合、Win8 SDKに含まれるD3DCompiler_*.dllをパッケージに同梱しなければならないので、そのようにも修正した。
なお、Win8 SDKに変更したところで、特段に動作が軽くなったりするわけではない。ただ、今後Win7 SDKが更新されていくことはないだろうし、Win8 SDKにはなにがしらの更新が行われるかもしれない。だから、Win8 SDKを使うようにすることが正しいと思う。
2013年3月18日月曜日
2013年3月16日土曜日
Win8 SDKだけではFirefoxのビルドができない件とその対策
最新のmozilla-buildを使うとWindows SDK for Windows 8を認識して、そちらを使うようになる。このバージョンからはWindows SDKとDirect Xが統合されたので、別途DirectX SDKは不要となるはずなのだが、Firefoxのビルドに関しては訳あって別途Direct X SDK(June 2010)が必要とされる。
その原因はfirefoxに含まれるgfx/angleが廃止予定のd3dx9を使っているからだ。これは困る。
ところで、最新のangleprojectのソースではd3dx9を使用していない。 これを利用して、FirefoxをDirectX SDK(June 2010)なしでビルドしてみようと試してみた。
そのために必要な修正が必要となるソースは次の通り。詳しい修正内容はパッチを見てほしい。
しかし、生来の捻くれ者の僕はDirectX SDKをインストールしないという方向でビルドしていこうと思う。
その原因はfirefoxに含まれるgfx/angleが廃止予定のd3dx9を使っているからだ。これは困る。
ところで、最新のangleprojectのソースではd3dx9を使用していない。 これを利用して、FirefoxをDirectX SDK(June 2010)なしでビルドしてみようと試してみた。
そのために必要な修正が必要となるソースは次の通り。詳しい修正内容はパッチを見てほしい。
- browser/installer/package-manifest.in DirectX関連dllをインストーラから外す。
- configure.in Windows SDKがインストール済みのときはDirectX SDKの検索をしない
- content/canvas/src/WebGLContextGL.cpp 最新のangleに対応するための修正
- content/canvas/src/WebGLProgram.h 同上
- content/canvas/src/WebGLShader.h 同上
- gfx/angle以下 angleを最新にする。
- gfx/gl/GLLibraryEGL.cpp d3dx9_*.dllの呼び込みを止める
- layout/media/Makefile.in Windows SDKがインストール済みのときは、リンクするライブラリディレクトリにDirectX SDKのディレクトリを含めないようにする。
- toolkit/library/Makefile.in 同上
しかし、生来の捻くれ者の僕はDirectX SDKをインストールしないという方向でビルドしていこうと思う。
2013年3月14日木曜日
現在のuser.js
コピペして使っても構いませんが、自己責任でどうぞ。
pdfjsでフォントが埋め込まれていないpdfを表示するときには、 メイリオを使う方が良い
ということを教えてもらったので、フォントの指定を追加した。ありがたい。
user_pref("browser.cache.memory.capacity", 65536);
user_pref("browser.link.open_newwindow", 3);
user_pref("browser.link.open_newwindow.override.external", 3);
user_pref("browser.newtab.url", "about:blank");
user_pref("browser.newtabpage.enabled", false);
user_pref("browser.search.openintab", true);
user_pref("browser.tabs.animate", false);
user_pref("browser.tabs.closeButtons", 1);
user_pref("browser.tabs.closeWindowWithLastTab", false);
user_pref("browser.tabs.showSingleWindowModePrefs", true);
user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.tabs.warnOnCloseOtherTabs", false);
user_pref("browser.xul.error_pages.enabled", true);
user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 3000000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 1000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 1000);
user_pref("font.name.serif.ja", "メイリオ");
user_pref("gfx.color_management.enablev4", true);
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 30);
user_pref("gfx.font_rendering.cleartype_params.pixel_structure", 1);
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
user_pref("gfx.font_rendering.directwrite.enabled", true);
user_pref("network.http.max-connections", 24);
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-proxy", 4);
user_pref("network.http.max-persistent-connections-per-server", 4);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.firstrequest", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.cookie.cookieBehavior", 2);
user_pref("network.dns.disableIPv6", true);
user_pref("network.prefetch-next", false);
user_pref("nglayout.initialpaint.delay", 1);
user_pref("plugin.expose_full_path", true);
user_pref("signed.applets.codebase_principal_support", true);
user_pref("ui.submenuDelay", 0);
pdfjsでフォントが埋め込まれていないpdfを表示するときには、 メイリオを使う方が良い
ということを教えてもらったので、フォントの指定を追加した。ありがたい。
user_pref("browser.cache.memory.capacity", 65536);
user_pref("browser.link.open_newwindow", 3);
user_pref("browser.link.open_newwindow.override.external", 3);
user_pref("browser.newtab.url", "about:blank");
user_pref("browser.newtabpage.enabled", false);
user_pref("browser.search.openintab", true);
user_pref("browser.tabs.animate", false);
user_pref("browser.tabs.closeButtons", 1);
user_pref("browser.tabs.closeWindowWithLastTab", false);
user_pref("browser.tabs.showSingleWindowModePrefs", true);
user_pref("browser.tabs.warnOnClose", false);
user_pref("browser.tabs.warnOnCloseOtherTabs", false);
user_pref("browser.xul.error_pages.enabled", true);
user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 3000000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 1000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 1000);
user_pref("font.name.serif.ja", "メイリオ");
user_pref("gfx.color_management.enablev4", true);
user_pref("gfx.font_rendering.cleartype_params.enhanced_contrast", 100);
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 30);
user_pref("gfx.font_rendering.cleartype_params.pixel_structure", 1);
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
user_pref("gfx.font_rendering.directwrite.enabled", true);
user_pref("network.http.max-connections", 24);
user_pref("network.http.max-connections-per-server", 8);
user_pref("network.http.max-persistent-connections-per-proxy", 4);
user_pref("network.http.max-persistent-connections-per-server", 4);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.firstrequest", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.cookie.cookieBehavior", 2);
user_pref("network.dns.disableIPv6", true);
user_pref("network.prefetch-next", false);
user_pref("nglayout.initialpaint.delay", 1);
user_pref("plugin.expose_full_path", true);
user_pref("signed.applets.codebase_principal_support", true);
user_pref("ui.submenuDelay", 0);
登録:
投稿 (Atom)