Platform/2014-Q2-Goals

From MozillaWiki
Jump to navigation Jump to search

Platform

2014 General Goals

GFX

Items marked here with release 31 and 32 are part of the Q2 landings.

Layout

  • [ON TRACK] Table Rendering with DisplayLists
  • Layout to Moz2D
    • [ON TRACK] Migrate SVG to Moz2D (bug 703159)  
  • GFx work items
    • [ON TRACK] E10S BasicCompositor
    • [ON TRACK] GFx tiling
    • [ON TRACK] Accelerated Filters
      • spec work
      • shader & support work
  •  CSS Flexbox  
    • [ON TRACK] pagination
    • recently-finalized spec changes (abspos, min-width, flex sizing) (874718, 984711, 985304)
  • Animations & Transitions
    • [ON TRACK] transitions/animations spec editing
    • [ON TRACK] transitions refactoring to match new spec (960465)
    • [ON TRACK] frame reconstruction (625289)
  • OMTA on non-B2G Platforms (980770)
    • [ON TRACK] test_animations covering OMTA
    • [ON TRACK] fix correctness bugs (cascading, etc.)
    • [ON TRACK] turning on on other OMTC platforms (Mac/Android)
  • Web animations:
    • [ON TRACK] Spec an API for querying basic properties of running CSS animations/transitions
  • Ship and/or unprefix:
    • [DONE] position:sticky
    • [ON TRACK] Font-features that need fallback support (eg. small-caps)
  • 3D Transforms
    • interop bugs and spec improvement (bug 976365)
    • implement preserve-3d proposal
    • perf work
  • Font Inflation and Reflow-on-Zoom
    • both implementation bug fixing and spec work
    • -moz-text-size-adjust
  • CSS Projects with Adobe
    • [ON TRACK] CSS Filters
    • [ON TRACK] CSS Masking
    • [ON TRACK] CSS Compositing
  • ImageLib
    • [ON TRACK] RasterImage for multiple images
  • CSS Fonts
    • [ON TRACK] font load events

Media

  • [MISSED] Pref on MSE/VP9 for Firefox 31
    • Expecting to land in Firefox 32 (see below)
  • [ON TRACK] Pref on MSE/VP9 for Firefox 32
  • [MISSED] Enable MSE/MP4 on Windows for Firefox 32
    • Expecting to land on 33

DOM

  • [DONE] Implement Xrays to 3 out of the following: Functions (bug 976148), Objects (bug 987111), Array/Array-like (bug 987163), and Error (bug 987669)
  • [AT RISK] Get rid of the long tail of C++ objects that are still exposed to the web using XPConnect
    • We had less time for this than expected due to a previous quarter missed goal taking longer than expected to finish up (now done). Lots of pieces moving here already though.
  • [ON TRACK] Get LeakSanitizer builds enabled by default (bug 988041)
  • [DONE] Identify and fix (DOM stuff, at least) hotspots in b2g app startup (smaug)
  • [AT RISK] refactor how tokenizer and tree builder use buffers to reduce memory pressure crashes (hsivonen)
    • Henri has spent a lot of time with other responsibilities
  • [AT RISK] Land all non-cache bits of Service Workers preffed-off (on is a bonus) on m-c (nsm)
    • we're doing well here but we only have a few weeks left in Q2 and lots of reviews need to happen. Some in-person reviews the last week of June will help.
  • [ON TRACK] Help guide and review requestAutocomplete backend implementation (bug 939351) (likely smaug)
    • The DOM team has been responsive to requests and implementation by the Firefox team is progressing.
  • [CARRY OVER] implement <picture> (bug 870022) (johns)
    • Things are looking good for landing here now that srcset is complete.
  • [AT RISK] Ensure plugins are shippable for e10s (sort of bug 874016) (johns)
    • John is working on this but <picture> took more of the quarter than expected.
  • [AT RISK] Implement Shadow DOM :host style selector (bug 992245) (wchen)
    • wchen got caught up with other Web Components issues affecting gaia so this may not happen in Q2.
  • [DONE] Enable Shadow DOM for certified apps (bug 1000199) (wchen)
  • [DONE] Define a plan for how to instrument code that triggers COW of pages post forking in a post Nuwa world (bonus if we can actually build that tool this quarter)
    • We have patches for this already! Not landed, but that's not our goal.

