Summer of Code/2010/Abstract Browser: Difference between revisions

Lucian (talk | contribs)
No edit summary
Lucian (talk | contribs)
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 33: Line 33:
# Design and implement a browser engine abstraction layer in Python with two backends: hulahop/xulrunner and pywebkitgtk/webkit.
# Design and implement a browser engine abstraction layer in Python with two backends: hulahop/xulrunner and pywebkitgtk/webkit.
# Port Browse to this new abstraction layer, complete with [[Webified|SSB support]].
# Port Browse to this new abstraction layer, complete with [[Webified|SSB support]].
Since recent efforts to empower browsers like HTML5, Jetpack and the Chrome extension API are minimalistic in nature, the web development world is moving towards engine-independent extensions. Thus, implementing Jetpack/Chrome extensions/similar homegrown API for Browse should be both feasible and would benefit from a wealth of existing code.
SSBs are becoming less "web app to replace desktop apps" and more "internet apps to fit better in the desktop". I will design Browse's new SSB support to match this trend.


* '''What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
* '''What is the timeline for development of your project? The Summer of Code work period is 7 weeks long, May 23 - August 10; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 6-13); the last steps always take longer than you think, and we will consider cancelling projects which are not mostly working by then.'''
Weeks:
Weeks:
# Write prototype of abstraction layer
# Write prototype of abstraction layer
  * WebView GTK widget that wraps hulahop.WebView or pywebkitgtk.WebView
#* WebView GTK widget that wraps hulahop.WebView or pywebkitgtk.WebView
  * nothing more than WebView.load_uri()
#* nothing more than WebView.load_uri()
# Simple Browser activity based on the abstraction layer
# Simple Browser activity based on the abstraction layer
  * recycle code from Browse & Surf
#* recycle code from Browse & Surf
  * implement missing functionality as needed
#* implement missing functionality as needed
# Basic browser functionality
# Basic browser functionality
  * DOM access
#* DOM access
  * html events mapped to gobject events
#* html events mapped to gobject events
# More browser functionality
# More browser functionality
  * downloads, history
#* downloads, history
  * user stylesheets
#* user stylesheets
  * browser settings (i.e. proxy)
#* browser settings (i.e. proxy)
# Port SSB code from Browse's ssb branch
# Port SSB code from Browse's ssb branch
  * create ssb
#* create ssb
  * edit userstyles/usersheets
#* edit userstyles/usersheets
  * bookmarklets
#* bookmarklets
# More functionality
# More functionality
# Polish
# Polish