Mobile/ARMv6

Product Goals

• Empower communities who depend upon their mobile devices to access the internet on ARMv6 phones - remember that in emerging markets, more users access the Internet via their mobile browser than a desktop
• Introduce support for a new platform in order to increase market installs & share - this also serves as a further differentiator against some of our competition by supporting a varied and large breadth of devices
• Current goal is to support a conservative number of ARMv6 devices in Fx16

It is expected that performance will not be on par as on ARMv7 devices, however overall browsing performance must be usable from a UX perspective for top mobile sites in our supported locales

Market Requirements

Feature page: https://wiki.mozilla.org/ARMv6_support_-_phase_1

Getting down to 600 MHz, 256 MB RAM, 240x240 resolution doubles our addressable market from 40% to 81% of all Android devices.

Quality Metrics

  • Competitive Analysis <== we need this
    • Start-up time comparison between top 3 ARMv6 devices to top 3 ARMv7 devices to stock browser on the top 3 ARMv6 devices to Opera Mobile
    • Performance (scrolling, panning/zooming, checkerboarding) comparison between top 3 ARMv6 devices to top 3 ARMv7 devices to stock browser on the top 3 ARMv6 devices to Opera Mobile
    • Top browser feature comparison
    • Install size of stock browser and Opera Mobile

Overall Value Proposition <== we need this

  • Stability: Less than 5 crashes per ADU
  • Performance: On par with stock browser on top 3 ARMv6 devices
  • UX: Installs and allows typical browsing to top mobile sites
  • Usability: Installs and allows typical browsing to top mobile sites
  • Feature Parity:
  • Minimum System Requirements: ARMv6, 800 MHz, 512 MB RAM, OpenGL support
  • Install size:

https://docs.google.com/spreadsheet/ccc?key=0AukS66vOYHUQdFYzQWhFZjFlczJiVW9DZEF5clpHd2c

Mobile Eng

• Where are we today?
• What's next?

  • No expected impact on Sync from ARMv6. There are potential impacts due to resource-constrained devices (e.g., OOM, slow syncs, poor system responsiveness during syncing), but we hit this today with older ARMv7 devices. C'est la vie.

UX

  • Prepare new set of graphic assets for low density displays (ETA mid-september)
  • bug 716403 Enable scrolling title bar, to maximize the amount of viewable web content on screen
  • Revisit tabs UI to optimize for small screen heights (could include opening the tabs tray wider, or scrolling thumbnails horizontally, etc)
  • Checking behaviours on devices with hardware keyboards -- does the interaction feel right?
    • Awesomebar / search suggest
    • Find in Page
    • Form input / navigation

---

  • What other data do we need in order to understand what the UX requirements are or do we know this information already?
    • It would help us to see a list of any other UX regressions that have been found to date that have not been mentioned above.

QA

Where are we today?
• We have a good baseline in terms of variety testing and an initial bug hunt. However, need to clarity on the quality goals
• Initial Compat Testing

What's next?
• Expand breadth of test plan based upon defined quality targets & crowd sourcing testing
• bug 779410 - Retrofit Web Compat Testing Tool for ARMV6
• Blockers?

Socorro Status

Community

• Building MTD
• Outreach via other developer sites
• What else?

A-Team

  • Where are we today?
    • working on getting builds/tools/tests to run on a beagleboard (armv6 hardware)
    • working with releng to run armb6 builds on existing tegras (non arvm6 hardware)
    • beagleboards are p2 behind existing automation stability and pandaboards online and testing
  • What's next?
    • resolve sutagent issues on the beagle board
    • validate all tests
    • build burnin script (similar to panda burnin script)
    • document instructions for building image/flashing device
    • probably a bunch of other smaller tasks

ARMv6 Reported Issues & Tracking Bugs

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1