Gaia/Browser: Difference between revisions
No edit summary |
Benfrancis (talk | contribs) No edit summary |
||
| Line 14: | Line 14: | ||
== Issues & Risks == | == Issues & Risks == | ||
== Definition == | == Definition == | ||
=== User Stories === | === User Stories === | ||
[https://docs.google.com/spreadsheet/ccc?key=0AiNX8SgRPhbjdF9uUnh6cnFrT1pObEdkZ3YzLXNxeFE User stories (draft)] | |||
==== M2 - Demo Phone ==== | ==== M2 - Demo Phone ==== | ||
* <strike>[https://github.com/andreasgal/gaia/issues/61 Navigate to URL]</strike> | * <strike>[https://github.com/andreasgal/gaia/issues/61 Navigate to URL]</strike> | ||
* [https://github.com/andreasgal/gaia/issues/62 Back & Forward] | * <strike>[https://github.com/andreasgal/gaia/issues/62 Back & Forward]</strike> | ||
* [https://github.com/andreasgal/gaia/issues/63 Reload] | * <strike>[https://github.com/andreasgal/gaia/issues/63 Reload]</strike> | ||
* <strike>[https://github.com/andreasgal/gaia/issues/288 Browser | * <strike>[https://github.com/andreasgal/gaia/issues/288 Browser URL Update on Navigate]</strike> | ||
==== M3 - Product ==== | ==== M3 - Product ==== | ||
---------------------<br> | ---------------------<br> | ||
| Line 69: | Line 35: | ||
--------------------- | --------------------- | ||
= | =====Basic Browser Functions===== | ||
====Basic Browser Functions==== | |||
[P1] URL Bar<br> | [P1] URL Bar<br> | ||
| Line 81: | Line 46: | ||
[P1] Back / Forward buttons [currently Back is handled by the Android OS]<br> | [P1] Back / Forward buttons [currently Back is handled by the Android OS]<br> | ||
[P1] Refresh<br> | [P1] Refresh<br> | ||
[P1] Stop<br> | [P1] [https://github.com/andreasgal/gaia/issues/181 Stop]<br> | ||
[P2] Add / Remove Bookmark<br> | [P2] Add / Remove Bookmark<br> | ||
[P3] Edit Bookmark | [P3] Edit Bookmark | ||
| Line 92: | Line 57: | ||
[P?] Add-ons<br> | [P?] Add-ons<br> | ||
====Addons Manager (AMO)==== | =====Addons Manager (AMO)===== | ||
[P?] Downloads [currently this is handled by the Android OS]<br> | [P?] Downloads [currently this is handled by the Android OS]<br> | ||
[P3] Network error pages http://bit.ly/zyDSWm<br> | [P3] Network error pages http://bit.ly/zyDSWm<br> | ||
Note - we need to try to get the right browser UA string so we get the best mobile optimized content that's available | Note - we need to try to get the right browser UA string so we get the best mobile optimized content that's available | ||
====Gestures==== | =====Gestures===== | ||
[P1] one-fingered dragging to scroll pages<br> | [P1] one-fingered dragging to scroll pages<br> | ||
[P1] double tap to zoom / unzoom<br> | [P1] double tap to zoom / unzoom<br> | ||
| Line 107: | Line 72: | ||
[P3] pull down on content to reveal home screen / awesomebar | [P3] pull down on content to reveal home screen / awesomebar | ||
====[P1] Awesome Screen==== | =====[P1] Awesome Screen===== | ||
[P1] frecency algorithm applied to Top Sites / Search filter<br> | [P1] frecency algorithm applied to Top Sites / Search filter<br> | ||
[P1] top visited sites<br> | [P1] top visited sites<br> | ||
| Line 115: | Line 80: | ||
[P2] folders (used for synced desktop bookmarks folders)<br> | [P2] folders (used for synced desktop bookmarks folders)<br> | ||
====[P1] Tabs==== | =====[P1] Tabs===== | ||
A way to access tabs: | A way to access tabs: | ||
* | * [https://github.com/andreasgal/gaia/issues/66 New tab] | ||
* [https://github.com/andreasgal/gaia/issues/67 Switch Tab] | |||
* [https://github.com/andreasgal/gaia/issues/287 Close Tab] | |||
*navigate through many tabs | *navigate through many tabs | ||
====[P2] Start Page==== | =====[P2] Start Page===== | ||
Visually rich page that displays: | Visually rich page that displays: | ||
*top visited sites | *top visited sites | ||
*recent tabs (Session History) | *recent tabs (Session History) | ||
====[P?] Persona==== | ======[P?] Persona====== | ||
Ability to sync bookmarks, history with desktop and all other platforms<br> | Ability to sync bookmarks, history with desktop and all other platforms<br> | ||
^ If we do this we should try for remote tabs as well | ^ If we do this we should try for remote tabs as well | ||
====[P?] Add Ons==== | =====[P?] Add Ons===== | ||
Support for installing add ons | Support for installing add ons | ||
====[P3] Settings [currently this is handled by the Android OS, probably will be moved to the global Settings]==== | =====[P3] Settings [currently this is handled by the Android OS, probably will be moved to the global Settings]===== | ||
[P3] General | [P3] General | ||
*About Nightly | *About Nightly | ||
| Line 148: | Line 115: | ||
*Send Performance Data | *Send Performance Data | ||
*Use Master Password | *Use Master Password | ||
=== Dependencies === | |||
Largely dependent on a new Browser API {{bug|693515}} | |||
==== M2 - Demo Phone ==== | |||
* <strike>mozbrowser{loadstart,loadend,locationchange} events for <iframe mozbrowser> {{bug|710231}}></strike> | |||
* <strike>titlechange event {{bug|719459}}</strike> | |||
* <strike>[https://github.com/andreasgal/gaia/issues/25 iframe scrolling]</strike> | |||
* <strike>Window.top should stop at the iFrame to prevent parent navigation & frame busting</strike> ({{bug|704037}}) | |||
==== M3 - Product Phone ==== | |||
* stop method {{bug|709759}} | |||
* iconchange event {{bug|719461}} | |||
* Need to make popup windows (e.g. alert, authentication and window.open) work {{bug|716664}} | |||
** window.open should now work {{bug|721777}} | |||
* Need a better solution for ignoring X-Frame-Options headers for <iframe mozbrowser> elements (B2G currently just has a pref which disables them for whitelisted domains) | |||
* Find a way to use the iframe's window.history instead of having to re-implement the history API inside the app. (some discussion in {{bug|708179}}) | |||
* Better solution for setting a window.top boundary on browser elements, using process separation | |||
====OS Dependencies (On Android)==== | ====OS Dependencies (On Android)==== | ||
| Line 156: | Line 140: | ||
* Download Manager | * Download Manager | ||
* Copy and Paste | * Copy and Paste | ||
== Design == | |||
===UX: Visual Design=== | |||
*forms: curved tabbed shape | |||
*colour: blue, gray field colours and firefox orange as accents | |||
*styling: textures, drop shadow = sense of touchable UI elements | |||
*iconographic metaphors: use established icon metaphors | |||
===UX: Interaction=== | |||
*layout: access to key features is located in common spots (close parallels to android fennec) | |||
*content is king metaphor: content is the main focus point, UI elements are secondary and hidden unless invoked by the user | |||
== Development == | == Development == | ||
[https://github.com/andreasgal/gaia/tree/master/apps/browser Source code on Github] | [https://github.com/andreasgal/gaia/tree/master/apps/browser Source code on Github] | ||
Revision as of 12:02, 29 March 2012
The Gaia Browser app is a web browser implemented as a web app, for the front end of B2G
Status
- Stage: Development
- Release target: B2G Milestone 3 [Alpha], Q2 2012
Team
- Front End: Ben Francis
- DOM API: Justin Lebar
- UX: Patryk Adamczyk, Ian Barlow, Larissa Co
- Product Manager: Chris Lee
- Tech Lead: Chris Jones
- Reviewers: Olli Pettay (back end), Vivien Nicolas (front end)
Issues & Risks
Definition
User Stories
M2 - Demo Phone
M3 - Product
[P1] Must Have
[P2] Nice to Have
[P3] Not crucial for first release
Basic Browser Functions
[P1] URL Bar
[P1] url input field
[P3] favicon
[P1] Loading spinner / progress bar
[P1] Title / URL
[P2] Site ID (Larry Menu)
[P2] EV / SSL indicator
[P1] Back / Forward buttons [currently Back is handled by the Android OS]
[P1] Refresh
[P1] Stop
[P2] Add / Remove Bookmark
[P3] Edit Bookmark
- Move Bookmark
- Tag Bookmark
- Add Bookmark to Home Screen
[P3] Share
[P3] Add to Reading List / Switch to Reader Mode http://mzl.la/x9E94w
[P3] Site Settings
[P?] Add-ons
Addons Manager (AMO)
[P?] Downloads [currently this is handled by the Android OS]
[P3] Network error pages http://bit.ly/zyDSWm
Note - we need to try to get the right browser UA string so we get the best mobile optimized content that's available
Gestures
[P1] one-fingered dragging to scroll pages
[P1] double tap to zoom / unzoom
[P1] pinch to zoom
[P1] long press links for context menu (open in new tab, etc)
[P2] long press text to activate text selection mode
[P3] two-fingered side to side dragging for back / forward controls
[P2] pull down on header to reveal tabs tray
[P3] pull down on content to reveal home screen / awesomebar
[P1] Awesome Screen
[P1] frecency algorithm applied to Top Sites / Search filter
[P1] top visited sites
[P1] bookmarks
[P1] history: Today, Yesterday, This Week, Last Week
[P3] web search suggest http://bit.ly/w5Usqp
[P2] folders (used for synced desktop bookmarks folders)
[P1] Tabs
A way to access tabs:
- New tab
- Switch Tab
- Close Tab
- navigate through many tabs
[P2] Start Page
Visually rich page that displays:
- top visited sites
- recent tabs (Session History)
[P?] Persona
Ability to sync bookmarks, history with desktop and all other platforms
^ If we do this we should try for remote tabs as well
[P?] Add Ons
Support for installing add ons
[P3] Settings [currently this is handled by the Android OS, probably will be moved to the global Settings]
[P3] General
- About Nightly
- Sync
[P3] Content
- Character Encoding
- Plugins
- Text Size
[P3] Privacy / Security
- Clear History
- Clear Private Data
- Do Not Track
- Remember Passwords
- Enable Cookies
- Send Performance Data
- Use Master Password
Dependencies
Largely dependent on a new Browser API bug 693515
M2 - Demo Phone
mozbrowser{loadstart,loadend,locationchange} events for <iframe mozbrowser> bug 710231>titlechange event bug 719459iframe scrollingWindow.top should stop at the iFrame to prevent parent navigation & frame busting(bug 704037)
M3 - Product Phone
- stop method bug 709759
- iconchange event bug 719461
- Need to make popup windows (e.g. alert, authentication and window.open) work bug 716664
- window.open should now work bug 721777
- Need a better solution for ignoring X-Frame-Options headers for <iframe mozbrowser> elements (B2G currently just has a pref which disables them for whitelisted domains)
- Find a way to use the iframe's window.history instead of having to re-implement the history API inside the app. (some discussion in bug 708179)
- Better solution for setting a window.top boundary on browser elements, using process separation
OS Dependencies (On Android)
We would need to know how these areas are handled on Gaia / B2G in order to design an appropriate browser UI
- Back Button
- Menu (contains secondary browser controls / settings)
- Settings
- Download Manager
- Copy and Paste
Design
UX: Visual Design
- forms: curved tabbed shape
- colour: blue, gray field colours and firefox orange as accents
- styling: textures, drop shadow = sense of touchable UI elements
- iconographic metaphors: use established icon metaphors
UX: Interaction
- layout: access to key features is located in common spots (close parallels to android fennec)
- content is king metaphor: content is the main focus point, UI elements are secondary and hidden unless invoked by the user