2009-12-08

某掲示板で書かれていたので、一言

これ3.6 beta 5で直してある。たぶん、IMEで入力している最中にキャレット表示しようとして落ちる。キャレット表示の際に選択文字列(IMEの変換文字列だったような)を取りに行くんだけど、それが取れなくなるから。多分何かのページ推移が重なってる(or 変換文字列がキャンセルされたとか)んじゃないかなと思うけど、再現する方法わからなかった。

849 名無しさん@お腹いっぱい。 [sage] 2009/12/07(月) 18:22:13  ID:dweTbE/00 Be:
上の方じゃ荒らしの標的にされてるし
全然問題のない人にとってこの話題がうざいのはわかる

同じ症状で悩んでる人の参考となるように
自分の例を晒してみただけなんで見逃してくださいな

>>838
送ってるよー
新プロファイルにしてからのクラッシュシグネチャは全部
nsQueryContentEventHandler::GenerateFlatTextContent(nsIRange*, nsString&)

再現性がないからバグレポート送れないのが辛い

>>842
自分の場合3.0では同じ拡張でも安定していたのが
3.5になってから頻繁に落ちるようになった

>>830の他、プラグインはMozillaデフォルト、
Flash 10.0 r32とJava SE 6 U17だけであとは無効にしてる 

3.5で起きる原因は、そこのコード3.5からだから。3.5ツリーもapprove request取ろうかな、やっぱり。某先生も引っかかってるらしいし。

ちなみに、これはcrashkillの流れで直したもののひとつ。コメントから見る限りCJKな人だらけっぽいから、IMEがらみ(IME使わないと通らないような場所)の話みたいだけどね。

だから、再現方法がわからなくても、クラッシュネタの場合は、クラッシュレポーターで送ってください。TOP100に入るようなものであれば、見てるから。

2009-12-07

コンパイラ(VS2005のx64)マジ死んでくれ

手元でビルドした、Thunderbird 3.0 x64が終了時に自分自身を起動してくれるという倒れそうなバグがなんかあって、調べてみたところ、

