$Id: RequirementsAnalysis.html,v 1.16 2000/03/08 19:38:17 edburns%acm.org Exp $
webclient interface | feasibility scale | time to implement | time to prepare analysis | implementation depends on | implementation % complete | owner | |
---|---|---|---|---|---|---|---|
Bookmarks
|
Add/Remove bookmarks | 4 | 1 week | 0.5 hours | Netscape RDF impl | 20 (1 of 5 methods) | edburns |
Display bookmarks | 4 | ||||||
Cookies
|
Add/Remove cookies | 4 | 1 week | 0.5 hours | Depends on Blackconnect | 0 | |
Display cookies | 4 | ||||||
CurrentPage
|
Selection manipulation | 2 | 2 weeks | 2 hours | nsIPresShell | 10 (1 of 10 methods) | ashuk |
Find in Page | 3 | ||||||
Page Info | 3 | ||||||
Page Source | 3 | ||||||
Get DOM | 1 | depends on JavaDOM project | |||||
EventRegistration
|
Container Events | 2 | 3 weeks | 2 hours | Mozilla Observer interfaces | 8 (1 of 12 methods) | ashuk |
Document Events | 2 | ||||||
Document Load Events | 2 | ||||||
DOM Events | 1 | ||||||
JavaScript Events | 3 | ||||||
Window Events | 3 | ||||||
ExtendedEventRegistration
|
HyperLink Events | 1 | 0.5 weeks | 0.25 hours | - | 0 | History
|
Add/Remove HistoryEntry | 4 | 1 week | 0.5 hours | nsISessionHistory | 60 (8 of 13 methods) |
Display HistoryEntry | 4 | ||||||
Navigation
|
Navigation | 1 | 0.2 weeks | 1 hour | nsIDocShell | 100 (3 of 3 methods) | edburns |
Preferences
|
Import Export of bookmarks and cookies | 4 | 6 weeks | 2 hours | - | 0 | |
Proxies | 3 | ||||||
Http headers | 4 | ||||||
Character Sets | 3 | ||||||
History Expiration, etc. | 3 | ||||||
Security | 3 | ||||||
Font, color, etc | 3 | ||||||
Set user stylesheet | 3 | ||||||
Total Implementation Time: | 14 weeks | ||||||
Estimated Total Implementation Time (with padding): | 18 weeks |
mozilla\xpfe\components\bookmarks\public\nsIBookmarksService.idl
mozilla/source/webshell/src/nsWebShell.cpp
Back()
CanBack()
Forward()
CanForward()
GetHistoryIndex()
GoTo()
GetHistoryLength()
GetURL()
GetSessionHistory()
SetSessionHistory()
mozilla/source/xpfe/appshell/src/nsSessionHistory.cpp
GetTitleForIndex()
NS_NewSessionHistory()
mozilla/modules/libpref/public/nsIPrefs.idl, accessed through GetPrefs in nsIWebShell.h. (Other APIs may be needed for specific tasks; see below.)
mozilla/modules/libpref/src/init/all.js indicates that the bookmark file is indicated by the property "browser.bookmark_location". However, to add to, or read from, the current bookmarks, the API must use the RDF service to get a tree of DOM nodes denoting the bookmarks, and modify it.
Cookies: There is an nsICookieService defined in mozilla/extensions/cookie/nsICookieService.h. It is presumably accessible through the Service Manager (or Component Manager). However, it only allows item-by-item addition of cookies (and a method to clear all current cookies), so the API must parse the file containing cookies.
In both cases, we will need to prototype solutions before definitively claiming that the API as it stands is or is not feasible.
These are simple properties, get and set through nsIPrefs methods. However, there is not a one-to-one correspondence between nsIPrefs and webclient.Preferences methods; instead, each get must pass a Mozilla property name to GetTypePref(), where Type is one of String, Int, or Bool. Set methods must do something similar, after perhaps checking the result of GetPrefType to make sure the value passed in is of the expected type.
There seems no direct way to implement adding HTTP headers, except to insert headers into the disk cache, or on each sent message. It might be better to make this a separate API, since this might be a seldom-used feature, and a difficult one to implement.
mozilla/modules/libpref/src/init/all.js indicates that the character set is tied to the property "intl.character_set". The Java API must translate the string value to a java.lang.Character.Subset.
I can't find a mechanism that actually sets history expiration. It may not be implemented yet.
mozilla/modules/libpref/src/init/all.js lists various security-related properties, starting with "security.policy".
mozilla\layout\html\content\src\nsHTMLFontElement.cpp
that queries a preference and does the right
thing. feasibility scale: 3 6 weeks