Platform/2014-Q3-Goals

From MozillaWiki
Jump to navigation Jump to search

Platform

2014 General Goals

GFX

Items marked here with release 33 and 34 are part of the Q3 landings.

Layout

  • Layout to Moz2D
    • [ON TRACK] Migrate SVG to Moz2D (bug 703159)
  • Enable Vertical Text for major use cases for Chinese & Japanese
    • [ON TRACK] bug 145503
  • Text Performance
    • [ON TRACK] bug 998869 Streamline parsing of fontlists and improve efficiency of font matching code (note: unicode-range support will fall out of this work)
    • [ON TRACK] bug 934770 - slow at rendering large blocks of plain text
    • [ON TRACK] bug 860492 - Divide large text runs into smaller runs to avoid chrome hangs
  • Improve Restyling Performance
    • [ON TRACK] bug 977991
  • [ON TRACK] Font Inflation and Reflow-on-Zoom
    • both implementation bug fixing and spec work
    • -moz-text-size-adjust
  • ImageLib
    • [ON TRACK] RasterImage for multiple images
  • CSS Projects with Adobe
    • [ON TRACK] CSS Filters
  • 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] fix correctness bugs (cascading, etc.)
    • [ON TRACK] turning on on other OMTC platforms (Mac/Android)
  • Web animations:
    • [ON TRACK] TBD
  • CSS Scrolling
    • [ON TRACK] CSS scroll snapping
    • [ON TRACK] scroll-behavior:smooth
  • CSS Flexbox
    • [ON TRACK] performance bugs
    • [ON TRACK] spec changes
  • CSS Ruby
    • [ON TRACK] implementation

Media

  • [MISSED] Enable YouTube MSE/VP9 for Firefox 33 in Nightly/Aurora bug 1000686
  • [MISSED] Enable YouTube MSE/MP4 on Windows and Firefox OS for Firefox 34
  • MSE Common
    • [DONE] Rate adaption/buffer switching, reseting
    • [MISSED] Seeking into unbuffered ranges bug 1056440
    • [TODO] Eviction/pinning
  • MSE WebM
  • MSE MP4

DOM

  • [DONE] Mirror prototype of DOM objects through xray wrappers (peterv)
  • [AT RISK] Remove nsDOMClassInfo.cpp
    • Given the recent focus on e10s, we may not get through all of this work this quarter.
  • [DONE] Make less-privileged non-Xrayable unwaived opaque from privileged code (bholley, bug 856067)
  • [DONE] Route all JSContext pushing through AutoJSAPI and Implement GetEntryGlobal (bobowen, bholley, bug 951991)
  • [ON TRACK] Land <picture> preffed on on nightly (bug 1017875) (johns)
  • [DONE] audit callsites of IsInDoc()/GetCurrentDoc to ensure correct Shadow DOM behaviour and fix Shadow DOM blockers for Gaia (smaug, wchen) (bug 1026047)
  • [ON TRACK] land Service Workers preffed on on nightly (nsm, bkelly, baku) (bug 903441)
    • This is progressing well, but won't be *done* until the end of the quarter, so still on track.

WebAPI

  • [ON TRACK] create design plan for "share" activity (flow, what kind of objects are involved) (annevk)
  • [ON TRACK] document existing activities usage in gaia (ehsan)
  • [ON TRACK] get screen orientation spec to LC (marcosc)
  • [DONE] publish use cases for wake locks (marcosc)
  • [ON TRACK] publish spec for "wakelock" API (marcosc)
  • [DONE] 24/12 hour format API (ehsan) bug 903683
  • [ON TRACK] bug 942542 new quota API on PBackground for Service Worker cache (janv)
  • [ON TRACK] bug 701634 IndexedDB in workers (bent)

JS

  • [ON TRACK] 837314 - ES6 classes
  • [ON TRACK] 1020751 - Generational GC on Firefox OS
  • [ON TRACK] 650161 - Compacting GC to reduce memory usage
  • [ON TRACK] 856533 - Escape analysis JIT optimizations
  • [ON TRACK] 998392 - Use Latin1 strings to reduce memory usage
  • [ON TRACK] 903519 - Allocate strings in GC nursery (for performance)
  • [ON TRACK] 972710 - ARM64 JIT [stretch goal]

Accessibility

  • [ON TRACK] e10s: proxy the common a11y API stuff like name, role, and states.
  • [ON TRACK] GAIA: Fix all Gaia P1 a11y bugs (~30 at this time).
  • [DONE] FFOS: bug 1030465 - Volume change should update the screen reader volume.
  • [DONE] FFOS: bug 1030466 - Headphones screen reader volume is too low.
  • [DONE] FFOS: bug 1030468 - VC rectangle needs to work with scaled content.
  • [DONE] FFOS: bug 1030470 - Localization needs to work when switching locales in FxOS.

