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

2008年

dyn menu

Anciaは、ResHackerでみると分かりますが、メニューリソースを持っていません。メニューは全てファイルで持ち、メニューファイルには、動的メニューアイテム(dynamic menu)を定義できます。実装済み動的メニューは、placeholderのprefixではじまる placeholder.ietoolbar 〜 Internet Explorerツールバー placeholder.ievertbar 〜 Internet Explorerエクスプローラバー placeholder.up 〜 上へ移動 placeholder.back 〜 トラベルログの戻る placeholder.forward 〜 トラベルログの進む placeholder.travellog 〜 トラベルログ全て placeholder.closed 〜 最近閉じたタブ placeholder.new.closed 〜 最近閉じたタブ(新しいタブで開く) placeholder.home 〜 Internet ExplorerのホームURL placeholder.new.home 〜 Internet ExplorerのホームURL(新しいタブで開く) placeholder.toolbar 〜 アドレスバー、検索バーなど表示・非表示 placeholder.searchengine 〜 検索エンジン placeholder.encoding 〜 エンコーディング placeholder.tab 〜 タブ一覧(次回更新に含まれます) です。 ツールバーのメニューファイルmenu_toolbar.jsonを {“menu”:[ ← 次回更新でrootからmenuへ変更されます {“popup”:[   {“cmd”:“placeholder.toolbar”},   null,   {“txt”:“ハイライトバー”,“cmd”:“show.hilitebar”},   {“txt”:“インラインサーチ(&I)“,“cmd”:“isearch”},   {“txt”:“ステータスバー(&B)“,“cmd”:“statusbar”},   null,   {“txt”:“エクスプローラバー”,“popup”:[     {“cmd”:“placeholder.ievertbar”}]},   null,   {“cmd”:“placeholder.ietoolbar”},   null,   {“txt”:“ツールバー固定する(&B)“, “cmd”:“locktoolbar”}]} ]} とした場合、ツールバーで右クリックすると、placeholder.toolbar、ietoolbarが動的に展開され、上の画像のメニューが表示されます。placeholderでの展開がないときは「なし」になります。nullはセパレータです。 仕様として、下のように
この投稿を読む

creating ancia

Anciaの開発に当たって、実装をあきらめた機能があります。それは、タブごとにスレッドとする機能です。 タブを複数作成すると、1つのUIスレッドで複数tridentエンジンが動作するため、1タブが重いページを読み込むと他のタブも固まってしまいます。新しいタブブラウザを開発するからには、タブごとにスレッドとすることが実装目的の一つでした。 しかし残念ながら、タブごとにスレッドで動作させることは可能でしたが、どうしても解決できない問題があり、あきらめてしまいました。スレッドで生成したtridentエンジンで、どうにもスクロールがスレッドではないときに比べ、もたついてしまうのです。タブごとのスレッドのTheWorldで、http://www.yahoo.co.jp/を開くと、ホイール上下でのスクロールがIEに比べスムーズではないことが分かります。 1UIスレッド・複数タブで実装が進んでしまった今では、タブごとのスレッドやプロセス対応は、無理そうです。
この投稿を読む

AutoTextLink

オートテキストリンクとは、テキストのURLを自動的にリンクにする機能です。Firefoxのアドオン、テキストリンクのようなものです。このテキスト http://www.egrath.net/?AnciaがAnciaで開くとリンクになります。オートテキストリンクされたことが区別できるよう、作成されたリンクにはアイコンを表示します。アイコンが表示されなければ、ページのリンクなのか、作成されたリンクなのか区別できません。 下のURLらしいテキストでもリンクを作成します。 ttps://addons.mozilla.org/ja/firefox/addon/1939 tps://addons.mozilla.org/ja/firefox/addon/1939 ps://addons.mozilla.org/ja/firefox/addon/1939 ttp://www.egrath.net/?Ancia tp://www.egrath.net/?Ancia 全角 http://www.egrath.net/?Ancia 欠点として、たとえば掲示板で怪しいURLのテキストをリンクとしてしまうため、クリックすると確認無しに開けてしまうことです。これは、次回更新でオートテキストリンクを開くときは、確認ダイログを表示する対応を入れます。 オートテキストリンクでもドロップアクションが動作するため、 怪しいURLは、aguse.jpへドロップ aguse.jpの調査結果で、大丈夫なら、調査結果のページから怪しいURLをオープン(オートテキストリンクが動作し、怪しいURLがリンクになってる) と、マウスの操作だけで出来ます。
この投稿を読む

