« Inspecting Bookmarks data with nsIRDFObserver | nsIStringBundleService » |
「nsIRDFObserver を使ってブックマークのデータソースの動きを調べる」の使用例
「nsIRDFObserver を使ってブックマークのデータソースの動きを調べる」の使用例。
(1) ブックマークのプロパティを開いて新しくキーワードを設定してやると、以下のようなメッセージがエラーコンソールへ出力される。
onAssert rdf:bookmarks rdf:#$NQocU2 http://home.netscape.com/NC-rdf#ShortcutURL test --- onChange rdf:bookmarks rdf:#$NQocU2 http://home.netscape.com/WEB-rdf#LastModifiedDate 1159195753515707 1159195758372691
これはすなわち、リソース「rdf:#$NQocU2」へ新たに値が「test」であるノードを指し示すアーク「http://home.netscape.com/NC-rdf#ShortcutURL」が生成されたことを意味する。さらに、リソース「rdf:#$NQocU2」から発するアーク「http://home.netscape.com/WEB-rdf#LastModifiedDate」が指し示す先のノードの値が「1159195753515707」から「1159195758372691」に変わったことを意味する。
以上のことから、ブックマークの名前やキーワードを変更すると、それに伴って最終更新日時も変更されることがわかる。
ちなみになぜ「キーワード」プロパティに相当するアークのURIが「http:// … #ShortcutURL」なんていうわかりにくいものであるのかは不明。おそらく昔の名残?
(2) ブックマークをブラウザで開くと、ページのロードが完了したタイミングで、以下のようなメッセージがエラーコンソールへ出力される。
onChange rdf:bookmarks rdf:#$JzBPv1 http://home.netscape.com/WEB-rdf#LastVisitDate 1159194536946366 1159196268746572 --- onChange rdf:bookmarks rdf:#$JzBPv1 http://home.netscape.com/WEB-rdf#LastCharset UTF-8 UTF-8
これはすなわち、リソース「rdf:#$JzBPv1」から発するアーク「http://home.netscape.com/WEB-rdf#LastVisitDate」が指し示す先のノードの値「1159194536946366」が「1159196268746572」に変更され、同様にアーク「http://home.netscape.com/WEB-rdf#LastCharset」が指し示す先のノードの値「UTF-8」が「UTF-8」に変更された(実質変化なし)ことを意味する。
以上のことから、ブックマークをブラウザで開くと、最終訪問日時とページの文字コードの2つのプロパティが更新されることがわかる。これについてもう少し詳しく調べると、以下のような処理の流れであることがわかる。
gBrowser上で何らかのページがロードされる
↓
pageShowEventHandlers が呼ばれる
↓
nsIBookmarksService の updateLastVisitedDate が呼ばれ、もしロードされたページの URL がブックマークされたものであれば、最終訪問日時とページの文字コードの2つのプロパティを更新する