Perf

Fix major source of browser jank:

  • [ON TRACK] Initialize plugin instances asynchronously bug 998863
  • [ON TRACK] Pause heavy main-thread activities while user is interacting with the browser:
    • [ON TRACK] Determine when a user is actively interacting with the browser
    • [ON TRACK] Detect when jank occurs during interactions and report to Telemetry bug 1017055
    • [ON TRACK] Experiment with hinting to GC & CC that they should pause while the user is interacting with the browser
  • [ON TRACK] Help Frontend team with Places refactoring, eliminate some of the Places main-thread SQL reported to Telemetry
  • [ON TRACK] Don't store UI customization in localstore.rdf, use off-main thread JSON instead bug 559505

Improve Firefox startup (identified as a top issue in user research):

  • [ON TRACK] Reduce appearance of the "profile is in use" message on startup bug 286355
  • [ON TRACK] Restore windows one by one during session-restore bug 1034534 and/or load windows by descending z-order bug 1034036
  • [ON TRACK] C++ version of AsyncShutdown bug 918317

Prevent performance regressions:

Grow community:

  • [ON TRACK] Mentor at least 5 external contributors

Networking

  • [ON TRACK] Ship Network Predictor ("Seer") on nightly, using HTTP cache instead of SQLite (bug 1009122) (hurley)
  • [ON TRACK] Ship current (hopefully final) IETF version of HTTP/2 preffed on in nightly (hurley)
  • [ON TRACK] HTTP/2 "alt-svc" support (bug 1003448) (mcmanus)
  • [ON TRACK] HTTP cache: determine if revalidation is needed w/o doing I/O (bug 983122) (sworkman)
  • [ON TRACK] Network up/down link detection on all platforms (bug 939318) (bagder)
  • [ON TRACK] Implement WebSocket compression extension (bug 792831) (michal)

Mobile

A*Team

For full list, see A-Team Goals 2014Q3

B2G

  • [ON TRACK] Run a set of performance and correctness tests per-commit to b2g-inbound on Flame devices
  • [ON TRACK] Get gaia-integration tests running on device
  • [ON TRACK] Expand the FxOS Certification Suite with 1.4 support, test automation to prevent regressions, and investigation of support for non-phone devices
  • [ON TRACK] Green up B2G tests on TaskCluster (joint with RelEng)

Developer Productivity

  • [ON TRACK] Deploy ReviewBoard for developers to start using (joint with RelEng)

Performance

  • [ON TRACK] Deploy new Talos tests for tp5o_scroll, webgl, webrtc, and mainthread I/O
  • [ON TRACK] Get Datazilla alerts to beta mode (full parity with graph server alerts) with reduced noise
  • [ON TRACK] Get Eideticker running against Android again with increased frequency
  • [ON TRACK] Run B2G Eideticker against same branch/build combinations as our other on-device perf tests
  • [ON TRACK] Stand up a Games Benchmarking system for webaudio tests running against Firefox and Chrome

Treeherder

  • [ON TRACK] Deliver performance web service for ingesting and returning performance data
  • [ON TRACK] Deliver a UI for viewing Talos data

Sheriffing

  • [ON TRACK] Fully transition sheriffing from TBPL to Treeherder

General Automation

  • [ON TRACK] Create weekly reports that describe how many tests have been added/disabled/enabled per suite and platform
  • [ON TRACK] Move reftest to mozbase
  • [ON TRACK] Add command executors for Marionette for Java and Python

Bugzilla

  • [DONE] Improve load time of related bugs; can decrease show_bug load times by up to 12%
  • [ON TRACK] Minify and concatenate JS files
  • [ON TRACK] Authoritative view for review history
  • [ON TRACK] Rewrite docs for REST API

Community

  • [ON TRACK] Create good_next_bugs (name can be adjusted) so once contributors are comfortable they can do more serious coding/problem solving on a project they are familiar with
  • [ON TRACK] Monthly review of mentored bugs and projects

Web Engineering

Crash stats

  • [ON TRACK] Prototype service for identifying post-crash user actions
  • [DONE] Hardware and performance tuning for new primary data store
  • [ON TRACK] Remove older, redundant crash storage format from database
  • [DROPPED] Improve search performance and features
  • [DONE] Replace interfaces to deprecated external data sources
  • [ON TRACK] Remove barriers to community installations

FHR

  • [ON TRACK] Support search diversion plan

DXR

  • [ON TRACK] Improve infrastructure.
    • For example, switch to ES backend, which will enable us to build multi-language support and parallel tree indexing.
  • [ON TRACK] Broaden our audience.
    • Pull users away from MXR so we can shut it off. For example, add support for Rust or JS, squash MXR migration blockers.

l10n

  • [ON TRACK] Get l10n build logs into a searchable data store
  • [ON TRACK] Replace some buildbot functionality with a10n automation