WebAPI

  • [ON TRACK] finalize moving main thread IDB to PBackground including blobs (bent)
    • Lots of other things pulled bent away from this but it's progressing well when he has the time to work on it.
  • [AT RISK] Convert DataStore cursors and DataStore object itself from JS to C++ (baku)
    • DataStore Service didn't land until late in the quarter so these other parts of DataStore are at risk for landing by the end of June.
  • [AT RISK] Finalize moving quotamanager to PBackground (janv)
    • Jan took care of a few other pieces of the move to PBackground and once FileHandle changes land, this can happen; unlikely for the end of June.
  • [ON TRACK] clarify design and spec issues around Fetch for Service Workers to ensure they're implementable (annevk)
    • Good progress is being made here.
  • [AT RISK] implement gecko side of manifest spec (bug 997779) (marcosc)
    • Implement processing of V1 members (name, orientation, display, icons, start_url).
    • Finish implementation by Monday, June 30.
    • This is waiting on reviews and with vacation, is at risk for happening by the end of June.
  • [AT RISK] finish device orientation spec with Mounir (marcosc)
    • Write tests for all conformance requirements.
    • Publish LC by Monday, June 30.
    • work has been done here and is waiting on the review of others and integration afterward

JS

  • [AT RISK] 941796 - Generational GC on Firefox OS [Scale FirefoxOS]

Accessibility

  • [ON TRACK] Sandboxing support: create and update cached structure of the accessible tree in the parent process (tbsaunde)
  • [AT RISK] Windows support: Land basic UIA text navigation implementation (surkov)
  • [ON TRACK] FFOS/GAIA: fix 9 P1 Gaia accessibility bugs (there are 9 total at time of writing)
    • Priorities may shift as there is flux and possible force multiplier work (e.g. web components).

Perf

  • Improve Firefox responsiveness & startup time:
    • Finish session-store work:
      • [AT RISK] Improve session-store startup time bug 987592
      • [ON TRACK] Store less data in the sessionstore.js file bug 943352
      • [ON TRACK] Break up janky operations into smaller chunks bug 984886
    • Start eliminating top main-thread I/O offenders reported to Telemetry bug 572459:
      • 1. [DONE] Remove main-thread IO from background update of {profile}\blocklist.xml bug 989419
      • 2. [DONE] Avoid main-thread IO in Sync code bug 988301
      • 3. [DONE] Avoid main-thread IO for {profile}\addons.json bug 988292
      • 4. [DONE] Search service was falling back to synchronous initialization bug 785487
      • 5. [DONE] User dictionary (persdict.dat) read on the main thread bug 880864
      • 6. [DONE] Avoid main-thread IO for {profile}\blocklist.xml bug 988304
    • [ON TRACK] New storage system for prefs bug 897049
    • [DONE] The add-on compatibility dialog should not interrupt startup unless strictly necessary bug 760356
    • [ON TRACK] Investigate feasibility of starting Flash plugin instances asynchronously bug 998863
  • Fill gaps in test coverage (vs press benchmarks) and prevent regressions:
    • [ON TRACK] Create a Talos test for "cold" startup time bug 936617
    • [DONE] Create a Talos test for time to restore a previous session bug 936630
    • [DONE] Integrate our new power-profiling test into the test infrastructure bug 962715
    • [ON TRACK] Automatically detect new sources of main-thread I/O in tests bug 998794
    • [DONE] Monitor & track regressions in important Talos tests during each release cycle
  • Partner with other teams on projects with big perf impact
    • [ON TRACK] Assist Necko team with measuring performance of new network cache
    • [DONE] Make it easier to debug performance regressions by (optionally) capturing profiles during Talos tests bug 967619
    • [ON TRACK] Expand use of the T100 tablet/laptop as a reference slow device
    • [ON TRACK] Work with fx-team on ongoing regressions
    • [ON TRACK] Add performance tests for OMTC/APZC
  • Study impact of extensions on Firefox performance
    • [ON TRACK] Create a Telemetry dashboard to expose add-ons' impact on Firefox startup time
  • Grow community:
    • [ON TRACK] Mentor at least 5 new external contributors

