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

  • [ON TRACK] Enable MSE/VP9 for Firefox 33 in Nightly/Aurora
  • [ON TRACK] Enable MSE/MP4 on Windows and Firefox OS for Firefox 34

DOM

  • [ON TRACK] Mirror prototype of DOM objects through xray wrappers (peterv)
  • [ON TRACK] Remove nsDOMClassInfo.cpp
  • [DONE] Make less-privileged non-Xrayable unwaived opaque from privileged code (bholley, bug 856067)
  • [ON TRACK] Route all JSContext pushing through AutoJSAPI and Implement GetEntryGlobal (bobowen, bholley, bug 951991)
  • [ON TRACK] Land <picture> preffed on on nightly (bug 1017875) (johns)
  • [ON TRACK] 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)

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)
  • [ON TRACK] publish use cases and spec for "wakelock" API (marcosc)
  • [ON TRACK] 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] 941796 - 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).
  • [ON TRACK] FFOS: bug 1030465 - Volume change should update the screen reader volume.
  • [ON TRACK] FFOS: bug 1030466 - Headphones screen reader volume is too low.
  • [ON TRACK] FFOS: bug 1030468 - VC rectangle needs to work with scaled content.
  • [ON TRACK] 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] Take over refactoring of Places from Frontend team, 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
  • [ON TRACK] Hardware and performance tuning for new primary data store
  • [ON TRACK] Remove older, redundant crash storage format from database
  • [ON TRACK] Improve search performance and features
  • [ON TRACK] 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
  • [ON TRACK] Improve desktop user experience

full list

SUMO and Input

  • [ON TRACK] 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]
  • [ON TRACK] 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

  • [ON TRACK] 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
    • [ON TRACK] 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]
    • [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]
  • 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]
    • [ON TRACK] 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]
    • [ON TRACK] Create self-service capability for releng hardware Firefox windows test slaves. bug 967064 [Get Firefox on a Growth Trajectory]

Developer Services

  • [NEW] (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

  • [NEW] Gecko Security Hooks: Finish code and debugging for New Channel API, start getting reviews (dri=tanvi)
  • [NEW] Gecko Security Hooks: Create plan for addon compatibility (dri=tanvi)
  • [NEW] 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)
  • [NEW] [stretch goal] CSP: Fix majority of CSP 1.1 compatibility bugs (dri=ckerschb)

Tracking Protection

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

Communications Security

  • [CARRY OVER] SSL Error Reporting finish first implementation of ssl error reporting feature. (dri=grobinson)
  • [NEW] HPKP - implement pinning http header (dri=cviecco)
  • [NEW] Update roadmap for Cert Revocation improvements (dri=rbarnes)
  • [NEW] Create a mechanism to provision phones with an alternate cert (dri=mgoodwin)
  • [NEW] Add measurement/enforcement of compliance with CABF Baseline Requirements (dri=keeler)
  • [NEW] Create a tool for testing CA certificate compliance and EV-readiness (dri=keeler)
  • [NEW] Add support for key wrap/unwrap and ECC in WebCrypto (dri=rbarnes)
  • [NEW] [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.

  • Create a set of dashboards based on the ES database to track platform projects and surface bottlenecks.
  • Brown bag presentation/restropective on the agile processes we are using on Desktop and FirefoxOS.
  • Evaluate and produce a report on several tools for helping organize and visualize team backlogs and priority lists; wiki, spreadsheets, Trello, Kanbanize.