DropAction

Anciaのドロップアクションとは、簡単にいうとドロップターゲットの表示です。リンクやテキストをドラッグすると、ボタンが表示されるので、直感的に行ないたいボタンへドロップします。 設定ファイルは、resourceのdrop_link.json(リンクの場合)、drop_text.json(テキストの場合)です。ボタンは、設定ファイルでdropdownがあると階層構造になります。アプリでは、階層構造の深さに制限は設けていません。dropdownとしてもdropdownボタンにドロップ可能です。 ボタンは、 スクリプト(script) 検索(search) が登録できます。アクションをスクリプトで書かなければならないことが面倒ですが、アプリでアクションを実装するときりがないので、その様にしました。逆にスクリプトが実行できるので、ActiveXObject等でインスタンスを作成し、ダウンローダを起動するなども簡単に出来ます。 ドロップアクションは、単なるOleDragDropのイベント契機に表示しているので、他のアプリからのドラッグなどでも表示できます。たとえば、こんなことが可能です。 他のブラウザからドラッグされたリンクを新しいタブで開く 他のブラウザからドラッグされたリンクをクリップボードにコピー Wordや秀丸からドロップされたテキストでGoogle検索し、ハイライト Anciaのリンクバーからドラッグされたボタンをバッググラウンドタブで開く ・・・など、スクリプトなのでアクションは自由です。
この投稿を読む

Ancia 0.2.9

まだ開発途中ですがAnciaを更新しました。アドレスバーと検索バーのスキン対応、ユーザエージョント変更など。他に、スクリプトの汎用性向上の仕様変更も入れる予定でしたが、時間がありませんでした。 スクリプトの汎用性向上とは、 アプリはアドレスバーのとき、DataObjectのTextにURL、UniformResourceLocatorにURLを設定し、スクリプトを実行 アプリは検索バーのとき、DataObjectのTextに検索キーワード、URLに検索クエリURLを設定し、スクリプトを実行 スクリプトのコピー.jsは、実行元によらず、DataObjectのTextをクリップボードにコピーする処理を書けばよい というものです。この仕様とすれば、ドロップアクション用のスクリプトを別ファイルに書く必要がなくなくなり、DataObjectを扱うスクリプトだけを書けばよい、となります。 Anciaについては、なにも書いていないので、備忘録としてもこれから少しずつでも書いていこうと思います。プロセスが残ったり、ドロップアクションを表示すると落ちることがあったり、まだまだです。。
この投稿を読む

ExplorerBarPlus 1.3.5

更新内容  ダウンロード Firefoxのブックマーク読み取りで、フォルダの展開で表示異常になることがある問題を修正しています。placeのキーワード読み込みも対応しました。
この投稿を読む

places 2

firefox-3.0-source\mozilla\toolkit\components\places\src\nsNavHistory.cpp(766): rv = mDBConn->ExecuteSimpleSQL( NS_LITERAL_CSTRING(“PRAGMA locking_mode = EXCLUSIVE”)); 排他ロックなので、firefox3動作中のデータベースアクセスは無理ですね
この投稿を読む

places

ExplorerBarPlusでのFirefox3ブックマーク読み取り対応で、Firefox3起動中だとデータベースが読み取れないという問題に遭遇。 Firefox3の複数起動で新たにプロセスが立ち上がらないところを見ると、他プロセスからの読み取りは無理なのか、、sqliteのソースを追うとLockFileで失敗しているし
この投稿を読む
ページ上部に戻る