FxSiteCompat

From MozillaWiki
Jump to: navigation, search

The Firefox Site Compatibility (FxSiteCompat) project tackles the backward compatibility and regressions of the Firefox Web browser, both on desktop and mobile, and engages developers better.

Motivation

Web site breakages lead to a bad user experience and reputation among Firefox users and Web developers regardless of the reason. We could avoid such situations as much as possible by providing helpful resources and encouraging better communication between Mozilla and developers. Ultimately, this project aims to minimize the number of regressions in Firefox OS that may annoy app developers.

Though Mozilla has the Developer Engagement team and the Compatibility team, and the Add-ons Developer Relations team offers the add-on compatibility docs, no employees are working on the following areas for now. That's why we are actively working on this community effort.

Mission

  • Improve the Firefox user experience by avoiding site breakages
  • Engage Web developers better using various channels
  • Make Firefox a great brand and robust Web platform for millions of users

Focus Areas

Backward Compatibility

Objectives

  • Avoid Web site breakages due to backward compatibility changes in Firefox
    • Firefox has brought many changes to the Web platform features to improve its standard compliance and interoperability. We should let developers know those changes are necessary to keep up with this HTML5 era.

Activities

Examples

  • Firefox 16: The support of the Microdata API broke the popular Movable Type blog platform, because the app was using the itemId property (Bug 591467)
  • Firefox 17: The change of Firefox user agent string broke many sites, because they were relying on the older format (Bug 588909)
  • Firefox 17: The removal of the Privilege Manager broke some sites, because the non-standard netscape.security property was used for UA detection (Bug 791526)
  • Firefox 18: The support of String.prototype.contains broke many sites using Mootools, because the framework had their own implementation (Bug 789036)
  • Firefox 23: The support of the mixed content blocker broke many sites, because of their bad security practice (Bug 844556)
  • Firefox 25: The support of Array.prototype.find broke sites using Sugar, because the library had their own implementation (Bug 903755)
  • Firefox 29: The removal of window.controllers broke many sites, because the non-standard property was widely used for UA detection (Bug 1010577)

Firefox Regressions

Objectives

  • Avoid Web site breakages due to regressions in Firefox
    • "Given enough eyeballs, all bugs are shallow."
    • Because Firefox OS is rarely or never updated depending on the market, regressions can give developers headaches more than the standalone Firefox browser. The number of regressions should be minimized as possible.

Activities

  • Find regressions and get them fixed as soon as possible — (No specific actions taken yet)
    • Build a robust Aurora community of Web developers and encourage them to test their sites with one of the latest Aurora builds
    • Commit many automated tests
    • Observe new bug reports on Bugzilla
    • Contact developers to help fix their problematic sites
    • Provide an easier way for Web developers to report regressions
    • Post an article to Mozilla Hacks to call for help
  • Post-release feedback monitoring
    • Search Google, Twitter, SUMO, Firefox Input, mozillaZine Forums and Stack Overflow to find regressions, every time a new version is shipped
    • If a regression is found in the final version of Firefox, tell developers about it ASAP via Twitter, Facebook and Google+, with a workaround if available, to avoid confusion
    • Contact affected sites and users to help workaround the issue
    • Involve in related bugs to fix it sooner
  • Research real-life examples (in progress)

Examples

Notes

Project status

How to write a Firefox Site Compatibility doc

(WIP)

Discussions

Members