「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つのプロパティを更新する

TOP

TOP