Platform/2014-Q2-Goals

From MozillaWiki
Jump to: navigation, search

Platform

2014 General Goals

GFX

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

Layout

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

Media

  • [MISSED] Pref on MSE/VP9 for Firefox 31
    • Expecting to land in Firefox 32 (see below)
  • [MISSED] 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)
  • [MISSED] 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). Everything left on this list is already moving or planned, but will flow out into Q3.
  • [DONE] Get LeakSanitizer builds enabled by default (bug 988041)
  • [DONE] Identify and fix (DOM stuff, at least) hotspots in b2g app startup (smaug)
  • [MISSED] refactor how tokenizer and tree builder use buffers to reduce memory pressure crashes (hsivonen)
    • Henri has spent a lot of time with other responsibilities
  • [MISSED] Land all non-cache bits of Service Workers preffed-off (on is a bonus) on m-c (nsm)
    • While this goal as written is a miss the overall progress towards Service Workers is progressing very well. This missed due to us not getting other resources on this quick enough due to other responsibilities, but velocity is really good now.
  • [DONE] 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.
  • [DONE] implement <picture> (bug 870022) (johns)
    • Things are looking good for landing here now that srcset is complete.
  • [MISSED] 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.
  • [MISSED] 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

  • [MISSED] 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.
    • This work is basically done, but did not land in time for end of Q2.
  • [MISSED] Convert DataStore cursors and DataStore object itself from JS to C++ (baku)
    • DataStore Service didn't land until late in the quarter so not enough time to work on these other parts of DataStore by the end of Q2.
  • [MISSED] Finalize moving quotamanager to PBackground (janv)
    • Jan took care of a bunch of the work leading up to this, but that took longer than expected.
  • [DONE] clarify design and spec issues around Fetch for Service Workers to ensure they're implementable (annevk)
    • ServiceWorker work is not blocked on the Fetch spec at this point, and our implementation of Fetch is moving along.
  • [MISSED] implement gecko side of manifest spec (bug 997779) (marcosc)
    • Implement processing of V1 members (name, orientation, display, icons, start_url).
    • This did not make it due to vacations and the lack of others' review bandwidth.
  • [MISSED] 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
    • a re-write has begun here and it didn't happen by the end of Q2

JS

  • [MISSED] 941796 Generational GC on Firefox OS [Scale FirefoxOS]

Accessibility

  • [MISSED] Sandboxing support: create and update cached structure of the accessible tree in the parent process (tbsaunde)
    • This is in its second review already, so very close to done, just not landed.
  • [MISSED] Windows support: Land basic UIA text navigation implementation (surkov)
    • About 40% completed.
  • [DONE] 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:
      • [DONE] Improve session-store startup time bug 987592
      • [DONE] Store less data in the sessionstore.js file bug 943352
      • [MISSED] 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
    • [MISSED] New storage system for prefs bug 897049
    • [DONE] The add-on compatibility dialog should not interrupt startup unless strictly necessary bug 760356
    • [DONE] Investigate feasibility of starting Flash plugin instances asynchronously bug 998863
  • Fill gaps in test coverage (vs press benchmarks) and prevent regressions:
    • [DONE] 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
    • [DONE] 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
    • [DONE] 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
    • [DEFERRED] Expand use of the T100 tablet/laptop as a reference slow device
    • [DONE] Work with fx-team on ongoing regressions
    • [DEFERRED] Add performance tests for OMTC/APZC
  • Study impact of extensions on Firefox performance
    • [DEFERRED] Create a Telemetry dashboard to expose add-ons' impact on Firefox startup time
  • Grow community:
    • [DONE] Mentor at least 5 new external contributors

