Mobile/Desktop Extension

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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?