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

2009年

ショートカットキー設定

更新履歴 download やっとショートカットキー設定が行えるようになりました。フォームのinput textをHot Key Controlのように動作させています。日本語入力ONだと入力できない不具合を見つけてしまいましたが、次に修正します。 一度マルチスレッドにしようとしてスクロールがおかしかったので止めましたが、マルチプロセスについて少し調べてみようと思います。マルチプロセスでも結局はプロセスだけでは処理は動かず、プロセスの中のメインスレッドが動くので、マルチスレッド、マルチプロセスでの違いはデータのやり取りで、やり取りがどうにかなれば、、というところでしょうか。
この投稿を読む

フォームの自動生成

ショートカットキーのオプション設定で、フォームでのselect部分で手こずっています。ショートカットキーすべてでselectのoptionアイテムを追加すると、かなり時間がかかるので、onfocusなどのタイミングでoptionアイテムを追加するようにしたいのですが、追加してみるとdropdownが閉じてしまいます。これは困った。。 画像はIE6で動かしているのでpngが透過ではないです。
この投稿を読む

サムネイルが遅い

新規タブ表示で、今日表示したページもサムネイルを表示するようにしたんですが、新規タブを開くとあまりに遅くなってしまったので、0.5.5bとして、公開するのは止めました。サムネイルはすべて表示する必要はなく、画面に出ている分だけ表示すればいいので、そのいい方法はないのか、、表示されるときのイベントもなさそうだし、ページのよっては表示されてから画像が出るものがあるので、スクロールイベント契機に要素の位置を比較して、・・・かな サムネイルは、今の動きではフレームが含まれているページを取得してません。
この投稿を読む

pure virtual function call対応

更新履歴 download 下がIEツールバーを破棄しているコードですが、Release()部分をコメントアウトするとpure〜〜が発生しなくなります。googleツールバーはAddRef()、Release()でカウントがinc/decとなるのでちゃんとした参照カウントを返しています。さらに下のRelease()後の値は0だったので、最後のRelease()だと分かります。 IDeskBand* pBand = (IDeskBand*)rbi.lParam; if(pBand) { pBand->CloseDW(0); if(S_OK == pBand->QueryInterface(__uuidof(pObjectWithSite), (void**)&pObjectWithSite)) { pObjectWithSite->SetSite(NULL); pObjectWithSite->Release(); } pBand->Release(); ← ここをコメントアウトすると、発生しなくなる } そこで、Release()するタイミングをどうにかする対応としました。 よく考えると、 ・IE6は1プロセス、プロセス終了でツールバーも破棄、プロセス終了 ・IE7は1タブに1スレッド、1タブ終了でツールバーも破棄、スレッド終了 ・IE8は1タブに1プロセス、1タブ終了でツールバーも破棄、プロセス終了 ・Anciaは、複数タブに1スレッド、1タブ終了で、ツールバー破棄、スレッド継続 と、Anciaでは1スレッドの処理内で何度もツールバー作成/破棄が行われるため、若干動作モードが異なります。これがエラー原因に関係しているかもしれません。 まともに対応するとなるとマルチプロセスでしょうか。。 IEツールバーが破棄されないバグがあり、対応したのでAnciaのプロセスが残ることがもうないと思います。
この投稿を読む

WTL 8.1 WTL 8.1.9127

1年以上ぶりで、あたらしいWTLが出ています。 http://sourceforge.net/project/shownotes.php?release_id=680959 desktop window manager関係の新しいクラスが追加されています。 atldwm.h CDwm CDwmImplCDwmWindowT - CDwmWindow CDwmThumbnailTCDwmThumbnail CDwmThumbnailHandle CAeroControlImpl
この投稿を読む

pure virtual function call

Ancia046で最新のgoogleツールバーを使用していて、次の事を行なうと100%落ちることが分かりました。 ・起動する、ローカルホームが表示される ・ローカルホームから新しいタブでページを開く ・ローカルホームのタブを閉じる ・適当なページへ移動する すると、以下の箇所で落ちていることが分かります。IEツールバーをホストしている側の参照カウンタ辺りが怪しそうです。。
この投稿を読む

不具合の修正

更新履歴 download スクリプトからbrowserオブジェクトを参照すると(新しいタブを開くなど大部分)、タブを閉じるときなどで落ちることがある重大な不具合を修正しています。IFのrelease()洩れも修正しているため、プロセス終了時にプロセスが残ってしまう問題が修正されているかもしれません。 大きな不具合のためabout:tabsの機能が途中ですが、出しました。about:tabsを開くと、ホームの最初のサイトのサムネイルだけ表示されます。Faviconの取得を行なうと、一定時間後に消えてしまう問題が出ています。googleでのサジェストが最近になって出なくなった件を修正しています。
この投稿を読む

if文

文字列の大文字を小文字にする処理で、 char c=psz[i]; if((‘A’ <= c) && (c <= ‘Z’)) c += 0x20; と if((c <= ‘Z’) && (‘A’ <= c)) c += 0x20; では、下のif文のほうが、効率的です。 たとえば、URLはほぼ小文字なので、上のif文だと、’A’<=cが必ずtrueとなり、 無駄に判定されてしまいます。if文では、先に効率よく判定できる条件順に書く 些細なことですが
この投稿を読む

ExplorerBarPlus 1.3.8(ChromeBookmarkReader)

更新内容  ダウンロード ExplorerBarPlusでGoogle Chromeのブックマークを表示する機能を追加しました。 ブックマーク表示後に、フォルダを自動的に展開する機能を備えています。Google Chromeのブックマークは、まず「ブックマーク バー」「その他のブックマーク」フォルダがありますが、1フォルダまで自動的に展開とした場合、「ブックマーク バー」「その他のブックマーク」が展開された状態で表示されます。恐らくそれほど深い階層までブックマークを作成していないと思うので、1〜2フォルダまで自動的に展開してしまえば、大体のアイテムが表示できると思います。 本機能搭載により、ExplorerBarPlusは、Firefox1〜3、Opera、Sleipnir2、IEのお気に入りのほか、Google ChromeのブックマークをIEで使用できることとなりました。 ほかに、IE8の環境で履歴表示する機能で、サイト別履歴/回数別履歴/今日表示したページを表示できなかったのを、表示できるよう修正しています。
この投稿を読む
ページ上部に戻る