Networking

  • [DONE] 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)
  • [MISSED] NetworkLinkService should be enabled so Necko can respond to network changes (bug 939318) (bagder)
    • subtle issues and feature creep. Should land in first half of next quarter (and we're doing a Q3 goal with followup work)
  • [MISSED] B2G: Provide way to "set network offline" per app (bug 786419) (valentin)
    • We had to re-architect this now that apps can share a single B2G process. Patch in progress, should be done within a week or two.
  • [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.
  • [DONE] Download manager sometimes thinks that incomplete downloads are complete (bug 237623)

Mobile

A*Team

full list: Auto-tools/Goals/2014Q2

  • B2G
    • [DONE] 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
    • [MISSED] Define and implement a sheriff transition plan to move from TBPL to Treeherder
      • Production deployment took much longer than anticipated; sheriff transition to occur in first half of Q3
    • [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
    • [DONE] 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]
    • [DONE] Better search, graphs, and correlation reports to support QA and Crashkill teams [Get Firefox on a Growth Trajectory / Scale FxOS]
    • [DONE] 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
    • [MISSED] Move to a more scalable data store to enable indexing all trees [Scale FxOS]. Plugin API designed and implemented. 4 out of 5 plugins ported. ES query structure benched and proven. ES trigram-accelerated regex matching invented. To do: port indexing to ES, port clang plugin to ES, port filters to ES, port querying machinery to ES.
    • [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
    • [MISSED] (stretch) Remove dependency on buildbot (in progress, will carry to q3) [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]
    • [DONE] 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

  • [DONE] Plan and implement a sustainable approach to releases on legacy Android platforms [Get Firefox on a Growth Trajectory]
  • [DONE] Support infrastructure work on closing scl3 datacenter to save cost [Get Firefox on a Growth Trajectory]
  • [MISSED] Implement automation (slave loan tool) to reduce manual work [Get Firefox on a Growth Trajectory]
  • [DONE] 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]
  • [DONE] Audit monitoring and instrumentation of release systems with a view to getting better insight, enabling better agility [Scale FirefoxOS]
  • [DONE] Continue Balrog (new AUS) rollout to beta, and prepare for release/ESR [Get Firefox on a Growth Trajectory]
  • [DONE] Automate merge day processes [Get Firefox on a Growth Trajectory]
  • Continue infrastructure improvement program:
    • [DEFER] Move more work into the cloud to reduce cost and increase agility [Scale FirefoxOS]
    • [DEFER] Improve build and test environment for Windows [Get Firefox on a Growth Trajectory]
    • [MISSED] Get taskcluster ready to replace buildbot in Q3 and Q4 [Scale FirefoxOS]
  • Joint goals with A-team:
    • [MISSED] 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
    • [DONE] Migrate SCL1 infrastructure to SCL3 and close SCL1 datacenter. bug 981124 and bug 961164 [Datacenter consolidation and cost reduction] - completion date is July 14th
    • [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] - build times did not expereince the expected time reduction
    • [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
    • [MISSED] 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] - we expect this to be finished within the first few weeks of Q3
    • [DONE] 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

  • [DONE] Review and scale out git architecture [Scale FirefoxOS]
  • [DONE] (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
    • [DONE] plan out replacement for nsIContentPolicy and start executing (dri=tanvi, +sicking,ckerschb)
    • [DONE] Make new CSP parser on by default in nightly (dri=ckerschb, +grobinson,sstamm)
    • [DONE] Land WebCrypto (dri=rbarnes) (tracking bug 865789)
  • Secure Client Platform
    • [MISSED] (moved to blassey, working, pending review, eta ~ 2 weeks) Get open.h264 plugin sandboxed on windows [dri=sstamm, a=tabraldes]
    • [MISSED] (moved to blassey, working, pending review, eta ~ 2 weeks) 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]
    • [DEFER] BONUS: Deploy UI for cert error reporting [dri=grobinson]
  • Tracking Protection / Privacy
    • [MISSED] Get through the next 2 releases of Lightbeam (one done) [dri=mmc, a=grobinson]

Firefox and Platform Security

  • [MISSED] Create list of 3rd party code in Firefox with versions, upstream versions, and source locations
  • [DONE] Create fuzzer for WebNFC
  • [DONE] Create IndexedDB fuzzer (make langfuzz work for async web apis)
    • Proof of concept created but not clear if it can be turned into real fuzzer.
  • [DONE] Fuzz JS on ODROID ARM hardware to find bugs masked in Simulator
  • [DONE] incorporate randomized build configs into JSFunFuzz harness
  • [DONE] Fuzz Workers and add fuzzing support for Shared Workers
  • [DONE] Create tool to auto-incorporate .webidl interfaces into DOM fuzzer
  • [DONE] 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.