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

Online Soft

アドレス履歴の表示

Ancia0.3.5で、アドレス履歴の表示に、ホーム一覧や、履歴の削除、localhomeへの移動ボタンを追加しました。他にアドレス履歴の表示領域がもったいないので、上へ移動のURL表示も追加します。
この投稿を読む

Internet Explorer 8 RC1での動作

Internet Explorer 8 RC1で、Anciaを動かすと、次の不具合が出ます。 サイトを表示した回数順が出ない 今日表示したページが出ない FavIconが取得されない ハイライトしている状態で、最新の状態に更新すると、ハイライトが失われる 他もあるかもしれませんが、FavIcon取得やサイトを表示した回数順など、アプリで実装して取得ですかね。FavIconは、IE側で取得する方法を見つけたんですが、、残念、、 いまはIE8対応より前に、機能の充実を図ります。
この投稿を読む

ページのハイライト

Anciaでは、ページのハイライトをハイライトバーとしてタブ毎に持ちます。タブ毎に持っているので、タブ切り替えでハイライトボタンを押す必要ありません。バーでは、ハイライトの数が表示され、ハイライトされなければ灰色表示となるので、すぐにヒット数が分かります。 最新の状態に更新しても、ハイライトを失いません。ただ、、IE8βのころで、最新の状態に更新すると、ハイライトが失われてしまいました。ここは、IE8で最新の状態に更新する挙動が変わったのかもしれません。HTML Elementでのハイライトではなく、別の方法ではハイライトしているため、高速にハイライトします。HTML Elementだと、DOMなど更新してるはずなので、重そうです。 ハイライトバーが表示されていれば、自動的にページを読み込んだとき、ハイライトします。バーを非表示にすると、ハイライトも消えます。バーのハイライトボタンは、ドラッグ&ドロップできます。ハイライト追加のショートカットキーは、デフォルトCtrl+Hです。resource/hilite.jsonが設定ファイルです。ドロップアクションで、「全てのタブでハイライト」へドロップすると、その名のとおり、全てのハブでハイライトできます。 おそらく、前回終了のタブ保存や、タブリストの保存で、ハイライト情報も保存できそうなので、タブリスト保存でハイライトも保存するよう対応予定です。セキュリティも保存できそうです。
この投稿を読む

json形式の設定ファイル

Anciaの設定ファイルは、resourceやsetting、タブリストなど、json形式で保存します。Anciaは、一から作成したUnicodeビルドです。なので、まず設定ファイルを、iniファイルを使わず、おもいきってUnicode形式のjsonとしました。Unicodeビルドで設定ファイルもUnicodeとすることで、設定ファイルを読み込んだ際の無駄な文字コード変換を省けます。 jsonは、iniに比べ配列やオブジェクトの表現がしやすいので、良いです。json parser、writerは自前で書いていますが、IE8のが、APIやinterfaceで公開されれば、json形式で保存するアプリが増えるかもしれません。
この投稿を読む

OpenSearchでの検索エンジン登録

Anciaでの検索エンジン情報は、OpenSearch形式のファイルで持っています。どんな検索エンジンでもOpenSearch形式のファイルを作れば、使用できるはずです。 アプリへの検索エンジン登録は、searchフォルダに、OpenSearch形式のファイルを置くだけです。ファイル名=検索エンジン名となり、ファイル名の.icoをおけば、検索エンジンのアイコンになります。ファイル削除で、登録が消えます。ただし、アプリで削除すると、検索履歴も一緒に消してくれます。登録が単純な分、検索エンジンの順番は、ファイル名順です。 検索バーは、検索エンジンごとに検索キーワード履歴を保存するため、aguse.jpで調べたURLやgoogleで調べたキーワードが、ごっちゃになることはありません。検索バーのキーワード履歴は、ホイールクリックすると、新しいタブで検索結果を表示し、また、右クリックメニューから他のエンジンで調べることが出来ます(上の画像)。履歴は、setting\SearchHist_検索エンジンファイル名.jsonで保存します。履歴ファイルがあれば、履歴を表示・なければ表示無しです。検索バーへの検索エンジンボタンの登録は、バーのボタン設定ファイルで”btn”:[・・・,{“search”:“検索エンジンのファイル”},・・・]とします。 検索URLテンプレートは、{searchTerms}のみサポートしています。Internet Explorerと同じく、GETのみサポートです。 次の更新は、タブ上での機能割り当て辺りを、、マウスジェスチャは、、違う形で提供するかもしれません。
この投稿を読む

IEツールバー

Anciaは、ExplorerBarPlusをどうしても使用したかったので、初回v0.0.1の時点でIEツールバー・エクスプローラバーをサポートしています。サポートといっても、IEでしか動かないものなどあるため、全てのツールバーのサポートは無理です。 AnciaでのIEツールバーの仕様は、Internet Explorer同様、1つのタブにつき、1ツールバーインスタンスです。2つタブがあるとき、ツールバーも2つ存在します。タブを切り替えるときに、IEツールバーの表示も切り替えています。 IEツールバー自体、1つのIWebbrowserへの動作のため、複数タブで1つのIEツールバーを共有し動作させる実装は選択しませんでした。複数タブ対1つのIEツールバーは、仕様に従わず無理に動かすことは可能だと思いますが、無理に動かしてもしょうがないですし、無理に動かすための実装時間がもったいなく思えました。 Ancia初期の開発段階では、全タブが閉じた状態での起動でした。ですが、IEツールバーが1つのIWebBrowserが必要なので、IEツールバーをサポートしたことで、全タブが閉じた状態での起動仕様は捨てました。全タブが閉じた状態での起動が自身は好きですが、IEツールバーのサポートのほうが、上だったので、、仕方ないです。
この投稿を読む

localhome機能

Anciaの0.3.0のリリースで、ローカルホーム機能を追加しました。これは、about:localhomeにアクセスしたとき、resource配下のlocalhome.htmlの内容を表示するものです。resource/customizeにlocalhome.htmlがある場合は、そちらを優先に表示します。 about:localhomeのURLは特殊で、ローカルロックダウン・script無効でもスクリプトが実行できます。また、localhomeのときだけ、externalからアプリのさまざまなオブジェクト(IEのホーム一覧や、今日表示したページ一覧など)が参照できます。まだlocalhomeのデザインが適当なので、そのうち直します。localhomeの表示には、タブスナップショットの一覧も含める予定です。 localhomeは1日丸々使ったので、さすがに疲れました。年末も精神的にかなり辛いことがあったので、今日は、、ゆっくりしよう
この投稿を読む

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がリンクになってる) と、マウスの操作だけで出来ます。
この投稿を読む
ページ上部に戻る