Difference between revisions of "Features/WebKit/Development"

From Sugar Labs
Jump to navigation Jump to search
Line 8: Line 8:
 
* undo/redo/copy/paste '''DONE'''
 
* undo/redo/copy/paste '''DONE'''
 
* search in Document '''DONE'''
 
* search in Document '''DONE'''
* style text found in search, put yellow background, [http://lists.sugarlabs.org/archive/sugar-devel/2012-January/035205.html patch], we need to set the background color of the widget as well accordingly to make the currently selected match better visible as well
+
* style text found in search, put yellow background, <span style="background:#f6aa08; color:black">''ENHANCE''</span> we need to set the background color of the widget as well accordingly to make the currently selected match better visible as well
  
 
===View toolbar===
 
===View toolbar===
Line 14: Line 14:
 
* fullscreen '''DONE'''
 
* fullscreen '''DONE'''
 
* show/hide tray '''DONE'''
 
* show/hide tray '''DONE'''
* style tray in the theme, patch: ''SugarHTray * , SugarVTray * { background-color: @toolbar_grey;}''
+
* style tray in the theme, <span style="background:#ff8080; color:black">''FIXME''</span> patch: ''SugarHTray * , SugarVTray * { background-color: @toolbar_grey;}''
  
 
===Home Button===
 
===Home Button===
Line 24: Line 24:
 
* normalize text entry and autosearch '''DONE'''
 
* normalize text entry and autosearch '''DONE'''
 
* auto completion '''DONE'''
 
* auto completion '''DONE'''
* represent loading status
+
* represent loading status <span style="background:#ff8080; color:black">''FIXME''</span>
 
** change cursor to busy cursor?
 
** change cursor to busy cursor?
 
** update the bottom overlay with a status message?
 
** update the bottom overlay with a status message?
Line 38: Line 38:
  
 
===Stop button===
 
===Stop button===
* quit activity (active downloads?)
+
* quit activity (active downloads?) '''DONE'''
  
 
===Keystrokes===
 
===Keystrokes===
Line 59: Line 59:
  
 
===Downloads===
 
===Downloads===
* download a file, [http://lists.sugarlabs.org/archive/sugar-devel/2012-January/035222.html patch] that implement downloads (invoking a download from a palette does not work yet)
+
* download a file, [http://lists.sugarlabs.org/archive/sugar-devel/2012-January/035222.html patch] that implement downloads (invoking a download from a palette does not work yet) '''DONE'''
* check for active downloads when closing, see patch above ^^
+
* check for active downloads when closing, see patch above ^^ '''DONE'''
  
 
===Uploads===
 
===Uploads===
* upload a file, rewrite filepicker.py for webkit, Epiphany will not help us in this one it just let webkitgtk handle it which uses the standard GtkFileChooser dialog, [https://lists.webkit.org/pipermail/webkit-gtk/2012-January/000894.html asked on the list for ideas]. The html field is <form><input type=file>
+
* upload a file, rewrite filepicker.py for webkit, Epiphany will not help us in this one it just let webkitgtk handle it which uses the standard GtkFileChooser dialog, [https://lists.webkit.org/pipermail/webkit-gtk/2012-January/000894.html asked on the list for ideas]. The html field is <form><input type=file> <span style="background:#ff8080; color:black">''FIXME''</span>
  
 
===Link palettes===
 
===Link palettes===
* follow link, start download: the tricky bit is how to invoke the palette
+
* follow link, start download: the tricky bit is how to invoke the palette <span style="background:#ff8080; color:black">''FIXME''</span>
  
 
===Start all instances in the same process===
 
===Start all instances in the same process===
Line 72: Line 72:
  
 
===Authenticate with schoolserver===
 
===Authenticate with schoolserver===
* Create a HTTP Cookie to authenticate with the Schoolserver, Epiphany is as well using the 'cookies.sqlite'  database, we can reuse that, you can use libsoup for the management, the session we get with ''WebKit.get_default_session()'', see  ''embed/ephy-embed-single.c'' and'' lib/ephy-profile-migrator.c'' for a migrator.
+
* Create a HTTP Cookie to authenticate with the Schoolserver, Epiphany is as well using the 'cookies.sqlite'  database, we can reuse that, you can use libsoup for the management, the session we get with ''WebKit.get_default_session()'', see  ''embed/ephy-embed-single.c'' and'' lib/ephy-profile-migrator.c'' for a migrator. <span style="background:#ff8080; color:black">''FIXME''</span>
  
 
===Internationalisation===
 
===Internationalisation===
* Display pages based on locale specific information, [http://lists.sugarlabs.org/archive/sugar-devel/2012-January/035226.html patch]
+
* Display pages based on locale specific information '''DONE'''
  
 
===Don't autoplay flash, embed in web page===
 
===Don't autoplay flash, embed in web page===
* see agent-stylesheet.css in Browse how we did this before (test with njambre.org web page)
+
* see agent-stylesheet.css in Browse how we did this before (test with njambre.org web page) <span style="background:#ff8080; color:black">''FIXME''</span>
  
 
There is a free Safari (using WebKit) plugin that does the same: https://github.com/rentzsch/clicktoflash
 
There is a free Safari (using WebKit) plugin that does the same: https://github.com/rentzsch/clicktoflash
  
 
===Security===
 
===Security===
* CAcert
+
* CAcert <span style="background:#ff8080; color:black">''FIXME''</span>
  
 
===View Source===
 
===View Source===
Line 89: Line 89:
  
 
===Set DPI===
 
===Set DPI===
The page should be zoomed for the screen in use, links about the subject:
+
The page should be zoomed for the screen in use <span style="background:#ff8080; color:black">''FIXME''</span>, links about the subject:
 
* what we used to set in hulahop: [http://kb.mozillazine.org/Layout.css.dpi layout.css.dpi]
 
* what we used to set in hulahop: [http://kb.mozillazine.org/Layout.css.dpi layout.css.dpi]
 
* [http://webkitgtk.org/reference/webkitgtk/unstable/WebKitViewportAttributes.html#WebKitViewportAttributes--device-dpi attribute in webkitgtk]
 
* [http://webkitgtk.org/reference/webkitgtk/unstable/WebKitViewportAttributes.html#WebKitViewportAttributes--device-dpi attribute in webkitgtk]
Line 96: Line 96:
  
 
===Identify Sugar version through Browser===
 
===Identify Sugar version through Browser===
This can be done using the user agent, [http://lists.sugarlabs.org/archive/sugar-devel/2012-January/035267.html, patch].
+
This can be done using the user agent '''DONE'''

Revision as of 07:21, 24 January 2012

Browse functionality and the replacements

Activity toolbar

  • session title (in the Journal), should be the title of the last page visited ENHANCE, works as in previous Browse but when you resume a session the title is not updated anymore when browsing
  • share activity, the starred pages are shared, anything else? sharing in Borwse does not work at the moment, because the 'get_preferred_connection' API of the toolkit seem to be broken atm. Sharing in Read which does not use this API works. FIXME

Edit toolbar

  • undo/redo/copy/paste DONE
  • search in Document DONE
  • style text found in search, put yellow background, ENHANCE we need to set the background color of the widget as well accordingly to make the currently selected match better visible as well

View toolbar

  • zoom in/zoom out DONE
  • fullscreen DONE
  • show/hide tray DONE
  • style tray in the theme, FIXME patch: SugarHTray * , SugarVTray * { background-color: @toolbar_grey;}

Home Button

  • go back to home page DONE

Title entry

  • show Address/title DONE
  • reload and stop button DONE
  • normalize text entry and autosearch DONE
  • auto completion DONE
  • represent loading status FIXME
    • change cursor to busy cursor?
    • update the bottom overlay with a status message?
    • show spinning wheels in tabs?

Go back and forward buttons

  • History DONE
  • Palettes showing history (see webtoolbar.py methods _session_history_changed_cb, _reload_session_history, _history_item_activated_cb)

Favorite button

  • create a session bookmark
  • create a thumbnail DONE

Stop button

  • quit activity (active downloads?) DONE

Keystrokes

  • ctrl + 'd': add link DONE
  • ctrl + 'f': find DONE
  • ctrl + 'l': focus url entry DONE
  • ctrl + 'minus': zoom out DONE
  • ctrl + ['plus', 'equal']: zoom in DONE
  • ctrl + 'Left': go back DONE
  • ctrl + 'Right': go forward DONE
  • ctrl + 'r': reload DONE
  • ctrl + 't': add tab DONE

Multiple tabs

  • page title DONE
  • restore tabs DONE
  • tabs size
    • always the same height
    • fixed width depending on the number of tabs, see message for commit 959f86e0406914267047dc10302f98a059b6ba21

Downloads

  • download a file, patch that implement downloads (invoking a download from a palette does not work yet) DONE
  • check for active downloads when closing, see patch above ^^ DONE

Uploads

  • upload a file, rewrite filepicker.py for webkit, Epiphany will not help us in this one it just let webkitgtk handle it which uses the standard GtkFileChooser dialog, asked on the list for ideas. The html field is <form><input type=file> FIXME

Link palettes

  • follow link, start download: the tricky bit is how to invoke the palette FIXME

Start all instances in the same process

Browse using xulrunner is a single process activity where all instances are in the same process. WebKit does handle the same well. DONE

Authenticate with schoolserver

  • Create a HTTP Cookie to authenticate with the Schoolserver, Epiphany is as well using the 'cookies.sqlite' database, we can reuse that, you can use libsoup for the management, the session we get with WebKit.get_default_session(), see embed/ephy-embed-single.c and lib/ephy-profile-migrator.c for a migrator. FIXME

Internationalisation

  • Display pages based on locale specific information DONE

Don't autoplay flash, embed in web page

  • see agent-stylesheet.css in Browse how we did this before (test with njambre.org web page) FIXME

There is a free Safari (using WebKit) plugin that does the same: https://github.com/rentzsch/clicktoflash

Security

  • CAcert FIXME

View Source

  • The view source feature in Browse, should show the html page source, added to the activity source. DONE

Set DPI

The page should be zoomed for the screen in use FIXME, links about the subject:

Identify Sugar version through Browser

This can be done using the user agent DONE