Air Mozilla

  • [ON TRACK] Prototype support for streaming media boxes
  • [DONE] Improve desktop user experience

full list

SUMO and Input

  • [DONE] SUMO: Launch new offline SUMO app [Get Firefox on a Growth Trajectory]
  • [ON TRACK] SUMO: Develop new Community Hub to a level where it can replace legacy Karma app [Enable Communities with Impact]
  • [ON TRACK] SUMO: Research and prototype new experimental features (e.g. geotargeting, Instant Search, Search Suggestions) [Get Firefox on a Growth Trajectory]
  • [DONE] Input: Improve documentation and install to lower the bar for contribution [Enable Communities with Impact]
  • [ON TRACK] Input: Support Heartbeat [Get Firefox on a Growth Trajectory]
  • [ON TRACK] Input: Dashboards for Everyone [Get Firefox on a Growth Trajectory]

Release Engineering - Laura

  • [DROPPED] Enable capacity expansion for bare-metal releng OS X build and test slaves via hardware provided by third-party datacenters (Get Firefox on a Trajectory of Growth)
  • [ON TRACK] Simplify release engineering mobile hardware infrastructure (Get Firefox on a Trajectory of Growth)
  • [ON TRACK] Automate developer access to continuous integration resources to expedite debugging and standing up new job variants. (Enable Communities With Impact)
  • [ON TRACK] Help enable video operability on the web by providing continuous integration for Cisco Open H.264 builds. (Get Firefox on a Trajectory of Growth)

Release Engineering - Taras

  • [ON TRACK] Replace aging Firefox update service with a scalable, modern solution. (Get Firefox on a Trajectory of Growth)
  • [ON TRACK] Simplify developer workflow by automating patch landing and uplift. (Enable Communities With Impact)
  • [ON TRACK] Optimize network transfers for build/test automation between datacenters. (Enable Communities With Impact)
  • [ON TRACK] Continue AWS cost optimizations: EBS < 3% of AWS bill(vs 30% in Q2) (Enable Communities With Impact)
  • [ON TRACK] Improve developer workflow by migrating 80% of FirefoxOS build/test jobs to taskcluster (Enable Communities With Impact)
  • [ON TRACK] Turn telemetry is into a general purpose s3 ingester and analysis tool

Release Engineering Operations

  • Build/Test System Performance Enhancements
    • [DROPPED] Unify releng platform architecture, using common tools and best practices, to decrease complexity and enable smoother developer engagement bug 1026110 [Get Firefox on a Trajectory of Growth, Enable Communities With Impact] - blocked on obtaining necessary resources from other groups
    • [ON TRACK] Improve communication and response time for releng network flow requests bug 1026112 [Get Firefox on a Trajectory of Growth, Scale Firefox OS]
    • [ON TRACK] Improve security for all releng windows infrastructure bug 893716 [Get Firefox on a Trajectory of Growth]
    • [DONE] Update windows platform developer tools bug 1019165 [Get Firefox on a Trajectory of Growth]
  • Build/Test System Self-Serve Re-architecture
    • [CARRY OVER] 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 Trajectory of Growth, Scale Firefox OS]
    • [DROPPED] Create self-service capability for releng hardware Firefox linux test slaves (build slaves as a stretch goal) bug 1026687 (depends on completion of previous goal) [Get Firefox on a Trajectory of Growth, Scale Firefox OS] - bare metal openstack is proving to be too bleeding edge and buggy to use for production services. We will continue to work on R&D for this project and track changes made in the openstack code base, but we will not move any services to production in FY2014
    • [DROPPED] Create self-service capability for releng hardware Firefox windows test slaves. bug 967064 [Get Firefox on a Growth Trajectory] - Still pending completion of re-prioritized 2008R2 work

Developer Services

  • [DONE] (with B-team) roll out phase 2 of new review tooling [Get Firefox on a Growth Trajectory / Enable communities with impact]
  • [NEW] Upgrade existing Mercurial infrastructure to support more rapid, safe, and coordinated deployment of updates. [Get Firefox on a Growth Trajectory / Enable communities with impact]

Full List

Security & Privacy Engineering

More details here: SecurityEngineering/2014/Q3Goals

Content Security

  • [ON TRACK] Gecko Security Hooks: Finish code and debugging for New Channel API, start getting reviews (dri=tanvi)
  • [ON TRACK] Gecko Security Hooks: Create plan for addon compatibility (dri=tanvi)
  • [DONE] CSP: Remove old JS implementation from mozilla-central (dri=sstamm)
  • [NEW] Evangelism: Security Open Mic presentation + blog post about new CSP implementation, maybe again as brown bag. (dri=sstamm)
  • [ON TRACK] [stretch goal] CSP: Fix majority of CSP 1.1 compatibility bugs (dri=ckerschb)

