[Project_owners] bookmarks-tree: SeaMonkey vs Firefox.
Philip Chee
philip.chee at gmail.com
Mon May 15 23:14:10 EDT 2006
Hello Project Owners and assorted sophonts.
I've been busy porting the functionality of the "Locate in Bookmark
Folders" Firefox extension
<http://alex.muntean.name/projects/mozilla/Locate_in_Bookmark_Folders/>
to SeaMonkey.
This extension calls selectResource() which is not a method available in
the SeaMonkey version of the bookmarks-tree xbl. So I've extracted the
javascript into my extension. Now selectResource() calls
getParentChain() which however isn't in the SeaMonkey version of
nsBookmarksService.cpp. And then of course getParentChain() calls
getParent() -ditto-.
Firefox version:
<http://lxr.mozilla.org/seamonkey/source/browser/components/bookmarks/src/nsBookmarksService.cpp#3020>
I've emulated these methods in js and they seem to work. Anybody want to
see if I've missed out anything? I don't really know C++ at all.
// from FF nsBookmarksService.cpp (translated into js)
getParentChain : function (aResource) {
var parentArray = new Array();
if (aResource) {
var parent = xsbBookmarks.getParent(aResource);
while (parent) {
parentArray.unshift(parent);
parent = xsbBookmarks.getParent(parent);
}
}
return parentArray;
},
// from FF nsBookmarksService.cpp (translated into js)
getParent : function (aResource) {
var arcsIn = BMDS.ArcLabelsIn(aResource);
var containerArc;
while (arcsIn.hasMoreElements()) {
containerArc = arcsIn.getNext();
// Test if the arc is ordinal. We will assume that the parent is
determined
// by the first ordinal arc that points to the resource.
// That's not bullet-proof, since several ordinal arcs can point
to the same
// resource. However, this will be sufficient for most of the cases.
if (RDFCU.IsOrdinalProperty(containerArc)) {
return BMDS.GetSources(containerArc, aResource, true).getNext()
.QueryInterface(kRDFRSCIID);
}
}
return null;
}
Phil
--
Philip Chee <philip at aleytys.pc.my>, <philip.chee at gmail.com>
http://flashblock.mozdev.org/ http://xsidebar.mozdev.org
Guard us from the she-wolf and the wolf, and guard us from the thief,
oh Night, and so be good for us to pass.
[ ]I saw Elvis. He sat between me and Bigfoot on the UFO.
* TagZilla 0.059
More information about the Project_owners
mailing list