Mobile/Desktop Extension

From MozillaWiki
Jump to: navigation, search

This page is a high-level design for an extension which allows you to test and debug websites and web apps in Firefox Mobile, or something very close to it, on your desktop.

Goals

  • Allow people to do as-close-as-possible-to-mobile testing on desktop
  • Make Firefox Desktop a primary and well-loved development environment for mobile websites

We can leverage the strength we have of a single, unfragmented, same-everywhere rendering engine to allow web developers to do mobile development, not on a tiny poky screen with no tools, but on their nice, fast, big-screened desktop machines with Inspector, Firebug, Tilt etc. If we can achieve that, they will love us for it - and it'll be a big boost to both Firefox on Mobile and the open, cross-browser, cross-platform web.

It will also be very useful in Mozilla's mobile evangelism efforts - testers can do preliminary testing, and debug known problems with top sites, much quicker on a desktop machine.

Non-Goals

  • Require user to run an Android emulator
  • Enable use of Firefox Mobile-like chrome (i.e. we don't have to rewrite it in XUL)
  • Make Mobile view toggleable on and off on a per-tab basis (unless this is easy to do) - whole browser is OK
  • Make add-on restartless (but if it is, great)

Requirements

  • Build an add-on, available from Mozilla via AMO
  • Enhance desktop Firefox with necessary hooks or toggles which trigger "mobile behaviour" to make the add-on possible
  • Enable use of mobile-style inputs and interactions, or emulated versions thereof
  • Enable use of all desktop website authoring and debugging tools (Firebug, Scratchpad, Tilt etc.) - i.e. do nothing which breaks them

Features

  • Switch all "mobile behaviour" toggles browser-wide
  • User agent change
  • Viewport size change (with freed-up space available for tools!)
  • Support for different device screen sizes, including excluding space allocated for OS or browser chrome
  • Touch input emulator with mouse click/drag
  • Multi-touch input emulator
  • Location API emulator
  • Emulation for any other APIs from arewemobileyet which are not supported on Desktop (Battery?)
  • Orientation change
  • Zoom/scale (with external controls as well as multi-touch)

Open Questions

  • What are the behavioural differences between Firefox Desktop and Firefox Mobile? Is there a list anywhere? How many are toggleable and how many are not?