Webified: Difference between revisions
No edit summary |
No edit summary |
||
| Line 46: | Line 46: | ||
<br />'''Milestones''': | <br />'''Milestones''': | ||
* Webified SSB can load a website (hello world) | |||
: Requires: | |||
:: - getting more familiar with Sugar and Browse code | |||
:: - building the Webified SSB. | |||
: '''Week 1''' | |||
* Both Browse and Webified SSB can use GMail in offline mode (through Gears) | |||
: Requires: | |||
:: - getting the Firefox Gears extension working in Browse and the Webified SSB | |||
: '''Week 2, at worst 3''' | |||
* Browse (with its utility extension) can successfully "sugarize" GMail and the resulting activity works. | |||
: Requires: | |||
:: - activity template as host for the Webified SSB | |||
::: '''Week 3''' | |||
:: - python tool that packages up activities, using the activity template | |||
::: '''Week 3, at worst 4''' | |||
:: - button in Browse that uses the python tool | |||
::: '''Week 4''' | |||
* JavaScript from inside a Webified SSB can call dbus stuff | |||
: Dbus is vital for good integration, but there may not be enough time in GSoC for making a nice JavaScript-side API. So I will at least provide a javascript-dbus bridge that web developers can build on. | |||
: Requires investigating: | |||
:: - [http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge#Gecko_version_notes This] javascript-dbus bridge | |||
:: - if that is not appropriate, try marshalling calls to Python with [http://en.wikipedia.org/wiki/JSON-RPC JSON-RPC] | |||
::: - through PyXPCOM (hulahop). almost as good as a direct bridge | |||
::: - through AJAX. sounds like the easiest way, but doing some [http://en.wikipedia.org/wiki/Cross-site_scripting XSS] would be needed | |||
: '''Week 5''' | |||
The remaining time could then be spent on polishing things up and for any eventual emergencies. | The remaining time could then be spent on polishing things up and for any eventual emergencies. | ||
If I have extra time. | If I have extra time. | ||
* Webified SSB can save and restore its state with the Journal. | |||
: Save & restore the browser state. possibilities: | |||
:: - just save the URL. It may be slower to resume and in fact loses some state, but it should be enough for most cases. | |||
:: - save the HTML structure. May have trouble with running scripts. | |||
:: - pickle the WebView. I'm not sure it works, but it may be the | |||
: Save & restore Gears state | |||
:: - do nothing. Gears provides resuming state. The only real drawback is that only the latest version will be available to resume. No actual data would be stored in the Journal. | |||
:: - save the entire Gears profile. Could be very slow for large profiles. | |||
:: - save just the sqlite database. Could be very slow for large databasesc (GMail). | |||
* Build a JavaScript-side API for basic functionality that cannot be achieved easily with HTML and Gears | |||
: - similar in concept to [http://fluidapp.com/developer/ Fluid's], but tailored for Sugar. | |||
: - based on the javascript-dbus bridge | |||
* Webified SSB can run a userscript (GreaseMonkey) | |||
: Should be as easy as injecting some JavaScript in the page | |||
: a GUI like the one GreaseMonkey has is outside the scope of this project | |||
: there will be instructions for how to add/remove userscripts | |||
* Webified SSB can use a userstyle (CSS) | |||
: again, should be just injecting some CSS | |||
: again, no GUI will be provided, just instructions | |||
Beyond GSoC, I would like to keep working on this. | Beyond GSoC, I would like to keep working on this. | ||