Web Browser Application for touch devices

Registered by Pat McGowan

The webbrowser-app is a touch based browser, previously based on QtWebKit and currently being reworked to be based on Chromium Content API via Oxide.

Blueprint information

Status:
Started
Approver:
Pat McGowan
Priority:
Essential
Drafter:
Bill Filler
Direction:
Approved
Assignee:
Olivier Tilloy
Definition:
Approved
Series goal:
Accepted for trusty
Implementation:
Good progress
Milestone target:
milestone icon ubuntu-14.04
Started by
Bill Filler

Related branches

Whiteboard

== UDS 14.03 Agenda ==
 * Review status of Oxide conversion
 * Steps to install and test from PPA
 * UbuntuWebView API changes
 * Default user-agent string discussion
 * Integration with Download Manager

== Previous Discussions ==

MAILING LIST LIVE: https://launchpad.net/~webbrowser-app

agenda for discussion

 - how to benchmark performance and memory usage, and fine-tune them
 - must-have features
 - nice-to-have features
 - outstanding issues in the current implementation

tentative work items (roughly in decreasing order of priority):

 - benchmark performance (time to render, javascript execution, scrolling, pinch-to-zoom, …)
 - investigate how to limit/optimize memory usage
 - investigate how to have pages progressively displayed, as opposed to rendered only when fully loaded
 - add states to address bar and related actions
 - selective display of information in the address bar (e.g. domain name only on smaller form factors)
 - implement history view and navigation
 - match current address bar input to history and display list of results for faster access
 - implement tabs (add, close, view)
 - figure out a sensible user agent string
 - use a generic SDK toolbar instead of a custom implementation
 - revisit the webapps mode (currently webapp == chromeless)
 - improve the implementation of selection (especially on smaller form factors)
 - more specific error handling
 - implement share and save options in the selection menu
 - wire up HUD actions
 - implement bookmarks (add, remove, view)
 - add settings to allow customizing behaviours
 - qa: basic webdriver support ?

Post 13.10 Work Items:
Work items:
[osomon] More specific error handling: TODO
[osomon] Implement share and save options in the selection menu: TODO
[mardy] Investigate possible integration with Ubuntu Online Accounts: TODO
[abreu-alexandre] Investigate support of "apple-mobile-web-app-capable" meta tags & friends: TODO

(?)

Work Items

Work items for ubuntu-13.04-month-5:
[osomon] rename packaging, desktop files and executables to webbrowser-app: DONE
[bfiller] Investigate webkit build options and make sure we're using optimized configuration: DONE
[bfiller] Look into using Qt image loading instead of system image loading: DONE
[willcooke] Set up a Device Browser mailing list: DONE
[abreu-alexandre] Investigate JIT issues with security: DONE
[bfiller] Recompile snowshoe against latest qtwebkit and compare performance: DONE
[osomon] Investigate how to use webkit built-in developer tools remotely on the device: DONE
[osomon] Measure memory usage with sites of varying complexity, document results: DONE
[osomon] Add states to address bar and related actions: DONE

Work items for ubuntu-13.04-month-6:
[osomon] fix progressive rendering of pages: DONE
[osomon] Implement history: DONE
[osomon] smart address bar: DONE
[osomon] Use a generic SDK toolbar instead of a custom implementation: DONE

Work items for ubuntu-13.05:
[osomon] Internationalize the application, and integrate community translations: DONE
[osomon] Wire up HUD actions: DONE

Work items for ubuntu-13.06:
[osomon] Implement tabs support, and monitor closely how that affects memory usage: DONE
[osomon] Investigate how to handle links that request opening a new window: DONE
[osomon] Implement thumbnails for web pages: DONE
[osomon] Implement history view: DONE

Work items for ubuntu-13.07:
[osomon] Implement bookmarks/favorites: DONE
[osomon] document a plan for user agent string based on outcome of meetings: DONE
[osomon] chronological timeline in Activity view: DONE
[osomon] bug fixing: DONE

Work items for ubuntu-13.08:
[osomon] complete user-agent string selection and implementation: DONE
[osomon] Investigate the chromium content API / embedded framework: DONE
[osomon] measure performance of JavaScript engine using standard benchmarks and research ways to improve performance: DONE
[osomon] bug fixing: DONE

Work items for ubuntu-13.09:
[osomon] fix performance related issues: DONE
[osomon] bug fixing: DONE

Work items for ubuntu-13.10:
[osomon] bug fixing: DONE

Work items for ubuntu-13.11:
[osomon] split webbrowser-app and webapps-container in two separate executables: DONE
[osomon] save state and restore (tabs list, current tab): TODO
[osomon] location service fixes: TODO
[osomon] improve unit test coverage: TODO

Work items for ubuntu-13.12:
[osomon] download/upload support integrated with content hub: TODO
[osomon] video playback (streaming/html5): TODO
[osomon] user agent string improvements: TODO
[osomon] bug fixing: TODO

Work items for ubuntu-14.01:
[osomon] rework tab design (sync with design team): TODO

Work items for ubuntu-14.02:
placeholder: TODO

Work items for ubuntu-14.03:
placeholder: TODO

Work items for ubuntu-14.04:
[osomon] use Oxide instead of QtWebKit: INPROGRESS
[osomon] support WebRTC: TODO

Work items:
[osomon] investigate how to use an online malware DB to warn users about malicious websites: TODO
[osomon] additional performance improvments: TODO
[osomon] More specific error handling: TODO
[osomon] Implement share and save options in the selection menu: TODO
[mardy] Investigate possible integration with Ubuntu Online Accounts: TODO
[abreu-alexandre] Investigate support of "apple-mobile-web-app-capable" meta tags & friends: TODO

Dependency tree

* Blueprints in grey have been implemented.