2013年4月19日金曜日
Firefox21以降の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を選んだ。
2013年4月3日水曜日
2013年3月31日日曜日
Win8 SDK化進行中。
理由は使っているSDKが混在しているのでは、気分が悪いからだ。
2013年3月21日木曜日
SeaMonkeyで上手くいかないというのは勘違いだった
というわけで、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のビルドができない件とその対策
その原因は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);
2013年3月12日火曜日
BlueGriffon trunkについて
なので、moz.buildシステムがβに降りてくるまでビルドを中止することにした。
2013年3月11日月曜日
2013年3月10日日曜日
2013年3月8日金曜日
jQuery UIを使ったときに対処すべきことメモ
2.Javascriptをoffにしたときの表示の乱れに対処すること。
3.jQueryのソースはあらかじめダウンロードしておき、gzip圧縮しておくこと。
なお、gzip圧縮をする場合、
7z a -tgzip -mx=9 -mpass=15 -mfb=258 [ファイル名].gz [ファイル名]
とするのが現在のところ最善のようだ。
自分用メモ Javascript Off対策
Javascriptをoffにした状態ではCSSを使って乱れる表示を消し、onにしたときには、そのCSSが読み込まれないようにJavascriptで制御する。
- OFFにしたときに乱れる要素を非表示にする外部CSSを作成する。
- <link rel="stylesheet" id="noscript" href="./noscript.css" /> というようにid付きで読み込む。
- <script type="text/javascript" src="./removenoscript.js"></script>というようにこの外部スクリプトを読み込む。
- <noscript>タグを使って、Javascriptをonにして欲しい旨の表示をする。
2013年3月5日火曜日
PNGの再圧縮等
2.7zipを使ってgzip圧縮しているファイルは全てサイズを小さくした。
3.CSS Validatorのために、index.htmlとindex.cssだけは非圧縮なファイルも置くことにした。
これで主なブラウザを使う限り通信量を削減することができているはず。
2013年3月4日月曜日
サイトのSVGが表示されない場合の設定
AddType image/svg+xml .svg
AddType image/svg+xml .svgz
なお、この動作はGecko側が正しいと思う。
ただ、text/xmlとなっている場合でも、SVGのURLを直接指定すると描画されるが、これは正しい動作なのだろうか?これは描画されない方が筋が通っているのではなかろうか。
サイトのgzip圧縮設定
.htaccessの記載
RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME} !\.gz$
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz
AddEncoding x-gzip .gz
<files *.html.gz>
AddType text/html .gz
</files>
<files *.js.gz>
AddType text/javascript .gz
</files>
<files *.css.gz>
AddType text/css .gz
</files>
<files *.txt.gz>
AddType text/plain .gz
</files>
<files *.svg.gz>
AddType image/svg+xml .gz
</files>
<files *.ico.gz>
AddType image/x-icon .gz
</files>
これがgzip圧縮するための設定。gzip圧縮に対応しているアクセスでは、gzという拡張子の圧縮済みファイルを送信し、そうでなければ素のファイルを送信する。
この後は、html,js,css,txt,svgをgzip圧縮して、gzという拡張子にして設置するだけ。
mod_gzipやmod_deflateを使った方法でも良いのだけど、こちらならバージョンが1.3.*でも2.*でもどちらでも動作するし、圧縮によってサーバに負荷をかけることもない。容量に問題がなければこれが最善の手段だと思う。
というわけで、上記の設定をしたサイトに移転した。
2013年2月9日土曜日
WebCL対応
pref("webcl.opencllib", "OpenCL.dll");
pref("webcl.allowed", 1);
とすればOpenCLをインストールしてあるWindows PCなら動作するはず。
2013年1月26日土曜日
2013年1月22日火曜日
BlueGriffon 1.6が出た
本家BlueGriffonと違う点は、Win64版があることとWebPに対応していることだ。
WebPに対応したWYSIWYGなHTMLエディタはないようなので、AndroidのChrome向けサイトとか作ってる人におすすめかも?
なお、本家FirefoxはWebPに対応する予定が全くないので、敵に塩を送る状態ではある。しかも、全然困っていない敵に。
2013年1月18日金曜日
IE対応
IE6: 使ってる奴は死ねばいいのに。
IE7: 我慢の限界
IE8: IE7と大して変わらん。
IE9: SVG対応のおかげで何とかなった。
IE10: やっとまともなブラウザになった。
僕はFirefoxが一番良いブラウザだと思うけど、IEを使うのならぜひ10にしてほしい。
pdfjsのパッチを投入した
もっともこのパッチが投入されたFirefoxでなくても、開発バージョンのアドオンをインストールすれば同じことだったりする。
文字化けがなくなったことで、実用度は大分増したけれども、これはとりあえず読むために使う以上のものではないな。表示が乱れているところもあるので。
2013年1月14日月曜日
transform: rotate
CSSでtranform: rotateZと書いていたのだけど、Google ChromeとOperaでは実行してくれないので、結局インラインSVGに書き換えた。
色々自サイトを書き換えてみた結果次のことが分かった。
- linear-gradient
- transform
について、Firefox,IE9,IE10,Opera,Chromeのいずれでも共通のソースで表現するためには、CSSではなくSVGで記述した方が良い。
QupZillaとSVG
2013年1月13日日曜日
SVGを背景画像に使う場合の注意点
現在の背景画像のようにSVGを背景画像にする場合には、svgタグにwidthとheightを指定する必要がある。Scalable Vector Graphicsなのにサイズ指定が必須とは残念至極だが、Google ChromeというかWebkitのせいなので仕方がない。Chronium側でもこの問題は一年前から認識されているけど、今のところ修正されていない。
なお、Firefox,IE9以降,Operaでは(当然ながら)この指定の必要はない。
ところで、別の回避策が書いてあるページを見つけたが、この方法はWebKitでは上手く行くが、Operaが期待通りに描画してくれないので使えない。
結局WebKitの修正が入るまでは上のようにサイズの指定が必要だ。
2013年1月3日木曜日
theadとthとグラデーション
グラデーションについて
theadでの左から右へのグラデーションをIEとChromeは実現できないようなので、結局上下のグラデーションにした。
ブラウザ名 | 状況 |
---|---|
Firefox | これが基準 |
Opera | 問題なし |
Google Chrome | <thead>に適応するのでは正しく表示されない。<th>に適応することで正しく表示される。 |
IE9,IE10 | Google Chromeと同様。 |
IE対応
まず、IE7及びそれ以前のバージョンへの対応は諦めた。そこで、IE8(Windows XPでの最上位バージョン)以降で曲がりなりにも閲覧可能な状況にすることとした。
IE10 | 上記のグラデーション対応以外は問題がなかった。 |
IE9 | text-shadowがないので、別CSSで対応した。 |
IE8 | text-shadowもなければ、SVGにも対応していないので、さらなる別CSSで対応した。 |
なお、IE8には実現不可能な事柄があるので、その点についても諦めた。思うにWindows XPでは特に必要がある場合を除いてIE以外のブラウザを使うべきだ。
2013年1月1日火曜日
自サイト改造
あけましておめでとうございます。
自サイトについて、-webkit-linear-gradientを全廃して、なおかつGoogle Chromeでもそれなりに表示されるように対応してみた。CSS Validatorにかけても警告を出さないためだ。
とりあえず、linear-gradientを実現する場合、CSSではなくSVGで行った方が良さそうだ。
なお、text-shadowのないIE9に対して、SVGで何とかならないかと思ったが、どうも無理なようだ。