0:000> u 00000001`3f508afd
thunderbird!XRE_main+0x190d [c:\workspace\mozilla-hg\comm-1.9.1\mozilla\toolkit\xre\nsapprunner.cpp @ 3369]:
00000001`3f508afd ff5028          call    qword ptr [rax+28h]
00000001`3f508b00 39ac2498000000  cmp     dword ptr [rsp+98h],ebp ; [rsp + 0x98] -> needRestart, @ebp -> 1
00000001`3f508b07 0f8491010000    je      thunderbird!XRE_main+0x1aae (00000001`3f508c9e)
00000001`3f508b0d 85f6            test    esi,esi
00000001`3f508b0f 7414            je      thunderbird!XRE_main+0x1935 (00000001`3f508b25)
00000001`3f508b11 488b0dd0b51301  mov     rcx,qword ptr [thunderbird!gSavedVars+0x8 (00000001`406440e8)]
00000001`3f508b18 4885c9          test    rcx,rcx
00000001`3f508b1b 743b            je      thunderbird!XRE_main+0x1968 (00000001`3f508b58)
00000001`3f508b1d ff15e553cc00    call    qword ptr [thunderbird!_imp_PR_SetEnv (00000001`401cdf08)]
00000001`3f508b23 eb33            jmp     thunderbird!XRE_main+0x1968 (00000001`3f508b58)
00000001`3f508b25 488d0d14a1cc00  lea     rcx,[thunderbird!kProfileManagerURL+0xd40 (00000001`401d2c40)]
00000001`3f508b2c ff15ce53cc00    call    qword ptr [thunderbird!_imp_PR_GetEnv (00000001`401cdf00)]
00000001`3f508b32 4885c0          test    rax,rax
00000001`3f508b35 7414            je      thunderbird!XRE_main+0x195b (00000001`3f508b4b)
00000001`3f508b37 403828          cmp     byte ptr [rax],bpl
00000001`3f508b3a 740f            je      thunderbird!XRE_main+0x195b (00000001`3f508b4b)

0:000> r @ebp
ebp=1

0:000> x
00000000`002ffc40 argc = 0
00000000`002ffc48 argv = 0x00000000`00000001
00000000`002ffc50 aAppData = 0x00000000`01f232b0
00000000`002ff8e0 localIniFile = class nsCOMPtr
00000000`002ff9a0 appData = class ScopedAppData
00000000`002ff8d0 rv = 0
00000000`002ff8d8 iniFile = class nsCOMPtr
00000000`002ff968 parser = class nsINIParser_internal
00000000`002ff8f8 overrideLF = class nsCOMPtr
00000000`002ff910 greDir = class nsCOMPtr
00000000`002ff8f8 lf = class nsCOMPtr
00000000`002ff950 osABI = class nsDependentCString
00000000`002ff938 needsRestart = 0
 :
 :

というか、@ebpが0のつもりで生成してる気がするんだけど、1だし。

Visual Studio 2005のx64コンパイラってOxとか02とかの最適化オプション使うと不思議なコードをたくさん生成してくれるんだけど、2005のx64コンパイラ使う気失せた。2008も0xだと変なコード吐くんだよな。。。

2009-12-02

text-overflow

画像を投稿してみるテスト。

なんか、Gecko以外実装されてんだよね。っていうか、どのブラウザもellipsisとclip以外の場合は実装されてないみたいだけど、やっつけな中途半端好きじゃないから、たぶんstringの時も動くようにするかも。

2009-12-01

GPU!GPU!

MicrosoftのIEで役職的に一番偉い人がIE9ではDirect2Dでグリグリ!って言って宣伝したのに、FirefoxでもDirect2Dの話がでちゃって、インパクトなさすぎな状態なんですが、cairoとかpixmanの話を触れておく。

FirefoxでDirect2Dを使うってのは、cairoのバックエンドにDirect2Dバックエンドを追加するってことなんだけど、cairoの現在の開発版にはそれ以外にも、OpenVGとOpenGLとSkiaのバックエンドがすでに存在します。OpenGL版のパフォーマンスについては、このメールスレッドにいろいろ書いてあります。グラフィック周りやってるJeffも食いついてるので、将来的には、UNIX版においてのOpenGLサポートってのは考えるんじゃないのってところです。

また、pixmanの開発版には、ARM NEONのサポート (ARMのCortext-A8からのSIMD。x86的にはSSE2のようなもの) がNokiaによってリライトされてて (N900って、TIのOMAP3だから、NEONサポートしてるんだよね)、結構パフォーマンスアップしてたりします。パフォーマンスデータはこのメールスレッド参照のこと。

Firefox 3.6だと間に合わないけど、3.7だとこれらのいくつかは考慮されるんじゃないかな?なんてね。

2009-11-27

Email Security Expo & Conference 2009で話してきました

先日、Email Security Expo & Conference 2009で、Thunderbird 3の話をしてきました。資料はMozilla Japanのサイトで公開する予定です。(公開できない場合は、大人の事情ということでご理解ください)

その際に、いくつか質問を受けたことの補足しておきます。

ThunderbirdやFirefoxの自動更新は、Mozillaのサイトを参照してますが、これを企業側のサーバーに変更することは可能です。アップデート用のサーバーを構築する方法については、以下のドキュメントが参考になるかと思います。

https://developer.mozilla.org/ja/Setting_up_an_update_server

また、集中管理の方法については、https://developer.mozilla.org/ja/MCD%2c_Mission_Control_Desktop_AKA_AutoConfigを見ると参考になると思います。

企業系に関するいろんな機能ってのは、FirefoxなりThunderbirdなり、実装されているのだけど、これらを集めたいい情報源がないのは、これからの課題にしておきます。

追記。資料張り付けておきます。