Tracking Protection

  • [ON TRACK] Referer: Finish implementation of <meta> referrer control with volunteer help (dri=sstamm)
  • [DONE] Land first implementation of protection in Fx 33/34 off by default. (dri=mmc)

Communications Security

  • [ON TRACK] SSL Error Reporting finish first implementation of ssl error reporting feature. (dri=grobinson)
  • [ON TRACK] HPKP - implement pinning http header (dri=cviecco)
  • [NEW] Update roadmap for Cert Revocation improvements (dri=rbarnes)
  • [DONE] Create a mechanism to provision phones with an alternate cert (dri=mgoodwin)
  • [ON TRACK] Add measurement/enforcement of compliance with CABF Baseline Requirements (dri=keeler)
  • [ON TRACK] Create a tool for testing CA certificate compliance and EV-readiness (dri=keeler)
  • [ON TRACK] Add support for key wrap/unwrap and ECC in WebCrypto (dri=rbarnes)
  • [ON TRACK] [stretch goal] Get CA Program data into one database (dri=kathleen)

Firefox and Platform Security

  • Marifuzz fuzzer ported to and running on Flame devices.
  • Update ASan and LSan work for DOMFuzzer
  • Update "Bounty Stars" document with issues found by external reporters and updating DOMFuzzer to reflect these results.
  • Get Clang on RelEng ready for official OS X ASan builds.
  • Initial work to move CoreFuzz towards running in cloud environments.
  • WebCrypto API fuzzing using Dharma fuzzer.
  • Port a portion of WebRTC fuzzing from Frambois fuzzer to Dharma fuzzer.
  • Peach: Improving and porting Peach 2 to Python 3.
  • Public Mozilla Security Github work: Moving of fuzzing tools from Fuzzing Hg to GitHub, including work to separate harnesses from testcase generation tools.

Games Program

  • Reach out to 3rd party engines en masse (also for Q4)
  • Select a 3D demo for mobile
  • Pick a partner demo to optimize for mobile
  • Focus on supporting shipping games and maintaining platform stability
  • Focus on Shared Array Buffer implementation
  • WebGL Benchmarks
  • Continue to work MDN documentation; get Emscripten documentation started
  • GDC and MWC event support plan

Release Management

For full list, see Release Management 2014Q3 Goals.

  • Create and document process for Desktop/Mobile feature fast tracking
  • Determine future of ESR and how to manage this channel
  • Continue desktop throttling experiment with intention of reducing throttled time while maintaining existing level of feedback
  • Improve release notes with revamped template for all products
  • Create B2G release model proposals and gather feedback for potential changes
  • Figure out what to do with B2G Security Releases

Program Management

See this wiki page for a full list of Program Management goals.

  • [ON TRACK] Create a set of dashboards based on the ES database to track platform projects and surface bottlenecks.
    • Narrowed focus to a set of dashboards for review queues for individuals and teams.
  • [AT RISK] Brown bag presentation/restropective on the agile processes we are using on Desktop and FirefoxOS
    • With the reorg, revisiting the purpose/target. Might change this goal slightly. Still probably worthwhile planning a brown bag to talk about Desktop process and introduce Trello planning tool for Platform.
  • [ON TRACK] Evaluate and produce a report on several tools for helping organize and visualize team backlogs and priority lists; wiki, spreadsheets, Trello, Kanbanize
    • Using a Trello board for Platform work. Jenn piloting Kanban board for Desktop/Android. Should have a summary, write-up ready by end of Sept.

Quality Engineering

See this wiki for the full list of Quality goals. What follows are our brief summary of our internal improvement goals for each strategic team.

  • Firefox QA - Revitalize our Quality Engineering strategy by switching to a feature-based test strategy for all Firefox browser products so that there are test plans for each feature and testing is executed within two sprints of the feature's code landing
  • Firefox OS - Better metrics for quality analysis, provide opportunities for community contribution, and expanding the role of our on-device automation for reporting to Treeherder.
  • Services - Ensure new offerings have 98% uptime (FxA Sync, OAuth, FMD, Loop) and no more than 2 P1 bugs discovered post launch while building a core contributor base in services
  • Marketplace - Ensure Marketplace's new payments backend, in-app payments, and the Marketplace feed land with high quality releases.
  • Platform QA - Deploy into continuous integration a regression testing system for WebRTC along three areas of investigation: 1. "Smoke" tests, 2. Connection tests, and 3. Connection quality tests. These will be performed in a variety of environments, including various network topologies with various performance characteristics, connections between various versions of Firefox, and connections on multiple OS platforms. Test plans will be developed, and we will measure coverage of test plans. Results will be posted and available in Treeherder. We will also build backlog for next Platform Tiger Team tasks.
  • Community - Increase conversion of interested and casual contributors to help them become active contributors with strong ties to the QA community