Mobile/Archive/PageInteractions

From MozillaWiki
Jump to: navigation, search

Summary

Because of the panning behavior in Firefox Mobile, mousemove events are not dispatched to websites. That can break many popular web applications, like Google Maps, as well as any drag-n-drop functionality on a web page.

Firefox Mobile should be able to pass mousemove events to webpages that listen for the events. At the same time, we should not break chrome-level panning (sidebars and titlebar).

Current Status

Design for preliminary behavior has been completed. We are ready to start implementing.

Next Steps

  • Implement initial design
  • Test the effectiveness of the approach

Related Bugs

bug 441590

Team

  • Design: madhava
  • Team Members: vingtetun, mfinkle

Designs

Madhava, Stuart and Finkle talked through an initial design. The high points are:

  • Use "getListenerInfoFor" to see if a content element wants to receive a mousemove event. If so, displatch it like we do for mousedown and mouseup. See http://mxr.mozilla.org/mozilla1.9.2/source/content/events/public/nsIEventListenerService.idl
  • If we are displatching mousemoves to the content, we need to create a finger-sized border area around the chrome window. Any touches the start in this border will _always_ start chrome panning and will _not_ be redispatched to content - no matter what.

Goals/Use Cases

  • Support more webapps - ones that use mouse interactions.

Non Goals

  • Support every webapp and every edge case.