Firefox Core Engineering

From MozillaWiki
Jump to: navigation, search

Function

The purpose of this team is to address needs that fall between Toolkit and Platform, with an emphasis (currently) on improving stability, quality, and performance – supported by empirical data. As such, we overlap a bit with everyone from Gecko, Desktop, Data, and more.

This team grew out of, in part, the Performance Engineering team, and owns some of that team's infrastructure – some performance-related dashboards on telemetry.mozilla.org, crash analysis, hang visualization, etc. It also includes the installer & updater applications.

Personnel

  • Neil Deakin (:enn)
  • Adam Gashlin (:agashlin)
  • Felipe Gomes (:felipe)
  • Matt Howell (:mhowell)
  • Chris HC (:chutten) -- honorary
  • Kirk Steuber (:bytesized)
  • Robert Strong (:rstrong)
  • Gabriele Svelto (:gsvelto)
  • Doug Thayer (:dthayer)
  • David Durst (:ddurst)

Goals

  1. Enabling stability
    In general, things we do should be tied to enabling stability – so, making it measurable and/or addressing issues.
  2. Supporting performance improvements
    Improving performance is certainly everyone's job—not just our team—but we hold the keys for some distinct historical pieces of the analysis that allow people to understand what needs to be improved. This is primarily, but not limited to, telemetry and data analysis.
  3. Improving the user/contributor experience
    This one is the weirdest: it covers things that we can do to further the web, and improve the experience for our users – both end users and code contributors (some examples: Flash blocking, XUL performance analysis). This category is the most open-ended for future expansion.

Communication

You can typically find us in:

IRC

  • #fce (primary)
  • #developers
  • #e10s
  • #fx-team
  • #perf
  • #releng
  • #telemetry
  • #uptime

Mailing lists

  • dev-platform
  • fhr-dev
  • firefox-dev

Process and Queuing

There is currently no regimented process for regular triage of candidate work. Needs usually filter down through performance analysis and experimentation.

All actively tracked work is marked with the whiteboard "[fce-active]" (for now). Or look at the #Active Bug List on this page.

Major initiatives are listed on this page.

Owned Infrastructure (needs updating per 1298080)

telemetry.mozilla.org Dashboards

  • Update Orphaning: functional

symbolapi.mozilla.org

This is the symbolication server (aka "Snappy Symbolication Server") used by platform developers and performance dashboards. It is not used for the analogous process on Socorro. This is currently slated to be replaced by the owner of symbols, peterbe. See Tecken.

Historical knowledge areas

  • back-end of the user interface/XUL, et al (enn)
  • e10s system add-ons & system add-ons for feature rollout (felipe)
  • e10s data analysis (chutten)
  • install and update (rstrong, mhowell)
  • telemetry, histograms, pings, and data reporting (chutten)
  • stack-walking, breakpad, and crash pings (gsvelto, ccorcoran)
  • flash plugin-related (bytesized, felipe, dthayer)

Pipeline

Get More Data Faster

We need to reduce known blind spots and barriers to getting data AND commit to non-ADI based metrics. For this, our goals are to:

  • process stack data in crash pings into a queryable result (1310695)

See the roadmap here.

Set Flash to CTA by default

This includes:

  • prefer fallback content to Flash (1277346)

See the details here.

XBL/XUL replacement

TBD with and after Browser Architecture's recommendations.

Policy Engine

When implemented, this should provide an API for pre-defined policies to support enterprise management of Firefox deployments.

Migration performance optimization

With bug 1332225, investigate and optimize the migration process for new users.


App Updater and Installers

Update Orphan remediation

Remediation efforts have been tested for both system add-on capable and non (44.x and 43.0.1, respectively). Efforts are identified by ongoing analysis, including the update orphaning dashboard. This has yielded such things as:

  • continue the download instead of starting over after other networking errors occur (1309124, 1348087)
  • create an Update Agent, responsible for running independently, daily, and downloading an update if found (1343669)
  • create a dashboard for non-orphan telemetry analysis

Installer

  • rename installed links to "Firefox" instead of "Mozilla Firefox" (1413295)
  • stub installer metrics (995794)
  • investigate MSI-based (read: non-NSIS) installer


Current projects