Networking

  • [ON TRACK] Mitigate CSRF attacks against internal networks (block rfc 1918 local addresses from non-local addresses) (bug 354493) (sworkman)
  • [DONE] HTTP/2: implement draft-11 of HTTP/2 spec and continue participating in spec development. (hurley / mcmanus)
  • [DONE] Turn on new HTTP cache in nightly (honza / michal)
  • [ON TRACK] NetworkLinkService should be enabled so Necko can respond to network changes (bug 939318) (bagder)
  • [ON TRACK] B2G: Provide way to "set network offline" per app (bug 786419) (valentin)
  • [DROPPED] Gather data and produce a report on performance wins vs resource costs of the seer on several desktop and mobile scenarios. (hurley)
    • We've decided to re-name the seer the "network predictor" and to re-write it using the HTTP cache instead of SQLite, with Q3 target. So no performance numbers will be available this quarter.

Mobile

A*Team

full list: Auto-tools/Goals/2014Q2

  • B2G
    • [ON TRACK] Deliver v2 of the FxOS Certification Suite
    • [MISSED] Build a common harness for Python and NodeJS Marionette tests, and enable them to run on devices and emulators
      • on-track for delivery in early Q3
  • Performance
    • [DONE] Deploy a Talos dashboard that will allow Talos regressions to be more easily "sheriffed"
    • [DONE] Improve Eideticker's ability to scale
    • [DONE] Prototype Datazilla alerts for Talos and Eideticker data
  • Mobile
    • [DONE] Move Android 2.3 reftests off of tegras
    • [DONE] Designate autophone and/or Eideticker as official perf systems for Android 2.3
  • Bugzilla
    • [DONE] Migrate BMO and upstream Bugzilla CI from Tinderbox to travis-ci.
    • [DONE] Continue and deepen analysis of BMO perf data.
    • [DONE] Determine list of possible improvements, estimate gains, prioritize, and implement.
  • Treeherder
    • [DONE] Deploy a production version of Treeherder in coordination with Laura's team
    • [AT RISK] Define and implement a sheriff transition plan to move from TBPL to Treeherder
    • [DONE] Have Treeherder report data to OrangeFactor
  • Community
    • [DONE] Refresh our list of "good first bugs" on a monthly basis
    • [DONE] Review these and make sure they have adequate information for contributors to start with
    • [ON TRACK] Keep the numbers of open good first bugs steady or increasing

Web Engineering

  • crash-stats
    • [DONE] Prototype work to support 100% crash processing for support classification and better user retention after a crash [Get Firefox on a Growth Trajectory / Scale FxOS]
    • [DONE] Implement symbol upload by partners [Scale FirefoxOS]
    • [ON TRACK] Better search, graphs, and correlation reports to support QA and Crashkill teams [Get Firefox on a Growth Trajectory / Scale FxOS]
    • [ON TRACK] Infrastructure improvements to support shipping engineer-requested features faster [Get Firefox on a Growth Trajectory / Scale FxOS]
  • FHR
    • [DONE] Research and develop a plan for addressing sideloading [Invest in Sustainability]
  • DXR
    • [ON TRACK] Move to a more scalable data store to enable indexing all trees [Scale FxOS]
    • [DROPPED] Implement search result mixing [Get Firefox on a Growth Trajectory / Scale FxOS]
    • [DONE] Improve documentation and install to lower the bar for contribution [Enable Communities with Impact] Here it is.
  • l10n
    • [ON TRACK] (stretch) Remove dependency on buildbot [Enable Communities with Impact]
  • Plugincheck
    • [DONE] Ship new version to support Firefox 29+ [Get Firefox on a Growth Trajectory]
  • Air Mozilla
    • [DONE] Open event editing to all signed in users, wiki style [Enable Communities with Impact]
    • [DONE] Protoype ability to search by transcript [Enable Communities with Impact]

