Firefox/Projects/Multitouch
Pitch
This project aims to improve Firefox support for touchscreen devices. These improvements include making the browser experience better for users of touch screens (on desktop and mobile) and making it possible for webpages to make use of this new form of user input.
Goals
- Allow users to interact with the browser via touchscreens
- Provide good usability for surfing the web
- Feature a new form of input method and allow web developers to make use of it
- Support this API in Desktop and Mobile
Non Goals
- Implement advanced form of interactions such as custom gestures
- Alter any behavior for non-touchscreen users
Status
- IN FLIGHT
- project lead: felipe
- project members:
- started implementation, working on two fronts
- tracking bugs: bug 548100
UX front
Some bugs:
- bug 547997 – Perform hit target detection/correction on tap clicks
- bug 547996 – Be able to tell when a click was generated by touch
- bug 548005 – Browser zoom should stay centered when coordinates are available
- bug 548012 – Browser zoom should be cancelable to be handled by webpage
- bug 549446 - Possibility to hide brower's scrollbars
Multitouch API front
- bug 508906 [Win7] bug 544614 Fennec
- At the moment, experimental patch for Windows 7 present on Bug 508906.
- Stuck in two issues:
- Waiting for a real (draft) spec to be published
- Thinking on how to deal with Windows 7 limitation that we cannot get gestures and raw data at the same time
- Working on plan of steps around these issues
Timeline / Milestones
The following set of steps represent the main plan to be able to ship the new API by taking into account the 2 issues above
- Work on our events implementation for desktop and mobile to get them close to a possible spec (following smaug's proposal?)
- Get rid of the manual document.multitouchData switch and work on switching modes when the page requests any touch events [how to do this on Dependencies section]
- This will deactivate page scrolling and win7 gesture recognition
- [LANDING 1] Deliver the raw events input first
- Check on using windows gesture processors or implement our own gesture engine
- [LANDING 2] Deliver the gesture events
- Re-implement [kinetic] panning on our engine for the pages using the touch events
- [LANDING 3] Deliver panning on our engine
Note 1: for pages that will not make use of the touch apis, nothing will change, and we will continue to use window's own gesture and scrolling processors. If, after LAND 3 or later we think our own stack is good enough to replace windows's one we can make the full switch
Note 2: Most demos out there related to touch (e.g. [1]) never combine it with a page with scrolling, so disabling it as a first step doesn't seem to be a big problem.
Delivery
- TBD
Constraints
- TBD
Dependencies
- Most of the work right now is focused on Win7 only for being the only OS to provide a standard API for multitouch
- Keep an eye on the native widget removal project because it directly impacts this one
Testing
- TBD - We would need the regular testing schemes for events, plus some manual testing or simulation of multitouch events from the OS
- [perf]
- [compatibility]
- [security]
Related Projects
- Multitouch Polish - old project page
- Windows 7 features