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

Lucian (talk | contribs)
No edit summary
Lucian (talk | contribs)
No edit summary
 
(3 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
Line 68: Line 72:


Since I was using a lot of open source at home, I tried to push it in school as well. I managed to make students and teachers aware of GCC as a replacement for Borland C/C++, Mono and SharpDevelop as a replacement for the not-quite-free Visual Studio. With the help of a friend, I even managed to convince the head of school to install Ubuntu in one of the labs.
Since I was using a lot of open source at home, I tried to push it in school as well. I managed to make students and teachers aware of GCC as a replacement for Borland C/C++, Mono and SharpDevelop as a replacement for the not-quite-free Visual Studio. With the help of a friend, I even managed to convince the head of school to install Ubuntu in one of the labs.
I've also participated in last year's GSoC, adding SSB support to Browse. See [Webified].


====You and the community====
====You and the community====