Mobile/Desktop Extension
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?