Features/WebKit: Difference between revisions
DanielDrake (talk | contribs) Created page with "<noinclude>{{TOCright}} Category:Feature Page Incomplete WebKit <!-- You can add categories to tie features back to real deployments/schools requesting t..." |
DanielDrake (talk | contribs) No edit summary |
||
| Line 5: | Line 5: | ||
[[Category:Features requested by School Xyz|<Feature Name>]] (the |Feature Name option sorts the entry on the category page under the first letter of <Feature Name>). --> | [[Category:Features requested by School Xyz|<Feature Name>]] (the |Feature Name option sorts the entry on the category page under the first letter of <Feature Name>). --> | ||
</noinclude> | </noinclude> | ||
== Summary == | == Summary == | ||
Browse and related components are switching to [http://www.webkit.org/ WebKit] as its back-end technology provider. (this is just a proposal, for now) | |||
== Owner == | == Owner == | ||
* Name: [[User:DanielDrake|Daniel Drake]] | * Name: [[User:DanielDrake|Daniel Drake]] | ||
| Line 28: | Line 18: | ||
== Detailed Description == | == Detailed Description == | ||
' | |||
Browse and related components currently embed Mozilla XUL/Gecko as their backend, however, Mozilla embedding has typically been neglected and buggy, causing a maintenance headache for us. It is now [https://groups.google.com/forum/#!topic/mozilla.dev.embedding/c_NMcO-N8wo/discussion actively discouraged] by Mozilla developers, who are focusing all their efforts on Firefox. From the perspective of a fairly regular open-source project, Mozilla's direction is also [http://lists.sugarlabs.org/archive/sugar-devel/2011-June/031865.html questionable on other points]. | |||
WebKit is a promising alternative, which is (by nature) an embeddable web engine. It is used in Apple Safari and Google Chrome and various other projects. | |||
=== Existing prototype: Surf === | |||
The pywebkitgtk-based Surf activity can be used as a prototype. Possible areas that need work are: | |||
* Downloads - originally missing due to [http://www.mail-archive.com/sugar-devel@lists.sugarlabs.org/msg08959.html no support in pywebkitgtk] but now landed? | |||
* persistant history - not saved across sessions (or journal entries) | |||
* clipboard/undo/redo - should be simple | |||
* back and forward buttons - you can go back and forward through your history, but autocomplete and skipping back or forward in the history is not implemented. shouldn't be too hard to complete | |||
* arrow key navigation in textbox | |||
* No cookie support | |||
pywebkit is seen as deprecated, [http://janalonzo.wordpress.com/2010/01/18/using-introspected-webkitgtk-in-gwibber/ even by the author himself]. PyGI is the solution, allowing direct calls into pywebkitgtk with no static bindings, and is now mature. Some of the missing features above can't be solved until either pywebkitgtk grows more API, or the switch is made to PyGI. | |||
=== Proposed implementation === | |||
Browse should move to WebKitGtk (for GTK+-2.x) using PyGI (gobject-introspection). Even though most applications of PyGI target GTK+ v3, we believe it should work on v2. However, a possible problem here is that sugar-toolkit bindings use static GTK+ bindings, and mixing PyGI calls in the same app might lead to problems ([http://lists.sugarlabs.org/archive/sugar-devel/2011-June/031869.html source]). | |||
== Benefit to Sugar == | == Benefit to Sugar == | ||
| Line 47: | Line 56: | ||
== Dependencies == | == Dependencies == | ||
pywebkitgtk is already a part of the Sugar platform (for epub support in Read). | |||
== Contingency Plan == | == Contingency Plan == | ||