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 |