Full list

SUMO and Input

  • SUMO
    • [DROPPED] Implement interactive onboarding for new community volunteers [Enable communities with impact]
    • [ON TRACK] Implement an initial community hub [Enable communities with impact]
    • [DONE] Prototype BuddyUp app: interactive support for FirefoxOS [Scale FirefoxOS]
  • Input
    • [DONE] Integrate with Gengo translation API to improve localization [Scale FirefoxOS]
    • [DONE] (stretch) Implement and roll out new product-centric dashboards [Scale FirefoxOS]

Full list

Release Engineering

  • [ON TRACK] Plan and implement a sustainable approach to releases on legacy Android platforms [Get Firefox on a Growth Trajectory]
  • [ON TRACK] Support infrastructure work on closing scl3 datacenter to save cost [Get Firefox on a Growth Trajectory]
  • [AT RISK] Implement automation (slave loan tool) to reduce manual work [Get Firefox on a Growth Trajectory]
  • [ON TRACK] Stand up device builds for b2g reference phones [Scale FirefoxOS]
  • [DONE] Remove dependencies on and turn off deprecated systems [Get Firefox on a Growth Trajectory]
  • [ON TRACK] Audit monitoring and instrumentation of release systems with a view to getting better insight, enabling better agility [Scale FirefoxOS]
  • [AT RISK] Continue Balrog (new AUS) rollout to beta, and prepare for release/ESR [Get Firefox on a Growth Trajectory]
  • [ON TRACK] Automate merge day processes [Get Firefox on a Growth Trajectory]
  • Continue infrastructure improvement program:
    • [ON TRACK] Move more work into the cloud to reduce cost and increase agility [Scale FirefoxOS]
    • [AT RISK] Improve build and test environment for Windows [Get Firefox on a Growth Trajectory]
    • [AT RISK] Get taskcluster ready to replace buildbot in Q3 and Q4 [Scale FirefoxOS]
  • Joint goals with A-team:
    • [ON TRACK] Design an API that will be the single source of truth about release information [Get Firefox on a Growth Trajectory]

Full list

Release Engineering Operations

  • Datacenter Consolidation
    • [ON TRACK] Migrate SCL1 infrastructure to SCL3 and close SCL1 datacenter. bug 981124 and bug 961164 [Datacenter consolidation and cost reduction]
    • [DONE] Decommission deprecated hardware. bug 997213 [Datacenter consolidation and cost reduction]
  • Build/Test System Performance Enhancements
    • [DONE] Create a POC for Windows build systems on seamicro/SSD hardware and replicate to replace most of the existing Windows build infrastructure if successful. bug 982261 [Get Firefox on a Growth Trajectory]
    • [DROPPED] Create a POC for OS X build systems using SSD drives and replicate to the rest of the existing OS X build infrastructure if successful. bug 992364 [Get Firefox on a Growth Trajectory]
    • [DROPPED] Architect and deploy a 3-node Ceph Prototype instance if tests on the existing POC show significant build speed increases. bug 995512 [Get Firefox on a Growth Trajectory] - ceph did not prove appropriate for this use
  • Build/Test System Self-Serve Re-architecture
    • [ON TRACK] Design a private cloud deployment architecture for bare metal and produce a POC that supports Ubuntu 12.04 test machines. bug 963165 [Get Firefox on a Growth Trajectory]
    • [ON TRACK] Develop a new image creation solution for 2008R2 build machines which can be used to deploy on bare metal. bug 798657 [Get Firefox on a Growth Trajectory]