2017 Q4 goals

  • APP UPDATE (see roadmap):
    • Allow update download to continue in the background (beyond Firefox session)
  • INSTALLER (see roadmap):
    • Outline plan for MSI-based installer
    • Support onboarding
  • CRASH MACHINERY (see roadmap):
    • Land support for CFI-based stackwalking
    • (Implement crash ping signatures) -- relies on Data Pipeline
    • (Start querying stacks received from crash pings for stability monitoring) -- relies on PI
  • PERFORMANCE:
    • Assist with measuring (and identifying) jank and hang via BHR
    • Assist with performance improvements for migration
  • ENTERPRISE:
    • Prototype policy engine and policies MVP
  • XUL:
    • Assist Browser Architecture team's flexbox recommendation effort

Potential future projects

This list should be considered a work in progress. Decisions will be reflected for a particular quarter.

  • cmore is pitching that Firefox optimizes the user paths that support retention -- which could also include fixing paths where retention drops. This work probably involves a system add-on that initiates event-based recordation, as well as the analysis and remediation of the root cause (this is pending dcamp approval).
  • DLL injection (see https://bugzilla.mozilla.org/show_bug.cgi?id=1306406) needs investigation/implementation of a dynamically updateable DLL blocklist (possibly using Kinto?).
  • Mossop (& browser arch) has begun the de-XBL. Overall browser architecture (& UI architecture) could be game in the near future.


(partial) Active Bug List

Full Query
ID Product Summary Priority Status Whiteboard Keywords Assigned to
798847 Firefox "Time Remaining" missing while downloading P3 NEW [stubv3-][fce-active] uiwanted
799861 Firefox Stub installer does not detect proxy (Win7) P3 NEW [stubv3-][fce-active]
998721 Release Engineering Consider serving updates for 3.x and lower as minor updates to avoid displaying the billboard. P3 NEW [kanban:engops:https://mozilla.kanbanize.com/ctrl_board/6/2333] [fce-active] Nick Thomas [:nthomas] (UTC+13)
1256952 Core [e10s] Caret breaks in contenteditable elements when I drag anything over them (without dropping) P2 REOPENED [fce-active] Neil Deakin
1258895 Core Make test_bug426082.html and test_bug656379-1.html work with e10s -- NEW btpp-active [fce-active]
1280469 Firefox [meta] Client-side stack walking P2 NEW [fce-active] meta Gabriele Svelto [:gsvelto]
1282776 Core Some plugin-process crashes are not marked as plugin crashes (submitted-from-infobar related?) P2 REOPENED [fce-active] qawanted Gabriele Svelto [:gsvelto]
1296274 Toolkit Evalute symbolicating stack traces when doing client-side stack walking -- NEW [fce-active]
1301572 Toolkit Stop update staging when there is a shutdown request P2 NEW [fce-active]
1307153 Toolkit Add support for gathering client-side stack traces to Fennec -- NEW [fce-active]
1310674 Core [meta] Get more data faster. P2 NEW [fce-active] meta
1310680 Mozilla Metrics Update all usage of datasets that rely on crash ping aggregation -- NEW [fce-active]
1316366 Toolkit include information from update-settings.ini in update ping? -- NEW [fce-active]
1323979 Firefox Re-engineer the crash handling code to make the crash dump lifecycle robust -- ASSIGNED [fce-active] Gabriele Svelto [:gsvelto]
1324801 Toolkit Telemetry should throttle pings to a sane limit per day P3 NEW [measurement:client][fce-active]
1325121 Firefox Properly document stub installer ping P3 NEW [fce-active]
1330462 Firefox Using a different search engine to search for the same thing one just searched for is painful P2 NEW [fxsearch][fce-active] Doug Thayer [:dthayer]
1336587 Data Platform and Tools Signatures for crash pings P2 ASSIGNED [fce-active] Adam Gashlin [:agashlin]
1348273 Toolkit Make AnnotateCrashReport() more robust by turning annotations into a well known list of constants -- ASSIGNED [fce-active] Gabriele Svelto [:gsvelto]
1351509 Toolkit Reorganise information on the Flash plugin preferences page -- NEW [fce-active], triaged Bram Pitoyo [:bram] (PTO from 16 Dec – 6 Feb)
1416078 Firefox [meta] modernize crash handling and related areas P2 NEW [fce-active]

21 Total; 21 Open (100%); 0 Resolved (0%); 0 Verified (0%);