ウェブブラウザ開発ブログ
 
ウェブブラウザ開発ブログ

Twitter

かなり遅いかもしれませんが、Twitterはじめました。y_kurimotoは使用されていたので、kurimoto_yで登録。 @kurimoto_y 更新内容をメモ代わりに書き込むつもりです。
この投稿を読む

カーソル型マウスジェスチャ2

更新履歴 download カーソル型マウスジェスチャ機能の追加は、とりあえず終えたつもりです。「違う方向になったとき、ジェスチャを検出する(&G)」は分かりにくいので、実際にチェックありなしで動かすと違いが分かると思います。チェックが無いときは、ぶら。のような動作、チェックがあるとunDonutのような動作です。 マルチプロセスが難しいと分かったのがやっぱりショックで(IEには無い機能を自前で実装?)、、しばらくは大変じゃない更新になると思います。
この投稿を読む

カーソル型マウスジェスチャ

更新履歴 download カーソル型マウスジェスチャを追加していますが、まだUIから設定できる項目は少なく、増やす予定です。カーソル型マウスジェスチャは、オプション画面で「カーソル型マウスジェスチャ - mouseGestureCursor」を選択することで使用できます。 ユーザエージェントでiPadを指定したとき、iPad用のtwitterが見れたのですが、今は見れないようです。
この投稿を読む

マルチプロセスのセッション継続は難しい

マルチプロセスのセッション継続は、かなり手間取ることが分かりました。プロセス毎にセッションのcookieを共有することになるのですが、cookieはドメインで設定されることがあり、これを取得するのが難しいのです。 応答で Set-Cookie: HSID=XXXXXXXXXXXX;Domain=.google.co.jp;Path=/;HttpOnly というのがあると、ページのURLとcookieの設定ドメインが一致しているとは限らないので、どのようなドメインでcookieが設定されているのかは、HTTPヘッダを取得するしかないようです。 IEコンポーネントからHTTPヘッダの取得はできないようで、方法として ・HttpQueryInfo APIをhookする -> HttpQueryInfoが呼び出されない場合は× ・RAWソケットを使用する -> HTTPSが厳しい ・他の方法 となりますが、そう簡単ではなく、そこまでしなければならないのかもあるので、しばらく対応は保留します。TheWorldでのマルチプロセスセッション継続がどこまでやっているのかは、なぞです。 ドメイン単位でのcookie設定は、InternetSetCookieEx(“http://google.com/",....)のように、URLをドメインで指定すると出来ました。 IE6の「新しいウインドウを開く」の場合、プロセスが新規にできるのではないので、プロセスでのcookie継続はそもそもできないはずです。IE8からはSession MergingというIE内部機能?で、セッション共有しているようです。IE9のベータが出るのが早そうなので、可能性は低そうですが、そのような機能が使えるようになることに期待したいです。
この投稿を読む

検索パネルでGoogle検索できない2

検索パネルでGoogle検索できない - 不定期日記で、またサイドバーでのGoogle検索ができなくなっています。どうやら、もうhttp://www.google.co.jp/search?output=ieは使用できないようです。しばらく様子を見て、使用できるようになればいいのですが、、
この投稿を読む

jQueryのコード

jQueryのコードで、 438: var toplevel = false; ・・・ 444: if ( document.documentElement.doScroll && toplevel ) { で 444: if ( toplevel && document.documentElement.doScroll ) { のほうがほんの少し効率がいいと思いました。他にも同じような部分がありそうで、判定順序を変えるだけの影響が少なそうな、お手軽修正ではないでしょうか。
この投稿を読む

クラッシュ詳細情報の表示

更新履歴 download クラッシュ詳細情報を表示できるようになってます。クラッシュ情報はTMPフォルダに作成し、削除機能が無いので、次のバージョンで自動で古い情報ファイルを削除するように、クラッシュページで削除できるようにします。 今のところ、情報ファイルやdumpファイルを送信する機能は無いので、作者宛にメールするくらいしかありません。情報ファイルはunicodeのテキストなのでどのような内容か開けば分かりますが、dumpファイルはメモリに個人情報が含まれているかもしれないので、気になる方は送らない方がいいです。ただdumpファイルがあるとクラッシュの詳細が情報ファイルより分かります。 クラッシュページで、アプリでjson形式でページに情報を渡し、ページはeval()で情報を取り出す、という方式、ページに情報を渡すためにidispatch実装は結構面倒なので初めからこのように作ればよかったと、、jsonでの書き込み実装=ページにも渡せるとなるので。 マルチプロセスのセッション継続は、cookieを送れば継続できることがわかりましたが、TheWorldの更新内容でcookieに関する修正が多いので、少し難しいと思います。gmailはリダイレクトやhttpsも絡み複雑のようです。 長時間使っていて落ちたときタブが失われることがあるので、一定間隔でタブのスナップショットを取る機能を付けようと思います。
この投稿を読む

ReleaseバージョンでのCrash箇所の特定方法

Releaseバージョンでcrashしたときの場所の特定方法です。minidumpファイルか、最悪落ちた場所のアドレス情報があることが条件です。画像はわざとcrashさせています。 プロジェクトでマップファイルを作成する設定にしておく → プロジェクトのリンカ、デバッグ、マップファイルの作成ではいとする プロジェクトでcodファイルを作成する設定にしておく → プロジェクトのC/C++、出力ファイル、アセンブリの出力で、アセンブリ コード、コンピュータ語コード、ソース コード(/FAcs)を選択 mapファイルから落ちた関数を特定 画像だと0x004180ff が落ちた箇所で、mapファイルで、落ちた箇所の範囲の関数を調べる。下のmapファイルの内容では、MsgLoop関数内と分かる。 0001:000170bd ?MsgLoop省略 004180bd f MainFrm.obj 0001:000171dd ?省略 004181dd f i MainFrm.obj 落ちたオフセットを求める 〜 0x004180ffと0x004180bdからオフセットは0x42となる codファイルでMsgLoopのオフセット0x42を調べる 下のcodファイルで0x42からソースコードの行が特定できる。 ; 5971 : *(int*)(0) = 100; 00042 c7 05 00 00 00     00 64 00 00 00 mov DWORD PTR ds:0, 100 ; 00000064H Anciaでは落ちたときのGetExceptionInformation()情報とモジュール一覧、minidumpファイルを出力する予定です。minidumpファイルがあれば、スタックトレースが出るので、かなり状況が分かるはずです。
この投稿を読む
ページ上部に戻る