Full list

Developer Services

  • [ON TRACK] Review and scale out git architecture [Scale FirefoxOS]
  • [ON TRACK] (with B-team) Improve performance and review tools for Bugzilla [Get Firefox on a Growth Trajectory / Enable communities with impact]
  • [DONE] (with A-team) Deploy better tree visualization tools [Get Firefox on a Growth Trajectory / Enable communities with impact]
  • [DONE] Plan and prototype future release engineering architecture [Get Firefox on a Growth Trajectory / Scale FirefoxOS]

Full list

Security & Privacy

Full list here: SecurityEngineering/2014/Q2Goals

  • Web Platform Security
    • [ON TRACK] plan out replacement for nsIContentPolicy and start executing (dri=tanvi, +sicking,ckerschb)
    • [ON TRACK] Make new CSP parser on by default in nightly (dri=ckerschb, +grobinson,sstamm)
    • [DONE] Land WebCrypto (dri=rbarnes) (tracking bug 865789)
  • Secure Client Platform
    • [ON TRACK] (moved to blassey) Get open.h264 plugin sandboxed on windows [dri=sstamm, a=tabraldes]
    • [ON TRACK] (moved to blassey) sandboxing logging (warning mode or logging of violations on TBPL) [dri=bobowen, a=sstamm,tabraldes]
  • Secure Communications
    • [DONE] Land key pinning [dri=cviecco, a=keeler,mmc]
    • [DONE] mozilla::pkix on by default, riding the train to 31 [dri=keeler, a=cviecco]
    • [AT RISK] BONUS: Deploy UI for cert error reporting [dri=grobinson]
  • Tracking Protection / Privacy
    • [ON TRACK] Get through the next 2 releases of Lightbeam [dri=mmc, a=grobinson]

Firefox and Platform Security

  • [ON TRACK] Create list of 3rd party code in Firefox with versions, upstream versions, and source locations
  • [CARRY OVER] Create fuzzer for WebNFC
  • [ON TRACK] Create IndexedDB fuzzer (make langfuzz work for async web apis)
  • [ON TRACK] Fuzz JS on ODROID ARM hardware to find bugs masked in Simulator
  • [NEW] incorporate randomized build configs into JSFunFuzz harness
  • [CARRY OVER] Fuzz Workers and add fuzzing support for Shared Workers
  • [NEW] Create tool to auto-incorporate .webidl interfaces into DOM fuzzer
  • [ON TRACK] Learn peach well well enough to create new pits. Test and document use of Peach on Linux
  • [ON TRACK] Work with various Firefox engineering teams to develop an alternative Firefox review process

Games Program

  • Documentation
    • [DONE] Emscripten Documentation
      • Primary goal is to get a contractor, candidate identified, statement of work underway.
    • [ON TRACK] MDN General Documentation
      • Resources are attached, Chris Mills is driving it and games program groups are writing articles.
  • [ON TRACK] Partner approval of first B2G Emscripten Game Project
    • Work week completed, graphics team has some fixes for 1.4 that appear low risk and provide 10fps we needed.
    • Bug count is down to a handful after the week and we will be sending a Release Candidate to Disney as soon as the graphics fixes land.
  • [DONE] Train up replacement for Martin on Project Management related issues.
    • Erin training is ongoing and she is already taking the lead on projects.
    • No concerns of transitioning ownership of PM issue to her at this point.
  • [ON TRACK] QA
    • Process is being worked out using the partner project
    • Still need to improve general testing of game related features but expect to complete this once partner project is shipped.
  • [CARRY OVER] Game Focus Benchmarking
    • Project currently at risk as no resources are attached to the project.
    • WebGL benchmarking is not currently automated and work is stalled.