874
edits
Changes
Added explanation of feed plugins
The main idea here is to decouple Ubiquity's user interface from its implementation so that it's easier to experiment with more secure implementations. Another benefit of this is that it'll be easier to unify Ubiquity's UI with other pre-existing forms of web extensibility, like Bookmarklets and Greasemonkey scripts.
In Ubiquity 0.1, command authors create a command feed by inserting an tag of the following form in the <tt><nowiki><HEAD></nowiki></tt> element of an HTML document:
<tt><nowiki><LINK REL="commands" HREF="my_commands.js" TYPE="application/x-javascript" /></nowiki></tt>
In Ubiquity 0.2, the values of the <tt>REL</tt> and <tt>TYPE</tt> attributes will be used to locate an appropriate '''Feed Plugin''' for the feed. Once found, the Feed Plugin will serve the following roles:
* The Feed Plugin will control the user experience from the moment they click the "Subscribe..." button in the notification box to subscribe to the feed, presenting any necessary information the user may need to know before subscribing (e.g., security warnings). It will also be responsible for communicating with the Feed Manager to actually subscribe to the feed, since it's possible that the user may ultimately choose not to subscribe.
* The Feed Plugin will be responsible for actually loading the feed and providing its functionality—generally in the form of commands and pageload functions—to Ubiquity using well-defined interfaces.